initial commit

This commit is contained in:
Jan-Henrik 2025-02-08 12:16:07 +01:00
commit ef979bbd9e
74 changed files with 2073215 additions and 0 deletions

27
.github/workflows/compile-sketch.yml vendored Normal file
View file

@ -0,0 +1,27 @@
name: Compile Sketch
on:
- push
- pull_request
jobs:
compile-sketches:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
# See: https://github.com/arduino/compile-sketches#readme
- name: Compile sketches
uses: arduino/compile-sketches@v1
with:
platforms:
- name: "earlephilhower:arduino-pico"
source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
fqbn: earlephilhower:arduino-pico:rp2040
sketch-paths: |
- firmware/
libraries: |
- name: Adafruit_NeoPixel
- name: Adafruit_MPU6050

30
.gitignore vendored Normal file
View file

@ -0,0 +1,30 @@
# For PCBs designed using KiCad: https://www.kicad.org/
# Format documentation: https://kicad.org/help/file-formats/
# Temporary files
*.000
*.bak
*.bck
*.kicad_pcb-bak
*.kicad_sch-bak
*-backups
*.kicad_prl
*.sch-bak
*~
_autosave-*
*.tmp
*-save.pro
*-save.kicad_pcb
fp-info-cache
~*.lck
\#auto_saved_files#
# Netlist files (exported from Eeschema)
*.net
# Autorouter files (exported from Pcbnew)
*.dsn
*.ses
build/
.vscode/

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "hardware/butns/case/YAPP_Box"]
path = hardware/butns/case/YAPP_Box
url = https://github.com/mrWheel/YAPP_Box.git

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Hügelton
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,840 @@
#include "MonomeSerialDevice.h"
#include "debug.h"
MonomeSerialDevice::MonomeSerialDevice() {}
void MonomeSerialDevice::initialize() {
active = false;
isMonome = false;
isGrid = true;
rows = 0;
columns = 0;
encoders = 0;
//clearQueue();
clearAllLeds();
arcDirty = false;
gridDirty = false;
}
void MonomeSerialDevice::setupAsGrid(uint8_t _rows, uint8_t _columns) {
initialize();
active = true;
isMonome = true;
isGrid = true;
rows = _rows;
columns = _columns;
gridDirty = true;
debugfln(INFO, "GRID rows: %d columns %d", rows, columns);
}
void MonomeSerialDevice::setupAsArc(uint8_t _encoders) {
initialize();
active = true;
isMonome = true;
isGrid = false;
encoders = _encoders;
arcDirty = true;
debugfln(INFO, "ARC encoders: %d", encoders);
}
void MonomeSerialDevice::setTiltActive(uint8_t sensor, bool active) {
if (sensor < 4) {
tiltActive[sensor] = active;
}
}
void MonomeSerialDevice::sendTiltEvent(uint8_t sensor, int16_t x, int16_t y, int16_t z) {
if (sensor < 4 && tiltActive[sensor]) {
lastTiltX[sensor] = x;
lastTiltY[sensor] = y;
lastTiltZ[sensor] = z;
Serial.write((uint8_t)0x81); // tiltイベントのプレフィックス
Serial.write(sensor);
Serial.write((uint8_t)(x >> 8));
Serial.write((uint8_t)(x & 0xFF));
Serial.write((uint8_t)(y >> 8));
Serial.write((uint8_t)(y & 0xFF));
Serial.write((uint8_t)(z >> 8));
Serial.write((uint8_t)(z & 0xFF));
}
}
void MonomeSerialDevice::getDeviceInfo() {
//debugln(INFO, "MonomeSerialDevice::getDeviceInfo");
Serial.write(uint8_t(0));
}
void MonomeSerialDevice::poll() {
//while (isMonome && Serial.available()) { processSerial(); };
if (Serial.available()) {
processSerial();
}
//Serial.println("processSerial");
}
void MonomeSerialDevice::setAllLEDs(int value) {
for (int i = 0; i < MAXLEDCOUNT; i++) leds[i] = value;
}
void MonomeSerialDevice::setGridLed(uint8_t x, uint8_t y, uint8_t level) {
// int index = x + (y * columns);
// if (index < MAXLEDCOUNT) leds[index] = level;
if (x < columns && y < rows) {
uint32_t index = y * columns + x;
leds[index] = level;
}
//debugfln(INFO, "LED index: %d x %d y %d", index, x, y);
}
void MonomeSerialDevice::clearGridLed(uint8_t x, uint8_t y) {
setGridLed(x, y, 0);
//Serial.println("clearGridLed");
}
void MonomeSerialDevice::setArcLed(uint8_t enc, uint8_t led, uint8_t level) {
int index = led + (enc << 6);
if (index < MAXLEDCOUNT) leds[index] = level;
//Serial.println("setArcLed");
}
void MonomeSerialDevice::clearArcLed(uint8_t enc, uint8_t led) {
setArcLed(enc, led, 0);
//Serial.println("clearArcLed");
}
void MonomeSerialDevice::clearAllLeds() {
for (int i = 0; i < MAXLEDCOUNT; i++) leds[i] = 0;
//Serial.println("clearAllLeds");
}
void MonomeSerialDevice::clearArcRing(uint8_t ring) {
for (int i = ring << 6, upper = i + 64; i < upper; i++) leds[i] = 0;
//Serial.println("clearArcRing");
}
void MonomeSerialDevice::refreshGrid() {
gridDirty = true;
//Serial.println("refreshGrid");
}
void MonomeSerialDevice::refreshArc() {
arcDirty = true;
//Serial.println("refreshArc");
}
void MonomeSerialDevice::sendSysSize() {
Serial.write((uint8_t)0x05); // system / get grid size
Serial.write((uint8_t)columns);
Serial.write((uint8_t)rows);
}
void MonomeSerialDevice::sendSysRotation() {
// Note: The original Monome protocol doesn't have a direct command for rotation.
// This is a custom implementation. You may need to adjust how the host interprets this.
Serial.write((uint8_t)0x0F); // Using 0x0F (system / report firmware version) as a custom command
Serial.write((uint8_t)0xF0); // Custom identifier for rotation
Serial.write((uint8_t)gridRotation);
}
void MonomeSerialDevice::refresh() {
/*
uint8_t buf[35];
int ind, led;
if (gridDirty) {
//Serial.println("gridDirty");
buf[0] = 0x1A;
buf[1] = 0;
buf[2] = 0;
ind = 3;
for (int y = 0; y < 8; y++)
for (int x = 0; x < 8; x += 2) {
led = (y << 4) + x;
buf[ind++] = (leds[led] << 4) | leds[led + 1];
}
Serial.write(buf, 35);
ind = 3;
buf[1] = 8;
for (int y = 0; y < 8; y++)
for (int x = 8; x < 16; x += 2) {
led = (y << 4) + x;
buf[ind++] = (leds[led] << 4) | leds[led + 1];
}
Serial.write(buf, 35);
ind = 3;
buf[1] = 0;
buf[2] = 8;
for (int y = 8; y < 16; y++)
for (int x = 0; x < 8; x += 2) {
led = (y << 4) + x;
buf[ind++] = (leds[led] << 4) | leds[led + 1];
}
Serial.write(buf, 35);
ind = 3;
buf[1] = 8;
for (int y = 8; y < 16; y++)
for (int x = 8; x < 16; x += 2) {
led = (y << 4) + x;
buf[ind++] = (leds[led] << 4) | leds[led + 1];
}
Serial.write(buf, 35);
gridDirty = false;
}
if (arcDirty) {
//Serial.print("arcDirty");
buf[0] = 0x92;
buf[1] = 0;
ind = 2;
for (led = 0; led < 64; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 1;
ind = 2;
for (led = 64; led < 128; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 2;
ind = 2;
for (led = 128; led < 192; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 3;
ind = 2;
for (led = 192; led < 256; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 4;
ind = 2;
for (led = 256; led < 320; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 5;
ind = 2;
for (led = 320; led < 384; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 6;
ind = 2;
for (led = 384; led < 448; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
buf[1] = 7;
ind = 2;
for (led = 448; led < 512; led += 2)
buf[ind++] = (leds[led] << 4) | leds[led + 1];
Serial.write(buf, 34);
arcDirty = 0;
}
*/
}
void MonomeSerialDevice::processSerial() {
uint8_t identifierSent; // command byte sent from controller to matrix
uint8_t index, readX, readY, readN, readA;
uint8_t dummy, gridNum, deviceAddress; // for reading in data not used by the matrix
uint8_t n, x, y, z, i;
uint8_t intensity = 15;
uint8_t gridKeyX;
uint8_t gridKeyY;
int8_t delta;
uint8_t gridX = columns; // Will be either 8 or 16
uint8_t gridY = rows;
uint8_t numQuads = columns / rows;
// get command identifier: first byte of packet is identifier in the form: [(a << 4) + b]
// a = section (ie. system, key-grid, digital, encoder, led grid, tilt)
// b = command (ie. query, enable, led, key, frame)
identifierSent = Serial.read();
switch (identifierSent) {
case 0x00: // device information
// [null, "led-grid", "key-grid", "digital-out", "digital-in", "encoder", "analog-in", "analog-out", "tilt", "led-ring"]
//Serial.println("0x00 system / query ----------------------");
Serial.write((uint8_t)0x00); // action: response, 0x00 = system
Serial.write((uint8_t)0x01); // section id, 1 = led-grid, 2 = key-grid, 5 = encoder/arc
Serial.write((uint8_t)numQuads); // one Quad is 64 buttons
Serial.write((uint8_t)0x00); // send again with 2 = key-grid
Serial.write((uint8_t)0x02); //
Serial.write((uint8_t)numQuads);
break;
case 0x01: // system / ID
Serial.write((uint8_t)0x01); // action: response, 0x01
for (i = 0; i < 32; i++) { // has to be 32
if (i < deviceID.length()) {
Serial.write(deviceID[i]);
} else {
Serial.write((uint8_t)0x00);
}
}
break;
case 0x02: // system / write ID
//Serial.println("0x02");
for (int i = 0; i < 32; i++) { // has to be 32
deviceID[i] = Serial.read();
}
break;
case 0x03: // system / report grid offset
//Serial.println("0x03");
Serial.write((uint8_t)0x02); // system / request grid offset - bytes: 1 - [0x03]
Serial.write((uint8_t)0x01);
Serial.write((uint8_t)0); // x offset - could be 0 or 8 ### NEEDS grid size variable
Serial.write((uint8_t)0); // y offset
break;
case 0x04: // system / report ADDR
//Serial.println("0x04");
gridNum = Serial.read(); // grid number
readX = Serial.read(); // x offset
readY = Serial.read(); // y offset
break;
case 0x05: // _SYS_GET_GRID_SIZE
//Serial.println("0x05");
Serial.write((uint8_t)0x03); // system / request grid size
Serial.write((uint8_t)gridX); // gridX
Serial.write((uint8_t)gridY); // gridY
break;
case 0x06:
readX = Serial.read(); // system / set grid size - ignored
readY = Serial.read();
break;
case 0x07:
break; // I2C get addr (scan) - ignored
case 0x08:
deviceAddress = Serial.read(); // I2C set addr - ignored
dummy = Serial.read();
break;
case 0x0F: // system / report firmware version
// Serial.println("0x0F");
for (int i = 0; i < 8; i++) { // 8 character string
//Serial.print(Serial.read());
}
break;
// 0x10-0x1F are for an LED Grid Control. All bytes incoming, no responses back
case 0x10: // /prefix/led/set x y [0/1] / led off
readX = Serial.read();
readY = Serial.read();
setGridLed(readX, readY, 0);
break;
case 0x11: // /prefix/led/set x y [0/1] / led on
readX = Serial.read();
readY = Serial.read();
setGridLed(readX, readY, 15); // need global brightness variable?
break;
case 0x12: // /prefix/led/all [0/1] / all off
clearAllLeds();
break;
case 0x13: // /prefix/led/all [0/1] / all on
setAllLEDs(15);
break;
case 0x14: // /prefix/led/map x y d[8] / map (frame)
readX = Serial.read();
while (readX > 16) { readX += 16; } // hacky shit to deal with negative numbers from rotation
readX &= 0xF8; // floor the offset to 0 or 8
readY = Serial.read(); // y offset
while (readY > 16) { readY += 16; } // hacky shit to deal with negative numbers from rotation
readY &= 0xF8; // floor the offset to 0 or 8
for (y = 0; y < 8; y++) { // each i will be a row
intensity = Serial.read(); // read one byte of 8 bits on/off
for (x = 0; x < 8; x++) { // for 8 LEDs on a row
if ((intensity >> x) & 0x01) { // if intensity bit set, light led full brightness
setGridLed(readX + x, readY + y, 15);
} else {
setGridLed(readX + x, readY + y, 0);
}
}
}
break;
case 0x15: // /prefix/led/row x y d
readX = Serial.read(); // led-grid / set row
while (readX > 16) { readX += 16; } // hacky shit to deal with negative numbers from rotation
readX &= 0xF8; // floor the offset to 0 or 8
readY = Serial.read(); //
intensity = Serial.read(); // read one byte of 8 bits on/off
for (x = 0; x < 8; x++) { // for the next 8 lights in row
if ((intensity >> x) & 0x01) { // if intensity bit set, light led full brightness
setGridLed(readX + x, readY, 15);
} else {
setGridLed(readX + x, readY, 0);
}
}
break;
case 0x16: // /prefix/led/col x y d
readX = Serial.read(); // led-grid / column set
readY = Serial.read();
while (readY > 16) { readY += 16; } // hacky shit to deal with negative numbers from rotation
readY &= 0xF8; // floor the offset to 0 or 8
intensity = Serial.read(); // read one byte of 8 bits on/off
for (y = 0; y < 8; y++) { // for the next 8 lights in column
if ((intensity >> y) & 0x01) { // if intensity bit set, light led full brightness
setGridLed(readX, readY + y, 15);
} else {
setGridLed(readX, readY + y, 0);
}
}
break;
case 0x17: // /prefix/led/intensity i
intensity = Serial.read(); // set brightness for entire grid
// this is probably not right
setAllLEDs(intensity);
break;
case 0x18: // /prefix/led/level/set x y i
readX = Serial.read(); // led-grid / set LED intensity
readY = Serial.read(); // read the x and y coordinates
intensity = Serial.read(); // read the intensity
setGridLed(readX, readY, intensity);
break;
case 0x19: // /prefix/led/level/all s
intensity = Serial.read(); // set all leds
setAllLEDs(intensity);
break;
case 0x1A: // /prefix/led/level/map x y d[64]
// set 8x8 block
readX = Serial.read(); // x offset
while (readX > 16) { readX += 16; } // hacky shit to deal with negative numbers from rotation
readX &= 0xF8; // floor the offset to 0 or 8
readY = Serial.read(); // y offset
while (readY > 16) { readY += 16; } // hacky shit to deal with negative numbers from rotation
readY &= 0xF8; // floor the offset to 0 or 8
z = 0;
for (y = 0; y < 8; y++) {
for (x = 0; x < 8; x++) {
if (z % 2 == 0) {
intensity = Serial.read();
if (((intensity >> 4) & 0x0F) > variMonoThresh) { // even bytes, use upper nybble
setGridLed(readX + x, readY + y, (intensity >> 4) & 0x0F);
} else {
setGridLed(readX + x, readY + y, 0);
}
} else {
if ((intensity & 0x0F) > variMonoThresh) { // odd bytes, use lower nybble
setGridLed(readX + x, readY + y, intensity & 0x0F);
} else {
setGridLed(readX + x, readY + y, 0);
}
}
z++;
}
}
/*
} else {
for (int q = 0; q<32; q++){
Serial.read();
}
}*/
break;
case 0x1B: // /prefix/led/level/row x y d[8]
readX = Serial.read(); // x offset
while (readX > 16) { readX += 16; } // hacky shit to deal with negative numbers from rotation
readX &= 0xF8; // floor the offset to 0 or 8
readY = Serial.read(); // y offset
while (readY > 16) { readY += 16; } // hacky shit to deal with negative numbers from rotation
readY &= 0xF8; // floor the offset to 0 or 8
for (x = 0; x < 8; x++) {
if (x % 2 == 0) {
intensity = Serial.read();
if ((intensity >> 4 & 0x0F) > variMonoThresh) { // even bytes, use upper nybble
setGridLed(readX + x, readY, (intensity >> 4) & 0x0F);
} else {
setGridLed(readX + x, readY, 0);
}
} else {
if ((intensity & 0x0F) > variMonoThresh) { // odd bytes, use lower nybble
setGridLed(readX + x, readY, intensity & 0x0F);
} else {
setGridLed(readX + x, readY, 0);
}
}
}
break;
case 0x1C: // /prefix/led/level/col x y d[8]
readX = Serial.read(); // x offset
while (readX > 16) { readX += 16; } // hacky shit to deal with negative numbers from rotation
readX &= 0xF8; // floor the offset to 0 or 8
readY = Serial.read(); // y offset
while (readY > 16) { readY += 16; } // hacky shit to deal with negative numbers from rotation
readY &= 0xF8; // floor the offset to 0 or 8
for (y = 0; y < 8; y++) {
if (y % 2 == 0) {
intensity = Serial.read();
if ((intensity >> 4 & 0x0F) > variMonoThresh) { // even bytes, use upper nybble
setGridLed(readX, readY + y, (intensity >> 4) & 0x0F);
} else {
setGridLed(readX, readY + y, 0);
}
} else {
if ((intensity & 0x0F) > variMonoThresh) { // odd bytes, use lower nybble
setGridLed(readX, readY + y, intensity & 0x0F);
} else {
setGridLed(readX, readY + y, 0);
}
}
}
break;
// 0x20 and 0x21 are for a Key inputs (grid) - see readKeys() function
case 0x20:
/*
0x20 key-grid / key up
bytes: 3
structure: [0x20, x, y]
description: key up at (x,y)
*/
gridKeyX = Serial.read();
gridKeyY = Serial.read();
addGridEvent(gridKeyX, gridKeyY, 0);
/*
Serial.print("grid key: ");
Serial.print(gridKeyX);
Serial.print(" ");
Serial.print(gridKeyY);
Serial.print(" up - ");
*/
break;
case 0x21:
/*
0x21 key-grid / key down
bytes: 3
structure: [0x21, x, y]
description: key down at (x,y)
*/
gridKeyX = Serial.read();
gridKeyY = Serial.read();
addGridEvent(gridKeyX, gridKeyY, 1);
/*
Serial.print("grid key: ");
Serial.print(gridKeyX);
Serial.print(" ");
Serial.print(gridKeyY);
Serial.print(" dn - ");
*/
break;
// 0x5x are encoder
case 0x50:
// bytes: 3
// structure: [0x50, n, d]
// n = encoder number
// 0-255
// d = delta
// (-128)-127 (two's comp 8 bit)
// description: encoder position change
index = Serial.read();
delta = Serial.read();
addArcEvent(index, delta);
/*
Serial.print("Encoder: ");
Serial.print(index);
Serial.print(" : ");
Serial.print(delta);
Serial.println();
*/
break;
case 0x51: // /prefix/enc/key n (key up)
// Serial.println("0x51");
n = Serial.read();
/*
Serial.print("key: ");
Serial.print(n);
Serial.println(" up");
*/
// bytes: 2
// structure: [0x51, n]
// n = encoder number
// 0-255
// description: encoder switch up
break;
case 0x52: // /prefix/enc/key n (key down)
// Serial.println("0x52");
n = Serial.read();
/*
Serial.print("key: ");
Serial.print(n);
Serial.println(" down");
*/
// bytes: 2
// structure: [0x52, n]
// n = encoder number
// 0-255
// description: encoder switch down
break;
case 0x80: // tilt / set active
{
uint8_t sensor = Serial.read();
uint8_t active = Serial.read();
setTiltActive(sensor, active == 1);
// send
Serial.write((uint8_t)0x80);
Serial.write(sensor);
Serial.write(active);
}
break;
case 0x81: // tilt data request
{
uint8_t sensor = Serial.read();
if (sensor < 4 && tiltActive[sensor]) {
// recent data send
sendTiltEvent(sensor, lastTiltX[sensor], lastTiltY[sensor], lastTiltZ[sensor]);
}
}
break;
// 0x90 variable 64 LED ring
case 0x90:
//pattern: /prefix/ring/set n x a
//desc: set led x of ring n to value a
//args: n = ring number
// x = led number
// a = value (0-15)
//serial: [0x90, n, x, a]
readN = Serial.read();
readX = Serial.read();
readA = Serial.read();
//led_array[readN][readX] = readA;
setArcLed(readN, readX, readA);
break;
case 0x91:
//pattern: /prefix/ring/all n a
//desc: set all leds of ring n to a
//args: n = ring number
// a = value
//serial: [0x91, n, a]
readN = Serial.read();
readA = Serial.read();
for (int q = 0; q < 64; q++) {
setArcLed(readN, q, readA);
//led_array[readN][q]=readA;
}
break;
case 0x92:
//pattern: /prefix/ring/map n d[32]
//desc: set leds of ring n to array d
//args: n = ring number
// d[32] = 64 states, 4 bit values, in 32 consecutive bytes
// d[0] (0:3) value 0
// d[0] (4:7) value 1
// d[1] (0:3) value 2
// ....
// d[31] (0:3) value 62
// d[31] (4:7) value 63
//serial: [0x92, n d[32]]
readN = Serial.read();
for (y = 0; y < 64; y++) {
if (y % 2 == 0) {
intensity = Serial.read();
if ((intensity >> 4 & 0x0F) > 0) { // even bytes, use upper nybble
//led_array[readN][y] = (intensity >> 4 & 0x0F);
setArcLed(readN, y, (intensity >> 4 & 0x0F));
} else {
//led_array[readN][y]=0;
setArcLed(readN, y, 0);
}
} else {
if ((intensity & 0x0F) > 0) { // odd bytes, use lower nybble
//led_array[readN][y] = (intensity & 0x0F);
setArcLed(readN, y, (intensity & 0x0F));
} else {
//led_array[readN][y]=0;
setArcLed(readN, y, 0);
}
}
}
break;
case 0x93:
//pattern: /prefix/ring/range n x1 x2 a
//desc: set leds inclusive from x1 and x2 of ring n to a
//args: n = ring number
// x1 = starting position
// x2 = ending position
// a = value
//serial: [0x93, n, x1, x2, a]
readN = Serial.read();
readX = Serial.read(); // x1
readY = Serial.read(); // x2
readA = Serial.read();
//memset(led_array[readN],0,sizeof(led_array[readN]));
if (readX < readY) {
for (y = readX; y < readY; y++) {
//led_array[readN][y] = readA;
setArcLed(readN, y, readA);
}
} else {
// wrapping?
for (y = readX; y < 64; y++) {
//led_array[readN][y] = readA;
setArcLed(readN, y, readA);
}
for (x = 0; x < readY; x++) {
//led_array[readN][x] = readA;
setArcLed(readN, y, readA);
}
}
//note: set range x1-x2 (inclusive) to a. wrapping supported, ie. set range 60,4 would set values 60,61,62,63,0,1,2,3,4.
// always positive direction sweep. ie. 4,10 = 4,5,6,7,8,9,10 whereas 10,4 = 10,11,12,13...63,0,1,2,3,4
break;
default:
break;
}
}
void MonomeEventQueue::addGridEvent(uint8_t x, uint8_t y, uint8_t pressed) {
if (gridEventCount >= MAXEVENTCOUNT) return;
uint8_t ind = (gridFirstEvent + gridEventCount) % MAXEVENTCOUNT;
gridEvents[ind].x = x;
gridEvents[ind].y = y;
gridEvents[ind].pressed = pressed;
gridEventCount++;
}
bool MonomeEventQueue::gridEventAvailable() {
return gridEventCount > 0;
}
MonomeGridEvent MonomeEventQueue::readGridEvent() {
if (gridEventCount == 0) return emptyGridEvent;
gridEventCount--;
uint8_t index = gridFirstEvent;
gridFirstEvent = (gridFirstEvent + 1) % MAXEVENTCOUNT;
return gridEvents[index];
}
void MonomeEventQueue::addArcEvent(uint8_t index, int8_t delta) {
if (arcEventCount >= MAXEVENTCOUNT) return;
uint8_t ind = (arcFirstEvent + arcEventCount) % MAXEVENTCOUNT;
arcEvents[ind].index = index;
arcEvents[ind].delta = delta;
arcEventCount++;
}
bool MonomeEventQueue::arcEventAvailable() {
return arcEventCount > 0;
}
MonomeArcEvent MonomeEventQueue::readArcEvent() {
if (arcEventCount == 0) return emptyArcEvent;
arcEventCount--;
uint8_t index = arcFirstEvent;
arcFirstEvent = (arcFirstEvent + 1) % MAXEVENTCOUNT;
return arcEvents[index];
}
void MonomeEventQueue::sendArcDelta(uint8_t index, int8_t delta) {
/*
Serial.print("Encoder:");
Serial.print(index);
Serial.print(" ");
Serial.print(delta);
Serial.println(" ");
*/
Serial.write((uint8_t)0x50);
Serial.write((uint8_t)index);
Serial.write((int8_t)delta);
/*
byte buf[3];
buf[0] = 0x50;
buf[1] = index;
buf[2] = delta;
Serial.write(buf, sizeof(buf));
*/
}
void MonomeEventQueue::sendArcKey(uint8_t index, uint8_t pressed) {
/*
Serial.print("key:");
Serial.print(index);
Serial.print(" ");
Serial.println(pressed);
*/
uint8_t buf[2];
if (pressed == 1) {
buf[0] = 0x52;
} else {
buf[0] = 0x51;
}
buf[1] = index;
Serial.write(buf, 2);
}
void MonomeEventQueue::sendGridKey(uint8_t x, uint8_t y, uint8_t pressed) {
uint8_t buf[2];
if (pressed == 1) {
buf[0] = 0x21;
} else {
buf[0] = 0x20;
}
Serial.write((uint8_t)buf[0]);
Serial.write((uint8_t)x);
Serial.write((uint8_t)y);
}

View file

@ -0,0 +1,107 @@
#ifndef MONOMESERIAL_H
#define MONOMESERIAL_H
#include <Arduino.h>
class MonomeGridEvent {
public:
uint8_t x;
uint8_t y;
uint8_t pressed;
};
class MonomeArcEvent {
public:
uint8_t index;
int8_t delta;
};
class MonomeEventQueue {
public:
//void clearQueue();
bool gridEventAvailable();
MonomeGridEvent readGridEvent();
MonomeGridEvent sendGridKey();
bool arcEventAvailable();
MonomeArcEvent readArcEvent();
MonomeArcEvent sendArcDelta();
MonomeArcEvent sendArcKey();
void addGridEvent(uint8_t x, uint8_t y, uint8_t pressed);
void sendGridKey(uint8_t x, uint8_t y, uint8_t pressed);
void addArcEvent(uint8_t index, int8_t delta);
void sendArcDelta(uint8_t index, int8_t delta);
void sendArcKey(uint8_t index, uint8_t pressed);
void sendTiltEvent(uint8_t n, uint8_t xh, uint8_t xl, uint8_t yh, uint8_t yl, uint8_t zh, uint8_t zl);
protected:
private:
static const int MAXEVENTCOUNT = 50;
MonomeGridEvent emptyGridEvent;
MonomeGridEvent gridEvents[MAXEVENTCOUNT];
int gridEventCount = 0;
int gridFirstEvent = 0;
MonomeArcEvent emptyArcEvent;
MonomeArcEvent arcEvents[MAXEVENTCOUNT];
int arcEventCount = 0;
int arcFirstEvent = 0;
};
class MonomeSerialDevice : public MonomeEventQueue {
public:
MonomeSerialDevice();
void initialize();
void setupAsGrid(uint8_t _rows, uint8_t _columns);
void setupAsArc(uint8_t _encoders);
void getDeviceInfo();
void poll();
void refresh();
void sendSysSize();
void sendSysRotation();
void setGridLed(uint8_t x, uint8_t y, uint8_t level);
void clearGridLed(uint8_t x, uint8_t y);
void setArcLed(uint8_t enc, uint8_t led, uint8_t level);
void setAllLEDs(int value);
void clearArcLed(uint8_t enc, uint8_t led);
void clearAllLeds();
void clearArcRing(uint8_t ring);
void refreshGrid();
void refreshArc();
void setTiltActive(uint8_t sensor, bool active);
void sendTiltEvent(uint8_t sensor, int16_t x, int16_t y, int16_t z);
bool active;
bool isMonome;
bool isGrid;
uint8_t rows;
uint8_t columns;
uint8_t encoders;
uint8_t gridX;
uint8_t gridY;
static const int variMonoThresh = 0;
static const int MAXLEDCOUNT = 256;
uint8_t leds[MAXLEDCOUNT];
String deviceID;
private:
bool arcDirty = false;
bool gridDirty = false;
uint8_t gridRotation; // 0, 1, 2, or 3 for 0, 90, 180, 270 degrees
bool tiltActive[4] = {false, false, false, false};
int16_t lastTiltX[4] = {0};
int16_t lastTiltY[4] = {0};
int16_t lastTiltZ[4] = {0};
// MonomeSerialDevice();
void processSerial();
};
#endif

52
firmware/debug.cpp Normal file
View file

@ -0,0 +1,52 @@
#include "debug.h"
void debug(int level, const char *message) {
if (level < DEBUG_LEVEL) return;
Serial.print(message);
}
void debug(int level, String message) {
debug(level, message.c_str());
}
void debugln(int level, const char *message) {
if (level < DEBUG_LEVEL) return;
Serial.println(message);
}
void debugln(int level, String message) {
debugln(level, message.c_str());
}
void debugln(int level) {
if (level < DEBUG_LEVEL) return;
Serial.println();
}
void debugf(int level, const char *message, ...) {
if (level < DEBUG_LEVEL) return;
va_list ap;
va_start(ap, message);
Serial.printf(message, ap);
}
void debugf(int level, String message, ...) {
debugf(level, message.c_str());
}
void debugfln(int level, const char *message, ...) {
if (level < DEBUG_LEVEL) return;
va_list ap;
va_start(ap, message);
char buffer[200]= {0};
vsnprintf(buffer, 200, message, ap);
va_end(ap);
Serial.println(buffer);
}
void debugfln(int level, String message, ...) {
debugfln(level, message.c_str());
}

25
firmware/debug.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef DEBUG_H
#define DEBUG_H
#include <Arduino.h>
const int INFO = 1;
const int WARN = 2;
const int ERROR = 3;
const int DEBUG_LEVEL = INFO;
void debug(int level, const char *message);
void debug(int level, String message);
void debugln(int level, const char *message);
void debugln(int level, String message);
void debugln(int level);
void debugf(int level, const char *message, ...);
void debugf(int level, String message, ...);
void debugfln(int level, const char *message, ...);
void debugfln(int level, String message, ...);
#endif

217
firmware/firmware.ino Normal file
View file

@ -0,0 +1,217 @@
// Btns 0.6
// by Leo Kuroshita for Hügelton instruments.
// Modified to include MPU-6050 tilt support
#include "MonomeSerialDevice.h"
#include <Arduino.h>
#include <Adafruit_TinyUSB.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#define NUM_ROWS 8
#define NUM_COLS 8
#define BRIGHTNESS 127
#define DEFAULT_ROTATION 0
#define DEFAULT_FLIP_HORIZONTAL false
#define DEFAULT_FLIP_VERTICAL false
const uint8_t ROW_PINS[NUM_ROWS] = {0, 1, 2, 3, 4, 5, 6, 7}; // GPIO00-GPIO07
const uint8_t COL_PINS[NUM_COLS] = {8, 9, 10, 11, 12, 13, 14, 15}; // GPIO8-GPIO15
const uint8_t gammaTable[16] = { 0, 2, 3, 6, 11, 18, 25, 32, 41, 59, 70, 80, 92, 103, 115, 127};
const uint8_t gammaAdj = 2;
bool isInited = false;
String deviceID = "btns";
String serialNum = "m4216124";
char mfgstr[32] = "monome";
char prodstr[32] = "monome";
char serialstr[32] = "m4216124";
Adafruit_NeoPixel pixels(NUM_ROWS * 8, 28, NEO_GRB + NEO_KHZ800);
MonomeSerialDevice mdp;
Adafruit_MPU6050 mpu;
bool buttonStates[NUM_ROWS][NUM_COLS] = {0};
int gridRotation = DEFAULT_ROTATION;
bool flipHorizontal = DEFAULT_FLIP_HORIZONTAL;
bool flipVertical = DEFAULT_FLIP_VERTICAL;
void mapButtonToLED(int buttonRow, int buttonCol, int &ledRow, int &ledCol) {
// Handle button to LED mapping based on rotation and flipping
ledRow = buttonRow;
ledCol = buttonCol;
// Apply rotation
switch (gridRotation) {
case 0: // No rotation
break;
case 1: // 90 degree rotation
{
int temp = ledRow;
ledRow = ledCol;
ledCol = NUM_COLS - 1 - temp;
}
break;
case 2: // 180 degree rotation
ledRow = NUM_ROWS - 1 - ledRow;
ledCol = NUM_COLS - 1 - ledCol;
break;
case 3: // 270 degree rotation
{
int temp = ledRow;
ledRow = NUM_ROWS - 1 - ledCol;
ledCol = temp;
}
break;
}
// Apply flipping
if (flipHorizontal) ledCol = NUM_COLS - 1 - ledCol;
if (flipVertical) ledRow = NUM_ROWS - 1 - ledRow;
}
bool detectGridOrientation() {
bool buttonPressed = false;
// Scan to check which button is pressed
for (int col = 0; col < NUM_COLS; col++) {
digitalWrite(COL_PINS[col], LOW);
for (int row = 0; row < NUM_ROWS; row++) {
if (!digitalRead(ROW_PINS[row])) {
buttonPressed = true;
// Set grid rotation based on pressed button
if (row == 0 && col == 0) {
gridRotation = 0;
} else if (row == 0 && col == NUM_COLS - 1) {
gridRotation = 1;
} else if (row == NUM_ROWS - 1 && col == NUM_COLS - 1) {
gridRotation = 2;
} else if (row == NUM_ROWS - 1 && col == 0) {
gridRotation = 3;
}
digitalWrite(COL_PINS[col], HIGH);
return buttonPressed;
}
}
digitalWrite(COL_PINS[col], HIGH);
}
// If no button is pressed, set default orientation
gridRotation = DEFAULT_ROTATION;
return buttonPressed;
}
void setup() {
USBDevice.setManufacturerDescriptor(mfgstr);
USBDevice.setProductDescriptor(prodstr);
USBDevice.setSerialDescriptor(serialstr);
pinMode(LED_BUILTIN, OUTPUT);
for (int i = 0; i < NUM_ROWS; i++) {
pinMode(ROW_PINS[i], INPUT_PULLUP);
}
for (int i = 0; i < NUM_COLS; i++) {
pinMode(COL_PINS[i], OUTPUT);
digitalWrite(COL_PINS[i], HIGH);
}
detectGridOrientation();
mdp.isMonome = true;
mdp.deviceID = deviceID;
mdp.setupAsGrid(NUM_ROWS, NUM_COLS);
isInited = true;
mdp.poll();
// Send grid size and rotation information
mdp.sendSysSize();
mdp.sendSysRotation();
pixels.begin();
// Initialize MPU-6050
/*Wire.setSCL(21);
Wire.setSDA(20);
Wire.begin();*/
/*if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
Serial.println("MPU6050 Found!");
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
// Set tilt sensor 0 as active
mdp.setTiltActive(0, true);*/
}
void loop() {
static unsigned long lastCheck = 0;
static unsigned long lastTiltCheck = 0;
unsigned long currentMillis = millis();
mdp.poll();
if (currentMillis - lastCheck >= 15) {
lastCheck = currentMillis;
scanButtonMatrix();
updateLEDMatrix();
}
// Send tilt data every 100ms
if (currentMillis - lastTiltCheck >= 100) {
lastTiltCheck = currentMillis;
//sendTiltData();
}
}
void scanButtonMatrix() {
for (int row = 0; row < NUM_ROWS; row++) {
for (int col = 0; col < NUM_COLS; col++) {
digitalWrite(COL_PINS[col], LOW);
bool currentState = !digitalRead(ROW_PINS[row]);
digitalWrite(COL_PINS[col], HIGH);
int ledRow, ledCol;
mapButtonToLED(row, col, ledRow, ledCol);
if (currentState != buttonStates[row][col]) {
mdp.sendGridKey(ledCol, ledRow, currentState);
buttonStates[row][col] = currentState;
}
}
}
}
void updateLEDMatrix() {
for (int row = 0; row < NUM_ROWS; row++) {
for (int col = 0; col < NUM_COLS; col++) {
int ledRow, ledCol;
mapButtonToLED(row, col, ledRow, ledCol);
uint8_t intensity = gammaTable[mdp.leds[row * NUM_ROWS + col]] * gammaAdj;
pixels.setPixelColor(ledRow * NUM_ROWS + ledCol, pixels.Color(intensity / 2, intensity, intensity / 2));
}
}
pixels.show();
}
void sendTiltData() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
// Scale gyro data to 16-bit integer range
int16_t x = (int16_t)(g.gyro.x * 1000);
int16_t y = (int16_t)(g.gyro.y * 1000);
int16_t z = (int16_t)(g.gyro.z * 1000);
mdp.sendTiltEvent(0, x, y, z);
}

View file

@ -0,0 +1,459 @@
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
(symbol "Pico" (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at -13.97 27.94 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Pico" (id 1) (at 0 19.05 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "RPi_Pico:RPi_Pico_SMD_TH" (id 2) (at 0 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Pico_0_0"
(text "Raspberry Pi Pico" (at 0 21.59 0)
(effects (font (size 1.27 1.27)))
)
)
(symbol "Pico_0_1"
(rectangle (start -15.24 26.67) (end 15.24 -26.67)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type background))
)
)
(symbol "Pico_1_1"
(pin bidirectional line (at -17.78 24.13 0) (length 2.54)
(name "GPIO0" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 1.27 0) (length 2.54)
(name "GPIO7" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -1.27 0) (length 2.54)
(name "GPIO8" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -3.81 0) (length 2.54)
(name "GPIO9" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -17.78 -6.35 0) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -8.89 0) (length 2.54)
(name "GPIO10" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -11.43 0) (length 2.54)
(name "GPIO11" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -13.97 0) (length 2.54)
(name "GPIO12" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -16.51 0) (length 2.54)
(name "GPIO13" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -17.78 -19.05 0) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -21.59 0) (length 2.54)
(name "GPIO14" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 21.59 0) (length 2.54)
(name "GPIO1" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 -24.13 0) (length 2.54)
(name "GPIO15" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -24.13 180) (length 2.54)
(name "GPIO16" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -21.59 180) (length 2.54)
(name "GPIO17" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 -19.05 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -16.51 180) (length 2.54)
(name "GPIO18" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -13.97 180) (length 2.54)
(name "GPIO19" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -11.43 180) (length 2.54)
(name "GPIO20" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -8.89 180) (length 2.54)
(name "GPIO21" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 -6.35 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 -3.81 180) (length 2.54)
(name "GPIO22" (effects (font (size 1.27 1.27))))
(number "29" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -17.78 19.05 0) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin input line (at 17.78 -1.27 180) (length 2.54)
(name "RUN" (effects (font (size 1.27 1.27))))
(number "30" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 1.27 180) (length 2.54)
(name "GPIO26_ADC0" (effects (font (size 1.27 1.27))))
(number "31" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 3.81 180) (length 2.54)
(name "GPIO27_ADC1" (effects (font (size 1.27 1.27))))
(number "32" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 6.35 180) (length 2.54)
(name "AGND" (effects (font (size 1.27 1.27))))
(number "33" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 8.89 180) (length 2.54)
(name "GPIO28_ADC2" (effects (font (size 1.27 1.27))))
(number "34" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 11.43 180) (length 2.54)
(name "ADC_VREF" (effects (font (size 1.27 1.27))))
(number "35" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 13.97 180) (length 2.54)
(name "3V3" (effects (font (size 1.27 1.27))))
(number "36" (effects (font (size 1.27 1.27))))
)
(pin input line (at 17.78 16.51 180) (length 2.54)
(name "3V3_EN" (effects (font (size 1.27 1.27))))
(number "37" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 17.78 19.05 180) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "38" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 21.59 180) (length 2.54)
(name "VSYS" (effects (font (size 1.27 1.27))))
(number "39" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 16.51 0) (length 2.54)
(name "GPIO2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 17.78 24.13 180) (length 2.54)
(name "VBUS" (effects (font (size 1.27 1.27))))
(number "40" (effects (font (size 1.27 1.27))))
)
(pin input line (at -2.54 -29.21 90) (length 2.54)
(name "SWCLK" (effects (font (size 1.27 1.27))))
(number "41" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -29.21 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "42" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 2.54 -29.21 90) (length 2.54)
(name "SWDIO" (effects (font (size 1.27 1.27))))
(number "43" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 13.97 0) (length 2.54)
(name "GPIO3" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 11.43 0) (length 2.54)
(name "GPIO4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 8.89 0) (length 2.54)
(name "GPIO5" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -17.78 6.35 0) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -17.78 3.81 0) (length 2.54)
(name "GPIO6" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "RP2040" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at -29.21 49.53 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "RP2040" (id 1) (at 24.13 -49.53 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "RP2040_minimal:RP2040-QFN-56" (id 2) (at -19.05 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at -19.05 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "RP2040_0_0"
(text "Raspberry Pi" (at 0 5.08 0)
(effects (font (size 2.54 2.54)))
)
(text "RP2040" (at 0 0 0)
(effects (font (size 2.54 2.54)))
)
)
(symbol "RP2040_0_1"
(rectangle (start 29.21 48.26) (end -29.21 -48.26)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
)
(symbol "RP2040_1_1"
(pin power_in line (at 8.89 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 6.35 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 12.7 180) (length 2.54)
(name "GPIO8" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 10.16 180) (length 2.54)
(name "GPIO9" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 7.62 180) (length 2.54)
(name "GPIO10" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 5.08 180) (length 2.54)
(name "GPIO11" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 2.54 180) (length 2.54)
(name "GPIO12" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 0 180) (length 2.54)
(name "GPIO13" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -2.54 180) (length 2.54)
(name "GPIO14" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -5.08 180) (length 2.54)
(name "GPIO15" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -12.7 -50.8 90) (length 2.54)
(name "TESTEN" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 33.02 180) (length 2.54)
(name "GPIO0" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -31.75 -2.54 0) (length 2.54)
(name "XIN" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -31.75 -7.62 0) (length 2.54)
(name "XOUT" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 3.81 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -17.78 50.8 270) (length 2.54)
(name "DVDD" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin output line (at -31.75 -31.75 0) (length 2.54)
(name "SWCLK" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 -34.29 0) (length 2.54)
(name "SWD" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin input line (at -31.75 -20.32 0) (length 2.54)
(name "RUN" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -7.62 180) (length 2.54)
(name "GPIO16" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -10.16 180) (length 2.54)
(name "GPIO17" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -12.7 180) (length 2.54)
(name "GPIO18" (effects (font (size 1.27 1.27))))
(number "29" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 30.48 180) (length 2.54)
(name "GPIO1" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -15.24 180) (length 2.54)
(name "GPIO19" (effects (font (size 1.27 1.27))))
(number "30" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -17.78 180) (length 2.54)
(name "GPIO20" (effects (font (size 1.27 1.27))))
(number "31" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -20.32 180) (length 2.54)
(name "GPIO21" (effects (font (size 1.27 1.27))))
(number "32" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 1.27 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "33" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -22.86 180) (length 2.54)
(name "GPIO22" (effects (font (size 1.27 1.27))))
(number "34" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -25.4 180) (length 2.54)
(name "GPIO23" (effects (font (size 1.27 1.27))))
(number "35" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -27.94 180) (length 2.54)
(name "GPIO24" (effects (font (size 1.27 1.27))))
(number "36" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -30.48 180) (length 2.54)
(name "GPIO25" (effects (font (size 1.27 1.27))))
(number "37" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -35.56 180) (length 2.54)
(name "GPIO26_ADC0" (effects (font (size 1.27 1.27))))
(number "38" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -38.1 180) (length 2.54)
(name "GPIO27_ADC1" (effects (font (size 1.27 1.27))))
(number "39" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 27.94 180) (length 2.54)
(name "GPIO2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -40.64 180) (length 2.54)
(name "GPIO28_ADC2" (effects (font (size 1.27 1.27))))
(number "40" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 -43.18 180) (length 2.54)
(name "GPIO29_ADC3" (effects (font (size 1.27 1.27))))
(number "41" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -1.27 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "42" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 16.51 50.8 270) (length 2.54)
(name "ADC_AVDD" (effects (font (size 1.27 1.27))))
(number "43" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -8.89 50.8 270) (length 2.54)
(name "VREG_IN" (effects (font (size 1.27 1.27))))
(number "44" (effects (font (size 1.27 1.27))))
)
(pin power_out line (at -12.7 50.8 270) (length 2.54)
(name "VREG_VOUT" (effects (font (size 1.27 1.27))))
(number "45" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 40.64 180) (length 2.54)
(name "USB_DM" (effects (font (size 1.27 1.27))))
(number "46" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 43.18 180) (length 2.54)
(name "USB_DP" (effects (font (size 1.27 1.27))))
(number "47" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 12.7 50.8 270) (length 2.54)
(name "USB_VDD" (effects (font (size 1.27 1.27))))
(number "48" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -3.81 50.8 270) (length 2.54)
(name "IOVDD" (effects (font (size 1.27 1.27))))
(number "49" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 25.4 180) (length 2.54)
(name "GPIO3" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -20.32 50.8 270) (length 2.54)
(name "DVDD" (effects (font (size 1.27 1.27))))
(number "50" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 20.32 0) (length 2.54)
(name "QSPI_SD3" (effects (font (size 1.27 1.27))))
(number "51" (effects (font (size 1.27 1.27))))
)
(pin output line (at -31.75 16.51 0) (length 2.54)
(name "QSPI_SCLK" (effects (font (size 1.27 1.27))))
(number "52" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 27.94 0) (length 2.54)
(name "QSPI_SD0" (effects (font (size 1.27 1.27))))
(number "53" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 22.86 0) (length 2.54)
(name "QSPI_SD2" (effects (font (size 1.27 1.27))))
(number "54" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 25.4 0) (length 2.54)
(name "QSPI_SD1" (effects (font (size 1.27 1.27))))
(number "55" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at -31.75 31.75 0) (length 2.54)
(name "QSPI_SS" (effects (font (size 1.27 1.27))))
(number "56" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -50.8 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "57" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 22.86 180) (length 2.54)
(name "GPIO4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 20.32 180) (length 2.54)
(name "GPIO5" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 17.78 180) (length 2.54)
(name "GPIO6" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 31.75 15.24 180) (length 2.54)
(name "GPIO7" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)

View file

@ -0,0 +1,37 @@
(module Crystal_SMD_HC49-US (layer F.Cu) (tedit 5F0C7995)
(descr "SMD Crystal HC-49-SD http://cdn-reichelt.de/documents/datenblatt/B400/xxx-HC49-SMD.pdf, 11.4x4.7mm^2 package")
(tags "SMD SMT crystal")
(attr smd)
(fp_text reference Y1 (at 0 -3.55) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value ABLS-12.000MHZ-B4-T (at 0 3.55) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -6.7 1.3) (end -6.7 2.55) (layer F.SilkS) (width 0.12))
(fp_text user %R (at 0 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -5.7 -2.35) (end -5.7 2.35) (layer F.Fab) (width 0.1))
(fp_line (start -5.7 2.35) (end 5.7 2.35) (layer F.Fab) (width 0.1))
(fp_line (start 5.7 2.35) (end 5.7 -2.35) (layer F.Fab) (width 0.1))
(fp_line (start 5.7 -2.35) (end -5.7 -2.35) (layer F.Fab) (width 0.1))
(fp_line (start -3.015 -2.115) (end 3.015 -2.115) (layer F.Fab) (width 0.1))
(fp_line (start -3.015 2.115) (end 3.015 2.115) (layer F.Fab) (width 0.1))
(fp_line (start 5.9 -2.55) (end -6.7 -2.55) (layer F.SilkS) (width 0.12))
(fp_line (start -6.7 -2.55) (end -6.7 -1.3) (layer F.SilkS) (width 0.12))
(fp_line (start -6.7 2.55) (end 5.9 2.55) (layer F.SilkS) (width 0.12))
(fp_line (start -6.8 -2.6) (end -6.8 2.6) (layer F.CrtYd) (width 0.05))
(fp_line (start -6.8 2.6) (end 6.8 2.6) (layer F.CrtYd) (width 0.05))
(fp_line (start 6.8 2.6) (end 6.8 -2.6) (layer F.CrtYd) (width 0.05))
(fp_line (start 6.8 -2.6) (end -6.8 -2.6) (layer F.CrtYd) (width 0.05))
(fp_arc (start -3.015 0) (end -3.015 -2.115) (angle -180) (layer F.Fab) (width 0.1))
(fp_arc (start 3.015 0) (end 3.015 -2.115) (angle 180) (layer F.Fab) (width 0.1))
(pad 1 smd rect (at -4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask))
(pad 2 smd rect (at 4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask))
(model ${KISYS3DMOD}/Crystal.3dshapes/Crystal_SMD_HC49-SD.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,105 @@
(module RP2040-QFN-56 (layer F.Cu) (tedit 5EF32B43)
(descr "QFN, 56 Pin (http://www.cypress.com/file/416486/download#page=40), generated with kicad-footprint-generator ipc_dfn_qfn_generator.py")
(tags "QFN DFN_QFN")
(attr smd)
(fp_text reference REF** (at 0 -4.82) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Pico2040-QFN-56 (at 0 4.82) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 4.12 -4.12) (end -4.12 -4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.12 4.12) (end 4.12 -4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.12 4.12) (end 4.12 4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.12 -4.12) (end -4.12 4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.1))
(fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.1))
(fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.1))
(fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.1))
(fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.1))
(fp_line (start -2.96 -3.61) (end -3.61 -3.61) (layer F.SilkS) (width 0.12))
(fp_line (start 3.61 3.61) (end 3.61 2.96) (layer F.SilkS) (width 0.12))
(fp_line (start 2.96 3.61) (end 3.61 3.61) (layer F.SilkS) (width 0.12))
(fp_line (start -3.61 3.61) (end -3.61 2.96) (layer F.SilkS) (width 0.12))
(fp_line (start -2.96 3.61) (end -3.61 3.61) (layer F.SilkS) (width 0.12))
(fp_line (start 3.61 -3.61) (end 3.61 -2.96) (layer F.SilkS) (width 0.12))
(fp_line (start 2.96 -3.61) (end 3.61 -3.61) (layer F.SilkS) (width 0.12))
(pad 56 smd roundrect (at -2.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 55 smd roundrect (at -2.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 54 smd roundrect (at -1.8 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 53 smd roundrect (at -1.4 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 52 smd roundrect (at -1 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 51 smd roundrect (at -0.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 50 smd roundrect (at -0.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 49 smd roundrect (at 0.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 48 smd roundrect (at 0.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 47 smd roundrect (at 1 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 46 smd roundrect (at 1.4 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 45 smd roundrect (at 1.8 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 44 smd roundrect (at 2.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 43 smd roundrect (at 2.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 42 smd roundrect (at 3.4375 -2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 41 smd roundrect (at 3.4375 -2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 40 smd roundrect (at 3.4375 -1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 39 smd roundrect (at 3.4375 -1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 38 smd roundrect (at 3.4375 -1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 37 smd roundrect (at 3.4375 -0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 36 smd roundrect (at 3.4375 -0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 35 smd roundrect (at 3.4375 0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 34 smd roundrect (at 3.4375 0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 33 smd roundrect (at 3.4375 1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 32 smd roundrect (at 3.4375 1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 31 smd roundrect (at 3.4375 1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 30 smd roundrect (at 3.4375 2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 29 smd roundrect (at 3.4375 2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 28 smd roundrect (at 2.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 27 smd roundrect (at 2.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 26 smd roundrect (at 1.8 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 25 smd roundrect (at 1.4 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 24 smd roundrect (at 1 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 23 smd roundrect (at 0.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 22 smd roundrect (at 0.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 21 smd roundrect (at -0.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 20 smd roundrect (at -0.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 19 smd roundrect (at -1 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 18 smd roundrect (at -1.4 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 17 smd roundrect (at -1.8 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 16 smd roundrect (at -2.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 15 smd roundrect (at -2.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 14 smd roundrect (at -3.4375 2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 13 smd roundrect (at -3.4375 2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 12 smd roundrect (at -3.4375 1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 11 smd roundrect (at -3.4375 1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 10 smd roundrect (at -3.4375 1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 9 smd roundrect (at -3.4375 0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 8 smd roundrect (at -3.4375 0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 7 smd roundrect (at -3.4375 -0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 6 smd roundrect (at -3.4375 -0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 5 smd roundrect (at -3.4375 -1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 4 smd roundrect (at -3.4375 -1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 3 smd roundrect (at -3.4375 -1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 2 smd roundrect (at -3.4375 -2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 1 smd roundrect (at -3.4375 -2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad "" smd roundrect (at 0.6375 0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at 0.6375 -0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at -0.6375 0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at -0.6375 -0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad 57 thru_hole circle (at 1.275 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at -1.275 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 1.275 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at -1.275 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 1.275 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at -1.275 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 smd roundrect (at 0 0) (size 3.2 3.2) (layers F.Cu F.Mask) (roundrect_rratio 0.045))
(model ${KISYS3DMOD}/Package_DFN_QFN.3dshapes/QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mm.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,259 @@
(kicad_symbol_lib
(version 20231120)
(generator "kicad_symbol_editor")
(generator_version "8.0")
(symbol "SK6812-EC20"
(pin_names
(offset 0.254)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "D"
(at 5.08 5.715 0)
(effects
(font
(size 1.27 1.27)
)
(justify right bottom)
)
)
(property "Value" "SK6812-EC20"
(at 1.27 -5.715 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(property "Footprint" "LED_SMD:LED_SK6812_PLCC4_5.0x5.0mm_P3.2mm"
(at 1.27 -7.62 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
(hide yes)
)
)
(property "Datasheet" "https://cdn-shop.adafruit.com/product-files/1138/SK6812+LED+datasheet+.pdf"
(at 2.54 -9.525 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
(hide yes)
)
)
(property "Description" "RGB LED with integrated controller"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "RGB LED NeoPixel addressable"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "LED*SK6812*PLCC*5.0x5.0mm*P3.2mm*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "SK6812-EC20_0_0"
(text "RGB"
(at 2.286 -4.191 0)
(effects
(font
(size 0.762 0.762)
)
)
)
)
(symbol "SK6812-EC20_0_1"
(polyline
(pts
(xy 1.27 -3.556) (xy 1.778 -3.556)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 1.27 -2.54) (xy 1.778 -2.54)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 4.699 -3.556) (xy 2.667 -3.556)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.286 -2.54) (xy 1.27 -3.556) (xy 1.27 -3.048)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.286 -1.524) (xy 1.27 -2.54) (xy 1.27 -2.032)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 3.683 -1.016) (xy 3.683 -3.556) (xy 3.683 -4.064)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 4.699 -1.524) (xy 2.667 -1.524) (xy 3.683 -3.556) (xy 4.699 -1.524)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(rectangle
(start 5.08 5.08)
(end -5.08 -5.08)
(stroke
(width 0.254)
(type default)
)
(fill
(type background)
)
)
)
(symbol "SK6812-EC20_1_1"
(pin power_in line
(at 0 7.62 270)
(length 2.54)
(name "VDD"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin output line
(at 7.62 0 180)
(length 2.54)
(name "DOUT"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin power_in line
(at 0 -7.62 90)
(length 2.54)
(name "VSS"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin input line
(at -7.62 0 0)
(length 2.54)
(name "DIN"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "4"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
)
)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,173 @@
(footprint "SK6812-EC20"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0.4 1.8 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "22afd22e-5c9a-4ebc-8509-97f0288853f5")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "SK6812-EC20"
(at 0 3 0)
(unlocked yes)
(layer "F.Fab")
(uuid "0f8beb73-d23c-4790-99ae-525a1f4b3259")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "795b5d19-106d-4232-b980-343e2361d78e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "cfb4cdb7-1d46-42b6-928a-1c52bf600581")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "357379c6-48ba-4447-a21e-2aa10cc6c32b")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start 0.475 -0.15)
(end 0.825 -0.15)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "8a2a7bc9-8a43-448b-8256-e1975cad3142")
)
(fp_line
(start 1.331468 0.879847)
(end 1.331468 1.229847)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "4ab6a89c-c322-4d47-87c5-f4245939d725")
)
(fp_line
(start 1.331468 1.229847)
(end 0.981468 1.229847)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "278a0a14-9d46-4599-902d-0db8ef8f8bc4")
)
(fp_rect
(start -1.2 -1.1)
(end 1.2 1.1)
(stroke
(width 0.1)
(type default)
)
(fill none)
(layer "F.SilkS")
(uuid "7990d11a-3c35-4b57-9981-780473c35626")
)
(fp_rect
(start -1.2 -1.1)
(end 1.2 1.1)
(stroke
(width 0.05)
(type default)
)
(fill none)
(layer "F.CrtYd")
(uuid "de034fa0-fb71-469c-9bce-385cae40c04a")
)
(fp_text user "${REFERENCE}"
(at 0 4.4 0)
(unlocked yes)
(layer "F.Fab")
(uuid "edf10725-0a9d-4a71-8c81-f671db699f77")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd rect
(at 0.65 0.6)
(size 0.8 0.7)
(layers "F.Cu" "F.Paste" "F.Mask")
(thermal_bridge_angle 45)
(uuid "40cac2e8-84b9-462b-85f5-2b836c1c809f")
)
(pad "2" smd rect
(at 0.65 -0.6)
(size 0.8 0.7)
(layers "F.Cu" "F.Paste" "F.Mask")
(thermal_bridge_angle 45)
(uuid "cd544606-7f9e-43ef-b7dc-2902f48a725e")
)
(pad "3" smd rect
(at -0.65 -0.6)
(size 0.8 0.7)
(layers "F.Cu" "F.Paste" "F.Mask")
(thermal_bridge_angle 45)
(uuid "5b19fc8d-afb6-4fc5-9b36-e1bc4e956202")
)
(pad "4" smd rect
(at -0.65 0.6)
(size 0.8 0.7)
(layers "F.Cu" "F.Paste" "F.Mask")
(thermal_bridge_angle 45)
(uuid "b48d48fb-0c2f-474d-866a-d9047261d198")
)
(model "${KIPRJMOD}/SK6812-EC20.pretty/SK6812-EC20.STEP"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -180 0 0)
)
)
)

3966
hardware/butns/TS-1187A.step Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

107817
hardware/butns/butns.kicad_pcb Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,594 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"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_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 2.7,
"height": 2.7,
"width": 2.7
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"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": [],
"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": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": [
"SK6812-EC20"
]
},
"meta": {
"filename": "butns.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "butns.step",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "",
"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": "Referenz"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"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,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"spice_current_sheet_as_root": false,
"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_id_separator": 0
},
"sheets": [
[
"1c3520c0-bca7-4d12-8c9b-3ac18c44338d",
"Stammblatt"
],
[
"b0295986-856b-4508-9cd9-aff1aa86ee33",
"Frontend"
],
[
"d5941714-0239-4676-93bd-9d828e2adbdd",
"Backend"
]
],
"text_variables": {}
}

View file

@ -0,0 +1,89 @@
(kicad_sch
(version 20231120)
(generator "eeschema")
(generator_version "8.0")
(uuid "1c3520c0-bca7-4d12-8c9b-3ac18c44338d")
(paper "A4")
(lib_symbols)
(sheet
(at 128.27 74.93)
(size 24.13 10.16)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "b0295986-856b-4508-9cd9-aff1aa86ee33")
(property "Sheetname" "Frontend"
(at 128.27 74.2184 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "butns-frontend.kicad_sch"
(at 128.27 85.6746 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "butns"
(path "/1c3520c0-bca7-4d12-8c9b-3ac18c44338d"
(page "2")
)
)
)
)
(sheet
(at 177.8 77.47)
(size 26.67 10.16)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "d5941714-0239-4676-93bd-9d828e2adbdd")
(property "Sheetname" "Backend"
(at 177.8 76.7584 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "butns-backend.kicad_sch"
(at 177.8 88.2146 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "butns"
(path "/1c3520c0-bca7-4d12-8c9b-3ac18c44338d"
(page "3")
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
)

63953
hardware/butns/butns.step Normal file

File diff suppressed because it is too large Load diff

BIN
hardware/butns/butns.stl Normal file

Binary file not shown.

@ -0,0 +1 @@
Subproject commit 0e85dbd3c828090f7a961d3ab034612e500d79d7

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,73 @@
include <./roundedcube.scad>
height = 5.3;
s = 8.5;
px = 11.43;
py = 11.4;
inlayslack = 1;
rubberslack = .6;
inlayheight = 2.6 - inlayslack;
w = 0.42*3;
h = 0.12*3;
cross = true;
/*
intersection() {
difference() {
union() {
for(x=[0:8-1]) for(y=[0:8-1])
translate([x * px, y * py, height / 2]) roundedcube([s, s, height], center = true, radius = 1.5, "zmax");
//translate([- s, -s, 0])cube([7 * px + s * 2, 7 * py + s * 2, inlayheight ]);
if (cross) {
for(x=[0:14])
translate([4 * px, (x-3) * py, h/2]) rotate([0, 0, 45]) cube([14*px, w, h], center = true);
for(x=[0:14])
translate([4 * px, (x-4) * py, h/2]) rotate([0, 0, -45]) cube([14*px, w, h], center = true);
} else {
for(x=[0:8-1]) for(y=[0:8-1]) {
translate([x * px, y * py - s / 4, h/2]) cube([12, w, h], center=true);
translate([x * px, y * py + s / 4, h/2]) cube([12, w, h], center=true);
translate([x * px - s / 4, y * py, h/2]) cube([w, 12, h], center=true);
translate([x * px + s / 4, y * py, h/2]) cube([w, 12, h], center=true);
}
}
}
translate([3.5 * px, 3.5 * py, 0]) cylinder(h = 20, d = 5.4, center = true);
translate([-px/2-1, -py/2-1, 0]) cylinder(h = 20, d = 5.8, center = true);
translate([7.5 * px+1, 7.5 * py+1, 0]) cylinder(h = 20, d = 5.8, center = true);
translate([-px/2-1, 7.5 * py+1, 0]) cylinder(h = 20, d = 5.8, center = true);
translate([7.5 * px+1, -py/2-1, 0]) cylinder(h = 20, d = 5.8, center = true);
}
translate([-s/2-1.5, -s/2-1.5, -1]) roundedcube([8*px-2.9+3, 8*py-2.9+3, 10], radius=1.5, center=false, "zmax");
}
for(x=[0:8-1]) for(y=[0:8-1])
translate([x * px + s/2, y * py, inlayheight / 2]) cube([3.25, s/3, inlayheight], center = true);
for(y=[0:8-1])
translate([-1 * px + s - 1, y * py, inlayheight / 2]) cube([2.75, s/4, inlayheight], center = true);
*/
color("blue")
for(x=[0:8-1]) for(y=[0:8-1])
translate([x * px - s/2+.15, y * py, (height - 2) / 2]) cube([.4, s-3, height - 2], center = true);
/*
color("blue") translate([0, 0, inlayheight]) difference() {
translate([3.5*px, 3.5*py, (inlayslack - rubberslack) / 2]) cube([7*px, 7*py, inlayslack - rubberslack], center = true);
for(x=[0:8-1]) for(y=[0:8-1])
translate([x * px, y * py, height / 2]) roundedcube([s+rubberslack, s + rubberslack, height], center = true, radius = 1.5, "zmax");
}*/

Binary file not shown.

View file

@ -0,0 +1,630 @@
//-----------------------------------------------------------------------
// Yet Another Parameterized Projectbox generator
//
// This is a box for <template>
//
// Version 3.3.0 (2024-11-27)
//
// This design is parameterized based on the size of a PCB.
//
// For many/complex cutoutGrills, you might need to adjust
// the max number of elements in OpenSCAD:
//
// Preferences->Advanced->Turn off rendering at 250000 elements
// ^^^^^^
//
//-----------------------------------------------------------------------
include <./YAPP_Box/YAPPgenerator_v3.scad>
//---------------------------------------------------------
// This design is parameterized based on the size of a PCB.
//---------------------------------------------------------
// Note: length/lengte refers to X axis,
// width/breedte refers to Y axis,
// height/hoogte refers to Z axis
/*
padding-back|<------pcb length --->|<padding-front
RIGHT
0 X-axis --->
+----------------------------------------+ ---
| | ^
| | padding-right
Y | | v
| | -5,y +----------------------+ | ---
B a | | 0,y x,y | | ^ F
A x | | | | | R
C i | | | | | pcb width O
K s | | | | | N
| | 0,0 x,0 | | v T
^ | -5,0 +----------------------+ | ---
| | | padding-left
0 +----------------------------------------+ ---
0 X-as --->
LEFT
*/
//-- which part(s) do you want to print?
printBaseShell = true;
printLidShell = true;
printSwitchExtenders = true;
printDisplayClips = true;
// ********************************************************************
// The Following will be used as the first element in the pbc array
//Defined here so you can define the "Main" PCB using these if wanted
pcbLength = 99; // front to back (X axis)
pcbWidth = 99; // side to side (Y axis)
pcbThickness = 1.6;
standoffHeight = 15; //-- How much the PCB needs to be raised from the base to leave room for solderings and whatnot
standoffDiameter = 6;
standoffPinDiameter = 2.5;
standoffHoleSlack = 0.4;
myPcb = "../butns.stl";
if ($preview)
{
translate([pcbLength/2+2.5,pcbWidth/2+2.5,pcbThickness + standoffHeight])
{
rotate([0,0,90]) color("darkgray") import(myPcb);
}
}
//===================================================================
// *** PCBs ***
// Printed Circuit Boards
//-------------------------------------------------------------------
// Default origin = yappCoordPCB : yappCoordBoxInside[0,0,0]
//
// Parameters:
// Required:
// p(0) = name
// p(1) = length
// p(2) = width
// p(3) = posx
// p(4) = posy
// p(5) = Thickness
// p(6) = standoff_Height
// p(7) = standoff_Diameter
// p(8) = standoff_PinDiameter
// Optional:
// p(9) = standoff_HoleSlack (default to 0.4)
//The following can be used to get PCB values elsewhere in the script - not in pcb definition.
//If "PCB Name" is omitted then "Main" is used
// pcbLength --> pcbLength("PCB Name")
// pcbWidth --> pcbWidth("PCB Name")
// pcbThickness --> pcbThickness("PCB Name")
// standoffHeight --> standoffHeight("PCB Name")
// standoffDiameter --> standoffDiameter("PCB Name")
// standoffPinDiameter --> standoffPinDiameter("PCB Name")
// standoffHoleSlack --> standoffHoleSlack("PCB Name")
pcb =
[
// Default Main PCB - DO NOT REMOVE the "Main" line.
["Main", pcbLength,pcbWidth, 0,0, pcbThickness, standoffHeight, standoffDiameter, standoffPinDiameter, standoffHoleSlack]
];
//-------------------------------------------------------------------
//-- padding between pcb and inside wall
paddingFront = .5;
paddingBack = .5;
paddingRight = 1.5;
paddingLeft = .5;
//-- Edit these parameters for your own box dimensions
wallThickness = 1.5;
basePlaneThickness = 2;
lidPlaneThickness = 2;
//-- Total height of box = lidPlaneThickness
// + lidWallHeight
//-- + baseWallHeight
// + basePlaneThickness
//-- space between pcb and lidPlane :=
//-- (bottonWallHeight+lidWallHeight) - (standoffHeight+pcbThickness)
baseWallHeight = 18;
lidWallHeight = 2;
//-- e where base and lid off box can overlap
//-- Make sure this isn't less than lidWallHeight
ridgeHeight = 3;
ridgeSlack = 0.2;
roundRadius = 2.0;
// Box Types are 0-4 with 0 as the default
// 0 = All edges rounded with radius (roundRadius) above
// 1 = All edges sqrtuare
// 2 = All edges chamfered by (roundRadius) above
// 3 = Square top and bottom edges (the ones that touch the build plate) and rounded vertical edges
// 4 = Square top and bottom edges (the ones that touch the build plate) and chamfered vertical edges
// 5 = Chanfered top and bottom edges (the ones that touch the build plate) and rounded vertical edges
boxType = 3; // Default type 0
// Set the layer height of your printer
printerLayerHeight = 0.2;
//---------------------------
//-- C O N T R O L --
//---------------------------
// -- Render --
renderQuality = 8; //-> from 1 to 32, Default = 8
// --Preview --
previewQuality = 5; //-> from 1 to 32, Default = 5
showSideBySide = false; //-> Default = true
onLidGap = 0; // tip don't override to animate the lid opening
colorLid = "YellowGreen";
alphaLid = 1;
colorBase = "BurlyWood";
alphaBase = 1;
hideLidWalls = false; //-> Remove the walls from the lid : only if preview and showSideBySide=true
hideBaseWalls = false; //-> Remove the walls from the base : only if preview and showSideBySide=true
showOrientation = true; //-> Show the Front/Back/Left/Right labels : only in preview
showPCB = false; //-> Show the PCB in red : only in preview
showSwitches = false; //-> Show the switches (for pushbuttons) : only in preview
showButtonsDepressed = false; //-> Should the buttons in the Lid On view be in the pressed position
showOriginCoordBox = false; //-> Shows red bars representing the origin for yappCoordBox : only in preview
showOriginCoordBoxInside = false; //-> Shows blue bars representing the origin for yappCoordBoxInside : only in preview
showOriginCoordPCB = false; //-> Shows blue bars representing the origin for yappCoordBoxInside : only in preview
showMarkersPCB = false; //-> Shows black bars corners of the PCB : only in preview
showMarkersCenter = false; //-> Shows magenta bars along the centers of all faces
inspectX = 0; //-> 0=none (>0 from Back)
inspectY = 6; //-> 0=none (>0 from Right)
inspectZ = 0; //-> 0=none (>0 from Bottom)
inspectXfromBack = true; //-> View from the inspection cut foreward
inspectYfromLeft = true; //-> View from the inspection cut to the right
inspectZfromBottom = true; //-> View from the inspection cut up
//---------------------------
//-- C O N T R O L --
//---------------------------
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// Start of Debugging config (used if not overridden in template)
// ------------------------------------------------------------------
// ------------------------------------------------------------------
//==================================================================
// *** Shapes ***
//------------------------------------------------------------------
// There are a view pre defines shapes and masks
// shapes:
// shapeIsoTriangle, shapeHexagon, shape6ptStar
//
// masks:
// maskHoneycomb, maskHexCircles, maskBars, maskOffsetBars
//
//------------------------------------------------------------------
// Shapes should be defined to fit into a 1x1 box (+/-0.5 in X and Y) - they will
// be scaled as needed.
// defined as a vector of [x,y] vertices pairs.(min 3 vertices)
// for example a triangle could be [yappPolygonDef,[[-0.5,-0.5],[0,0.5],[0.5,-0.5]]];
// To see how to add your own shapes and mask see the YAPPgenerator program
//------------------------------------------------------------------
// Show sample of a Mask
//SampleMask(maskHoneycomb);
//===================================================================
// *** PCB Supports ***
// Pin and Socket standoffs
//-------------------------------------------------------------------
// Default origin = yappCoordPCB : pcb[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx
// p(1) = posy
// Optional:
// p(2) = Height to bottom of PCB : Default = standoffHeight
// p(3) = PCB Gap : Default = -1 : Default for yappCoordPCB=pcbThickness, yappCoordBox=0
// p(4) = standoffDiameter Default = standoffDiameter;
// p(5) = standoffPinDiameter Default = standoffPinDiameter;
// p(6) = standoffHoleSlack Default = standoffHoleSlack;
// p(7) = filletRadius (0 = auto size)
// p(8) = Pin Length : Default = 0 -> PCB Gap + standoff_PinDiameter
// Indicated length of pin without the half sphere tip.
// Example : pcbThickness() only leaves the half sphere tip above the PCB
// n(a) = { <yappBoth> | yappLidOnly | yappBaseOnly }
// n(b) = { <yappPin>, yappHole, yappTopPin }
// yappPin = Pin on Base and Hole on Lid
// yappHole = Hole on Both
// yappTopPin = Hole on Base and Pin on Lid
// n(c) = { yappAllCorners, yappFrontLeft | <yappBackLeft> | yappFrontRight | yappBackRight }
// n(d) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
// n(e) = { yappNoFillet } : Removes the internal and external fillets and the Rounded tip on the pins
// n(f) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
pcbStands =
[
[4+91/2, 4+91/2, standoffHeight, pcbThickness, standoffDiameter, 2.5, 0, 0, 0, yappBaseOnly, yappHole],
/*[4+91, 4+91, standoffHeight, pcbThickness, standoffDiameter, 2.5, 0, 0, 0, yappBaseOnly, yappHole],
[4, 4+91, standoffHeight, pcbThickness, standoffDiameter, 2.5, 0, 0, 0, yappBaseOnly, yappHole],
[4+91, 4, standoffHeight, pcbThickness, standoffDiameter, 2.5, 0, 0, 0, yappBaseOnly, yappHole],
[4, 4, standoffHeight, pcbThickness, standoffDiameter, 2.5, 0, 0, 0, yappBaseOnly, yappHole],*/
];
//===================================================================
// *** Connectors ***
// Standoffs with hole through base and socket in lid for screw type connections.
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx
// p(1) = posy
// p(2) = pcbStandHeight
// p(3) = screwDiameter
// p(4) = screwHeadDiameter (don't forget to add extra for the fillet)
// p(5) = insertDiameter
// p(6) = outsideDiameter
// Optional:
// p(7) = PCB Gap : Default = -1 : Default for yappCoordPCB=pcbThickness, yappCoordBox=0
// p(8) = filletRadius : Default = 0/Auto(0 = auto size)
// n(a) = { <yappAllCorners>, yappFrontLeft | yappFrontRight | yappBackLeft | yappBackRight }
// n(b) = { <yappCoordBox> | yappCoordPCB | yappCoordBoxInside }
// n(c) = { yappNoFillet }
// n(d) = { yappCountersink }
// n(e) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
// n(f) = { yappThroughLid = changes the screwhole to the lid and the socket to the base}
//-------------------------------------------------------------------
connectors =
[
[4, 4, -pcbThickness, 2.6, 5, 2.5, 6.5],
[4+91, 4, -pcbThickness, 2.6, 5, 2.5, 6.5],
[4, 4+91, -pcbThickness, 2.6, 5, 2.5, 6.5],
[4+91, 4+91, -pcbThickness, 2.6, 5, 2.5, 6.5],
];
//===================================================================
// *** Cutouts ***
// There are 6 cutouts one for each surface:
// cutoutsBase (Bottom), cutoutsLid (Top), cutoutsFront, cutoutsBack, cutoutsLeft, cutoutsRight
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Required Not Used Note
//----------------------+-----------------------+---------------+------------------------------------
// yappRectangle | width, length | radius |
// yappCircle | radius | width, length |
// yappRoundedRect | width, length, radius | |
// yappCircleWithFlats | width, radius | length | length=distance between flats
// yappCircleWithKey | width, length, radius | | width = key width length=key depth
// | | | (negative indicates outside of circle)
// yappPolygon | width, length | radius | yappPolygonDef object must be
// | | | provided
// yappRing | width, length, radius | | radius = outer radius,
// | | | length = inner radius
// | | | width = connection between rings
// | | | 0 = No connectors
// | | | positive = 2 connectors
// | | | negative = 4 connectors
// yappSphere | width, radius | | Width = Sphere center distance from
// | | | center of depth. negative = below
// | | | radius = sphere radius
//----------------------+-----------------------+---------------+------------------------------------
//
// Parameters:
// Required:
// p(0) = from Back
// p(1) = from Left
// p(2) = width
// p(3) = length
// p(4) = radius
// p(5) = shape : { yappRectangle | yappCircle | yappPolygon | yappRoundedRect
// | yappCircleWithFlats | yappCircleWithKey | yappSphere }
// Optional:
// p(6) = depth : Default = 0/Auto : 0 = Auto (plane thickness)
// p(7) = angle : Default = 0
// n(a) = { yappPolygonDef } : Required if shape = yappPolygon specified -
// n(b) = { yappMaskDef } : If a yappMaskDef object is added it will be used as a mask
// for the cutout.
// n(c) = { [yappMaskDef, hOffset, vOffset, rotation] } : If a list for a mask is added
// it will be used as a mask for the cutout. With the Rotation
// and offsets applied. This can be used to fine tune the mask
// placement within the opening.
// n(d) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
// n(e) = { <yappOrigin>, yappCenter }
// n(f) = { <yappGlobalOrigin>, yappAltOrigin } // Only affects Top(lid), Back and Right Faces
// n(g) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
// n(h) = { yappFromInside } Make the cut from the inside towards the outside
//-------------------------------------------------------------------
cutoutsBase =
[
];
cutoutsLid =
[
for(x=[0:8-1]) for(y=[0:8-1])
[10 / 2 + x * 11.43, 10 / 2 + 1 + y * 11.4, 9, 9, 1, yappRoundedRect, 20]
];
cutoutsFront =
[
];
cutoutsBack =
[
];
cutoutsLeft =
[
[26.5, -4, 12, 5, 2, yappRoundedRect, yappCenter]
];
cutoutsRight =
[
];
//===================================================================
// *** Snap Joins ***
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx | posy
// p(1) = width
// p(2) = { yappLeft | yappRight | yappFront | yappBack } : one or more
// Optional:
// n(a) = { <yappOrigin>, yappCenter }
// n(b) = { yappSymmetric }
// n(c) = { yappRectangle } == Make a diamond shape snap
//-------------------------------------------------------------------
snapJoins =
[
[99/2, 30, yappLeft, yappRight, yappFront, yappBack, yappCenter, yappSymmetric, yappRectangle]
];
//===================================================================
// *** Box Mounts ***
// Mounting tabs on the outside of the box
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// Required:
// p(0) = pos : position along the wall : [pos,offset] : vector for position and offset X.
// Position is to center of mounting screw in leftmost position in slot
// p(1) = screwDiameter
// p(2) = width of opening in addition to screw diameter
// (0=Circular hole screwWidth = hole twice as wide as it is tall)
// p(3) = height
// n(a) = { yappLeft | yappRight | yappFront | yappBack } : one or more
// Optional:
// p(4) = filletRadius : Default = 0/Auto(0 = auto size)
// n(b) = { yappNoFillet }
// n(c) = { <yappBase>, yappLid }
// n(d) = { yappCenter } : shifts Position to be in the center of the opening instead of
// the left of the opening
// n(e) = { <yappGlobalOrigin>, yappAltOrigin } : Only affects Back and Right Faces
//-------------------------------------------------------------------
boxMounts =
[
];
//===================================================================
// *** Light Tubes ***
//-------------------------------------------------------------------
// Default origin = yappCoordPCB: PCB[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx
// p(1) = posy
// p(2) = tubeLength
// p(3) = tubeWidth
// p(4) = tubeWall
// p(5) = gapAbovePcb
// p(6) = { yappCircle | yappRectangle } : tubeType
// Optional:
// p(7) = lensThickness (how much to leave on the top of the lid for the
// light to shine through 0 for open hole : Default = 0/Open
// p(8) = Height to top of PCB : Default = standoffHeight+pcbThickness
// p(9) = filletRadius : Default = 0/Auto
// n(a) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
// n(b) = { <yappGlobalOrigin>, yappAltOrigin }
// n(c) = { yappNoFillet }
// n(d) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
lightTubes =
[
];
//===================================================================
// *** Push Buttons ***
//-------------------------------------------------------------------
// Default origin = yappCoordPCB: PCB[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx
// p(1) = posy
// p(2) = capLength
// p(3) = capWidth
// p(4) = capRadius
// p(5) = capAboveLid
// p(6) = switchHeight
// p(7) = switchTravel
// p(8) = poleDiameter
// Optional:
// p(9) = Height to top of PCB : Default = standoffHeight + pcbThickness
// p(10) = { yappRectangle | yappCircle | yappPolygon | yappRoundedRect
// | yappCircleWithFlats | yappCircleWithKey } : Shape, Default = yappRectangle
// p(11) = angle : Default = 0
// p(12) = filletRadius : Default = 0/Auto
// p(13) = buttonWall : Default = 2.0;
// p(14) = buttonPlateThickness : Default= 2.5;
// p(15) = buttonSlack : Default= 0.25;
// n(a) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
// n(b) = { <yappGlobalOrigin>, yappAltOrigin }
// n(c) = { yappNoFillet }
// n(d) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
pushButtons =
[
];
//===================================================================
// *** Labels ***
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// p(0) = posx
// p(1) = posy/z
// p(2) = rotation degrees CCW
// p(3) = depth : positive values go into case (Remove) negative valies are raised (Add)
// p(4) = { yappLeft | yappRight | yappFront | yappBack | yappLid | yappBaseyappLid } : plane
// p(5) = font
// p(6) = size
// p(7) = "label text"
// Optional:
// p(8) = Expand : Default = 0 : mm to expand text by (making it bolder)
//-------------------------------------------------------------------
labelsPlane =
[
];
//===================================================================
// *** Ridge Extension ***
// Extension from the lid into the case for adding split opening at various heights
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// Required:
// p(0) = pos
// p(1) = width
// p(2) = height : Where to relocate the seam : yappCoordPCB = Above (positive) the PCB
// yappCoordBox = Above (positive) the bottom of the shell (outside)
// Optional:
// n(a) = { <yappOrigin>, yappCenter }
// n(b) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
// n(c) = { yappAltOrigin, <yappGlobalOrigin> } // Only affects Top(lid), Back and Right Faces
// n(d) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//
// Note: Snaps should not be placed on ridge extensions as they remove the ridge to place them.
//-------------------------------------------------------------------
ridgeExtLeft =
[
];
ridgeExtRight =
[
];
ridgeExtFront =
[
];
ridgeExtBack =
[
];
//===================================================================
// *** Display Mounts ***
// add a cutout to the lid with mounting posts for a display
//-------------------------------------------------------------------
// Default origin = yappCoordBox: box[0,0,0]
//
// Parameters:
// Required:
// p(0) = posx
// p(1) = posy
// p[2] : displayWidth = overall Width of the display module
// p[3] : displayHeight = overall Height of the display module
// p[4] : pinInsetH = Horizontal inset of the mounting hole
// p[5] : pinInsetV = Vertical inset of the mounting hole
// p[6] : pinDiameter,
// p[7] : postOverhang = Extra distance on outside of pins for the display to sit on - pin Diameter is a good value
// p[8] : walltoPCBGap = Distance from the display PCB to the surface of the screen
// p[9] : pcbThickness = Thickness of the display module PCB
// p[10] : windowWidth = opening width for the screen
// p[11] : windowHeight = Opening height for the screen
// p[12] : windowOffsetH = Horizontal offset from the center for the opening
// p[13] : windowOffsetV = Vertical offset from the center for the opening
// p[14] : bevel = Apply a 45degree bevel to the opening
// Optionl:
// p[15] : rotation
// p[16] : snapDiameter : default = pinDiameter*2
// p[17] : lidThickness : default = lidPlaneThickness
// n(a) = { <yappOrigin>, yappCenter }
// n(b) = { <yappCoordBox> | yappCoordPCB | yappCoordBoxInside }
// n(c) = { <yappGlobalOrigin>, yappAltOrigin } // Only affects Top(lid), Back and Right Faces
// n(d) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
displayMounts =
[
];
//========= HOOK functions ============================
// Hook functions allow you to add 3d objects to the case.
// Lid/Base = Shell part to attach the object to.
// Inside/Outside = Join the object from the midpoint of the shell to the inside/outside.
// Pre = Attach the object Pre before doing Cutouts/Stands/Connectors.
//===========================================================
// origin = box(0,0,0)
module hookLidInside()
{
//if (printMessages) echo("hookLidInside() ..");
} // hookLidInside()
//===========================================================
// origin = box(0,0,shellHeight)
module hookLidOutside()
{
//if (printMessages) echo("hookLidOutside() ..");
} // hookLidOutside()
//===========================================================
//===========================================================
// origin = box(0,0,0)
module hookBaseInside()
{
//if (printMessages) echo("hookBaseInside() ..");
} // hookBaseInside()
//===========================================================
// origin = box(0,0,0)
module hookBaseOutside()
{
//if (printMessages) echo("hookBaseOutside() ..");
} // hookBaseInside()
// **********************************************************
// **********************************************************
// **********************************************************
// *************** END OF TEMPLATE SECTION ******************
// **********************************************************
// **********************************************************
// **********************************************************
//---- This is where the magic happens ----
YAPPgenerate();

149564
hardware/butns/case/case.stl Normal file

File diff suppressed because it is too large Load diff

BIN
hardware/butns/case/lid.stl Normal file

Binary file not shown.

View file

@ -0,0 +1,61 @@
// Higher definition curves
$fs = 0.01;
module roundedcube(size = [1, 1, 1], center = false, radius = 0.5, apply_to = "all") {
// If single value, convert to [x, y, z] vector
size = (size[0] == undef) ? [size, size, size] : size;
translate_min = radius;
translate_xmax = size[0] - radius;
translate_ymax = size[1] - radius;
translate_zmax = size[2] - radius;
diameter = radius * 2;
module build_point(type = "sphere", rotate = [0, 0, 0]) {
if (type == "sphere") {
sphere(r = radius);
} else if (type == "cylinder") {
rotate(a = rotate)
cylinder(h = diameter, r = radius, center = true);
}
}
obj_translate = (center == false) ?
[0, 0, 0] : [
-(size[0] / 2),
-(size[1] / 2),
-(size[2] / 2)
];
translate(v = obj_translate) {
hull() {
for (translate_x = [translate_min, translate_xmax]) {
x_at = (translate_x == translate_min) ? "min" : "max";
for (translate_y = [translate_min, translate_ymax]) {
y_at = (translate_y == translate_min) ? "min" : "max";
for (translate_z = [translate_min, translate_zmax]) {
z_at = (translate_z == translate_min) ? "min" : "max";
translate(v = [translate_x, translate_y, translate_z])
if (
(apply_to == "all") ||
(apply_to == "xmin" && x_at == "min") || (apply_to == "xmax" && x_at == "max") ||
(apply_to == "ymin" && y_at == "min") || (apply_to == "ymax" && y_at == "max") ||
(apply_to == "zmin" && z_at == "min") || (apply_to == "zmax" && z_at == "max")
) {
build_point("sphere");
} else {
rotate =
(apply_to == "xmin" || apply_to == "xmax" || apply_to == "x") ? [0, 90, 0] : (
(apply_to == "ymin" || apply_to == "ymax" || apply_to == "y") ? [90, 90, 0] :
[0, 0, 0]
);
build_point("cylinder", rotate);
}
}
}
}
}
}
}

View file

@ -0,0 +1,6 @@
(fp_lib_table
(version 7)
(lib (name "SK6812-EC20")(type "KiCad")(uri "${KIPRJMOD}/SK6812-EC20.pretty")(options "")(descr ""))
(lib (name "MCU_RaspberryPi_and_Boards")(type "KiCad")(uri "${KIPRJMOD}/MCU_RaspberryPi_and_Boards.pretty")(options "")(descr ""))
(lib (name "switch")(type "KiCad")(uri "${KIPRJMOD}/switch.pretty")(options "")(descr ""))
)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,46 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-12T22:15:46+01:00*%
%TF.ProjectId,butns,6275746e-732e-46b6-9963-61645f706362,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Profile,NP*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-12 22:15:46*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,Profile*%
%ADD10C,0.050000*%
%TD*%
G04 APERTURE END LIST*
D10*
X229340991Y-140590996D02*
X134840991Y-140590996D01*
X231590991Y-138340996D02*
X231590991Y-43840997D01*
X132590991Y-43840997D02*
G75*
G02*
X134840991Y-41590997I2249989J11D01*
G01*
X229340991Y-41590997D02*
G75*
G02*
X231591003Y-43840997I9J-2250003D01*
G01*
X231590991Y-138340996D02*
G75*
G02*
X229340991Y-140590991I-2249991J-4D01*
G01*
X132590991Y-138340996D02*
X132590991Y-43840997D01*
X134840991Y-41590997D02*
X229340991Y-41590997D01*
X134840991Y-140590996D02*
G75*
G02*
X132590991Y-138340996I35J2250035D01*
G01*
M02*

View file

@ -0,0 +1,102 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-12T22:15:46+01:00*%
%TF.ProjectId,butns,6275746e-732e-46b6-9963-61645f706362,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Bot*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-12 22:15:46*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10R,2.510000X1.000000*%
%ADD11O,1.800000X1.800000*%
%ADD12O,1.500000X1.500000*%
%ADD13R,1.700000X3.500000*%
%ADD14R,3.500000X1.700000*%
%ADD15C,2.700000*%
G04 APERTURE END LIST*
D10*
%TO.C,J1*%
X190790000Y-99980997D03*
X194100000Y-97440997D03*
X190790000Y-94900997D03*
X194100000Y-92360997D03*
X190790000Y-89820997D03*
X194100000Y-87280997D03*
X190790000Y-84740997D03*
X194100000Y-82200997D03*
%TD*%
D11*
%TO.C,U1*%
X134350000Y-65575000D03*
D12*
X137380000Y-65875000D03*
X137380000Y-70725000D03*
D11*
X134350000Y-71025000D03*
D13*
X134220000Y-58510000D03*
X136760000Y-58510000D03*
X139300000Y-58510000D03*
X141840000Y-58510000D03*
X144380000Y-58510000D03*
X146920000Y-58510000D03*
X149460000Y-58510000D03*
X152000000Y-58510000D03*
X154540000Y-58510000D03*
X157080000Y-58510000D03*
X159620000Y-58510000D03*
X162160000Y-58510000D03*
X164700000Y-58510000D03*
X167240000Y-58510000D03*
X169780000Y-58510000D03*
X172320000Y-58510000D03*
X174860000Y-58510000D03*
X177400000Y-58510000D03*
X179940000Y-58510000D03*
X182480000Y-58510000D03*
X182480000Y-78090000D03*
X179940000Y-78090000D03*
X177400000Y-78090000D03*
X174860000Y-78090000D03*
X172320000Y-78090000D03*
X169780000Y-78090000D03*
X167240000Y-78090000D03*
X164700000Y-78090000D03*
X162160000Y-78090000D03*
X159620000Y-78090000D03*
X157080000Y-78090000D03*
X154540000Y-78090000D03*
X152000000Y-78090000D03*
X149460000Y-78090000D03*
X146920000Y-78090000D03*
X144380000Y-78090000D03*
X141840000Y-78090000D03*
X139300000Y-78090000D03*
X136760000Y-78090000D03*
X134220000Y-78090000D03*
D14*
X183150000Y-65760000D03*
X183150000Y-68300000D03*
X183150000Y-70840000D03*
%TD*%
D15*
%TO.C,H5*%
X182090991Y-91090997D03*
%TD*%
%TO.C,H4*%
X227590991Y-45590997D03*
%TD*%
%TO.C,H3*%
X227590991Y-136590997D03*
%TD*%
%TO.C,H2*%
X136590991Y-136590997D03*
%TD*%
%TO.C,H1*%
X136590991Y-45590997D03*
%TD*%
M02*

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,30 @@
M48
; DRILL file {KiCad 8.0.7} date 2025-01-12T22:15:46+0100
; FORMAT={-:-/ absolute / inch / decimal}
; #@! TF.CreationDate,2025-01-12T22:15:46+01:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.7
; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2
INCH
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T1C0.0591
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T2C0.0709
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T3C0.1063
%
G90
G05
T1
X5.4087Y-2.5935
X5.4087Y-2.7844
T2
X5.2894Y-2.5817
X5.2894Y-2.7963
T3
X5.3776Y-1.7949
X5.3776Y-5.3776
X7.1689Y-3.5863
X8.9603Y-1.7949
X8.9603Y-5.3776
M30

Binary file not shown.

View file

@ -0,0 +1,387 @@
M48
; DRILL file {KiCad 8.0.7} date 2025-01-12T22:15:46+0100
; FORMAT={-:-/ absolute / inch / decimal}
; #@! TF.CreationDate,2025-01-12T22:15:46+01:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.7
; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2
INCH
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.0118
%
G90
G05
T1
X5.321Y-2.1858
X5.34Y-2.1
X5.38Y-2.92
X5.4843Y-2.339
X5.4843Y-3.039
X5.4965Y-1.97
X5.4965Y-2.42
X5.4965Y-2.87
X5.4965Y-3.32
X5.4965Y-3.77
X5.4965Y-4.22
X5.4965Y-4.67
X5.4965Y-5.11
X5.58Y-2.3964
X5.6115Y-2.3964
X5.62Y-2.17
X5.64Y-2.21
X5.64Y-2.45
X5.6678Y-2.09
X5.6914Y-2.01
X5.6914Y-2.45
X5.6914Y-2.9
X5.6914Y-3.36
X5.6914Y-3.81
X5.6914Y-4.25
X5.6914Y-4.7
X5.6914Y-5.14
X5.71Y-3.68
X5.72Y-2.08
X5.72Y-2.17
X5.7343Y-2.4862
X5.7343Y-2.935
X5.7343Y-3.3839
X5.7343Y-3.8327
X5.7343Y-4.2815
X5.7343Y-4.7303
X5.7343Y-5.1791
X5.76Y-2.66
X5.77Y-2.53
X5.78Y-3.48
X5.78Y-3.67
X5.7982Y-1.9291
X5.7982Y-2.8268
X5.7982Y-3.2756
X5.7982Y-3.7244
X5.7982Y-4.1732
X5.7982Y-4.622
X5.7982Y-5.0709
X5.83Y-2.47
X5.83Y-2.79
X5.85Y-2.3964
X5.85Y-4.1496
X5.85Y-4.58
X5.86Y-5.04
X5.87Y-3.5636
X5.9465Y-1.97
X5.9465Y-2.42
X5.9465Y-2.87
X5.9465Y-3.32
X5.9465Y-3.77
X5.9465Y-4.22
X5.9465Y-4.67
X5.9465Y-5.11
X6.0Y-2.3964
X6.01Y-2.21
X6.08Y-2.3964
X6.1178Y-2.08
X6.1414Y-2.47
X6.1414Y-3.36
X6.1414Y-3.82
X6.1414Y-4.7
X6.1414Y-5.15
X6.15Y-2.21
X6.15Y-2.52
X6.15Y-2.9
X6.15Y-4.26
X6.157Y-1.9936
X6.17Y-2.08
X6.17Y-2.71
X6.1843Y-2.935
X6.1843Y-3.3839
X6.1843Y-3.8327
X6.1843Y-4.2815
X6.1843Y-4.7303
X6.1843Y-5.1791
X6.23Y-2.1
X6.23Y-2.53
X6.23Y-2.98
X6.23Y-3.44
X6.23Y-3.89
X6.23Y-4.33
X6.23Y-4.78
X6.23Y-5.22
X6.2482Y-1.9291
X6.2482Y-2.8268
X6.2482Y-3.2756
X6.2482Y-3.7244
X6.2482Y-4.1732
X6.2482Y-4.622
X6.2482Y-5.0709
X6.28Y-2.47
X6.3Y-2.3964
X6.35Y-2.2
X6.39Y-5.11
X6.3965Y-1.97
X6.3965Y-2.42
X6.3965Y-2.87
X6.3965Y-3.32
X6.3965Y-3.77
X6.3965Y-4.22
X6.3965Y-4.67
X6.4843Y-2.339
X6.4843Y-3.039
X6.5678Y-2.19
X6.5914Y-2.0
X6.5914Y-2.47
X6.5914Y-2.9
X6.5914Y-3.36
X6.5914Y-3.81
X6.5914Y-4.26
X6.5914Y-4.7
X6.5914Y-5.15
X6.6Y-2.18
X6.6343Y-2.0374
X6.6343Y-2.4862
X6.6343Y-2.935
X6.6343Y-3.3839
X6.6343Y-3.8327
X6.6343Y-4.2815
X6.6343Y-4.7303
X6.6343Y-5.1791
X6.68Y-2.09
X6.68Y-2.53
X6.68Y-2.98
X6.68Y-3.43
X6.68Y-3.88
X6.68Y-4.32
X6.68Y-4.78
X6.68Y-5.22
X6.6982Y-1.9291
X6.6982Y-2.8268
X6.6982Y-3.2756
X6.6982Y-3.7244
X6.6982Y-4.1732
X6.6982Y-4.622
X6.6982Y-5.0709
X6.73Y-2.4436
X6.8465Y-1.97
X6.8465Y-2.42
X6.8465Y-2.87
X6.8465Y-3.32
X6.8465Y-3.77
X6.8465Y-4.22
X6.8465Y-4.67
X6.8465Y-5.11
X6.96Y-2.17
X6.99Y-2.21
X7.0122Y-2.0556
X7.0414Y-1.9936
X7.0414Y-2.21
X7.0414Y-2.39
X7.0414Y-2.48
X7.0414Y-2.91
X7.0414Y-3.36
X7.0414Y-3.54
X7.0414Y-3.82
X7.0414Y-4.71
X7.0414Y-5.15
X7.0417Y-4.2583
X7.05Y-2.73
X7.0843Y-2.0374
X7.0843Y-2.4862
X7.0843Y-2.935
X7.0843Y-3.3839
X7.0843Y-3.8327
X7.0843Y-4.2815
X7.0843Y-4.7303
X7.0843Y-5.1791
X7.09Y-2.76
X7.12Y-2.55
X7.13Y-2.09
X7.13Y-2.97
X7.13Y-3.43
X7.13Y-3.88
X7.13Y-4.32
X7.13Y-4.77
X7.13Y-5.22
X7.1482Y-1.9291
X7.1482Y-3.2756
X7.1482Y-3.7244
X7.1482Y-4.1732
X7.1482Y-4.622
X7.1482Y-5.0709
X7.1752Y-2.689
X7.19Y-2.45
X7.2Y-2.3964
X7.27Y-2.31
X7.2965Y-1.97
X7.2965Y-2.42
X7.2965Y-2.87
X7.2965Y-3.32
X7.2965Y-3.77
X7.2965Y-4.22
X7.2965Y-4.67
X7.2965Y-5.11
X7.32Y-3.17
X7.35Y-3.28
X7.38Y-3.2336
X7.4Y-2.12
X7.4Y-3.74
X7.4Y-3.93
X7.41Y-3.21
X7.42Y-3.61
X7.4914Y-1.9936
X7.4914Y-2.48
X7.4914Y-2.91
X7.4914Y-3.38
X7.4914Y-4.25
X7.4914Y-4.7
X7.4914Y-5.15
X7.4952Y-3.7936
X7.51Y-3.14
X7.52Y-4.0
X7.53Y-2.12
X7.53Y-3.59
X7.5343Y-2.0374
X7.5343Y-2.4862
X7.5343Y-2.935
X7.5343Y-3.3839
X7.5343Y-3.8327
X7.5343Y-4.2815
X7.5343Y-4.7303
X7.5343Y-5.1791
X7.54Y-4.12
X7.55Y-3.22
X7.55Y-3.47
X7.57Y-3.88
X7.58Y-2.08
X7.58Y-2.54
X7.58Y-2.99
X7.58Y-4.32
X7.58Y-4.77
X7.58Y-5.22
X7.5982Y-1.9291
X7.5982Y-2.378
X7.5982Y-2.8268
X7.5982Y-3.7244
X7.5982Y-4.1732
X7.5982Y-4.622
X7.5982Y-5.0709
X7.74Y-2.42
X7.7465Y-1.97
X7.7465Y-2.87
X7.7465Y-3.31
X7.7465Y-3.77
X7.7465Y-4.22
X7.7465Y-4.67
X7.7465Y-5.11
X7.9178Y-2.17
X7.9414Y-2.0
X7.9414Y-2.48
X7.9414Y-3.36
X7.9414Y-4.25
X7.9414Y-5.1583
X7.947Y-3.7936
X7.95Y-4.7
X7.9517Y-2.9083
X7.9843Y-2.0374
X7.9843Y-2.4862
X7.9843Y-2.935
X7.9843Y-3.3839
X7.9843Y-3.8327
X7.9843Y-4.2815
X7.9843Y-4.7303
X7.9843Y-5.1791
X8.02Y-3.88
X8.03Y-2.09
X8.03Y-2.54
X8.03Y-2.99
X8.03Y-3.44
X8.03Y-4.32
X8.03Y-4.77
X8.03Y-5.22
X8.0482Y-1.9291
X8.0482Y-2.378
X8.0482Y-2.8268
X8.0482Y-3.2756
X8.0482Y-3.7244
X8.0482Y-4.1732
X8.0482Y-4.622
X8.0482Y-5.0709
X8.19Y-2.42
X8.1965Y-1.97
X8.1965Y-2.87
X8.1965Y-3.31
X8.1965Y-3.77
X8.1965Y-4.22
X8.1965Y-4.67
X8.1965Y-5.11
X8.3678Y-2.16
X8.3914Y-2.0
X8.3914Y-2.91
X8.3914Y-3.34
X8.3914Y-3.82
X8.3914Y-4.26
X8.3914Y-4.71
X8.3914Y-5.15
X8.4Y-2.47
X8.4343Y-2.0374
X8.4343Y-2.4862
X8.4343Y-2.935
X8.4343Y-3.3839
X8.4343Y-3.8327
X8.4343Y-4.2815
X8.4343Y-4.7303
X8.4343Y-5.1791
X8.48Y-2.1
X8.48Y-2.53
X8.48Y-2.98
X8.48Y-3.43
X8.48Y-3.88
X8.48Y-4.32
X8.48Y-4.77
X8.48Y-5.23
X8.4982Y-1.9291
X8.4982Y-2.378
X8.4982Y-2.8268
X8.4982Y-3.2756
X8.4982Y-3.7244
X8.4982Y-4.1732
X8.4982Y-4.622
X8.4982Y-5.0709
X8.6465Y-1.97
X8.6465Y-2.42
X8.6465Y-2.87
X8.6465Y-3.31
X8.6465Y-3.77
X8.6465Y-4.21
X8.6465Y-4.67
X8.6465Y-5.11
X8.8178Y-2.21
X8.85Y-2.3
X8.85Y-2.63
X8.85Y-3.08
X8.85Y-3.99
X8.85Y-4.42
X8.85Y-4.88
X8.86Y-3.54
X8.8843Y-2.0374
X8.8843Y-2.4862
X8.8843Y-2.935
X8.8843Y-3.3839
X8.8843Y-3.8327
X8.8843Y-4.2815
X8.8843Y-4.7303
X8.8843Y-5.1791
X8.93Y-2.1
X8.93Y-2.53
X8.93Y-2.97
X8.93Y-3.43
X8.93Y-3.87
X8.93Y-4.32
X8.93Y-4.78
X8.93Y-5.22
X8.9482Y-1.9291
X8.9482Y-2.378
X8.9482Y-2.8268
X8.9482Y-3.2756
X8.9482Y-3.7244
X8.9482Y-4.1732
X8.9482Y-4.622
X8.9482Y-5.0709
M30

View file

@ -0,0 +1,27 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-12T22:15:46+01:00*%
%TF.ProjectId,butns,6275746e-732e-46b6-9963-61645f706362,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Bot*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-12 22:15:46*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10R,2.510000X1.000000*%
G04 APERTURE END LIST*
D10*
%TO.C,J1*%
X190790000Y-99980997D03*
X194100000Y-97440997D03*
X190790000Y-94900997D03*
X194100000Y-92360997D03*
X190790000Y-89820997D03*
X194100000Y-87280997D03*
X190790000Y-84740997D03*
X194100000Y-82200997D03*
%TD*%
M02*

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,698 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.7*%
%TF.CreationDate,2025-01-12T22:15:46+01:00*%
%TF.ProjectId,butns,6275746e-732e-46b6-9963-61645f706362,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Other,Comment*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.7) date 2025-01-12 22:15:46*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
G04 APERTURE END LIST*
D10*
X128509580Y-82400002D02*
X128557200Y-82447621D01*
X128557200Y-82447621D02*
X128604819Y-82590478D01*
X128604819Y-82590478D02*
X128604819Y-82685716D01*
X128604819Y-82685716D02*
X128557200Y-82828573D01*
X128557200Y-82828573D02*
X128461961Y-82923811D01*
X128461961Y-82923811D02*
X128366723Y-82971430D01*
X128366723Y-82971430D02*
X128176247Y-83019049D01*
X128176247Y-83019049D02*
X128033390Y-83019049D01*
X128033390Y-83019049D02*
X127842914Y-82971430D01*
X127842914Y-82971430D02*
X127747676Y-82923811D01*
X127747676Y-82923811D02*
X127652438Y-82828573D01*
X127652438Y-82828573D02*
X127604819Y-82685716D01*
X127604819Y-82685716D02*
X127604819Y-82590478D01*
X127604819Y-82590478D02*
X127652438Y-82447621D01*
X127652438Y-82447621D02*
X127700057Y-82400002D01*
X128604819Y-81828573D02*
X128557200Y-81923811D01*
X128557200Y-81923811D02*
X128509580Y-81971430D01*
X128509580Y-81971430D02*
X128414342Y-82019049D01*
X128414342Y-82019049D02*
X128128628Y-82019049D01*
X128128628Y-82019049D02*
X128033390Y-81971430D01*
X128033390Y-81971430D02*
X127985771Y-81923811D01*
X127985771Y-81923811D02*
X127938152Y-81828573D01*
X127938152Y-81828573D02*
X127938152Y-81685716D01*
X127938152Y-81685716D02*
X127985771Y-81590478D01*
X127985771Y-81590478D02*
X128033390Y-81542859D01*
X128033390Y-81542859D02*
X128128628Y-81495240D01*
X128128628Y-81495240D02*
X128414342Y-81495240D01*
X128414342Y-81495240D02*
X128509580Y-81542859D01*
X128509580Y-81542859D02*
X128557200Y-81590478D01*
X128557200Y-81590478D02*
X128604819Y-81685716D01*
X128604819Y-81685716D02*
X128604819Y-81828573D01*
X127938152Y-81066668D02*
X128938152Y-81066668D01*
X127985771Y-81066668D02*
X127938152Y-80971430D01*
X127938152Y-80971430D02*
X127938152Y-80780954D01*
X127938152Y-80780954D02*
X127985771Y-80685716D01*
X127985771Y-80685716D02*
X128033390Y-80638097D01*
X128033390Y-80638097D02*
X128128628Y-80590478D01*
X128128628Y-80590478D02*
X128414342Y-80590478D01*
X128414342Y-80590478D02*
X128509580Y-80638097D01*
X128509580Y-80638097D02*
X128557200Y-80685716D01*
X128557200Y-80685716D02*
X128604819Y-80780954D01*
X128604819Y-80780954D02*
X128604819Y-80971430D01*
X128604819Y-80971430D02*
X128557200Y-81066668D01*
X127938152Y-80161906D02*
X128938152Y-80161906D01*
X127985771Y-80161906D02*
X127938152Y-80066668D01*
X127938152Y-80066668D02*
X127938152Y-79876192D01*
X127938152Y-79876192D02*
X127985771Y-79780954D01*
X127985771Y-79780954D02*
X128033390Y-79733335D01*
X128033390Y-79733335D02*
X128128628Y-79685716D01*
X128128628Y-79685716D02*
X128414342Y-79685716D01*
X128414342Y-79685716D02*
X128509580Y-79733335D01*
X128509580Y-79733335D02*
X128557200Y-79780954D01*
X128557200Y-79780954D02*
X128604819Y-79876192D01*
X128604819Y-79876192D02*
X128604819Y-80066668D01*
X128604819Y-80066668D02*
X128557200Y-80161906D01*
X128557200Y-78876192D02*
X128604819Y-78971430D01*
X128604819Y-78971430D02*
X128604819Y-79161906D01*
X128604819Y-79161906D02*
X128557200Y-79257144D01*
X128557200Y-79257144D02*
X128461961Y-79304763D01*
X128461961Y-79304763D02*
X128081009Y-79304763D01*
X128081009Y-79304763D02*
X127985771Y-79257144D01*
X127985771Y-79257144D02*
X127938152Y-79161906D01*
X127938152Y-79161906D02*
X127938152Y-78971430D01*
X127938152Y-78971430D02*
X127985771Y-78876192D01*
X127985771Y-78876192D02*
X128081009Y-78828573D01*
X128081009Y-78828573D02*
X128176247Y-78828573D01*
X128176247Y-78828573D02*
X128271485Y-79304763D01*
X128604819Y-78400001D02*
X127938152Y-78400001D01*
X128128628Y-78400001D02*
X128033390Y-78352382D01*
X128033390Y-78352382D02*
X127985771Y-78304763D01*
X127985771Y-78304763D02*
X127938152Y-78209525D01*
X127938152Y-78209525D02*
X127938152Y-78114287D01*
X128604819Y-77019048D02*
X127604819Y-77019048D01*
X128604819Y-76447620D02*
X128033390Y-76876191D01*
X127604819Y-76447620D02*
X128176247Y-77019048D01*
X128557200Y-75638096D02*
X128604819Y-75733334D01*
X128604819Y-75733334D02*
X128604819Y-75923810D01*
X128604819Y-75923810D02*
X128557200Y-76019048D01*
X128557200Y-76019048D02*
X128461961Y-76066667D01*
X128461961Y-76066667D02*
X128081009Y-76066667D01*
X128081009Y-76066667D02*
X127985771Y-76019048D01*
X127985771Y-76019048D02*
X127938152Y-75923810D01*
X127938152Y-75923810D02*
X127938152Y-75733334D01*
X127938152Y-75733334D02*
X127985771Y-75638096D01*
X127985771Y-75638096D02*
X128081009Y-75590477D01*
X128081009Y-75590477D02*
X128176247Y-75590477D01*
X128176247Y-75590477D02*
X128271485Y-76066667D01*
X128557200Y-74780953D02*
X128604819Y-74876191D01*
X128604819Y-74876191D02*
X128604819Y-75066667D01*
X128604819Y-75066667D02*
X128557200Y-75161905D01*
X128557200Y-75161905D02*
X128461961Y-75209524D01*
X128461961Y-75209524D02*
X128081009Y-75209524D01*
X128081009Y-75209524D02*
X127985771Y-75161905D01*
X127985771Y-75161905D02*
X127938152Y-75066667D01*
X127938152Y-75066667D02*
X127938152Y-74876191D01*
X127938152Y-74876191D02*
X127985771Y-74780953D01*
X127985771Y-74780953D02*
X128081009Y-74733334D01*
X128081009Y-74733334D02*
X128176247Y-74733334D01*
X128176247Y-74733334D02*
X128271485Y-75209524D01*
X127938152Y-74304762D02*
X128938152Y-74304762D01*
X127985771Y-74304762D02*
X127938152Y-74209524D01*
X127938152Y-74209524D02*
X127938152Y-74019048D01*
X127938152Y-74019048D02*
X127985771Y-73923810D01*
X127985771Y-73923810D02*
X128033390Y-73876191D01*
X128033390Y-73876191D02*
X128128628Y-73828572D01*
X128128628Y-73828572D02*
X128414342Y-73828572D01*
X128414342Y-73828572D02*
X128509580Y-73876191D01*
X128509580Y-73876191D02*
X128557200Y-73923810D01*
X128557200Y-73923810D02*
X128604819Y-74019048D01*
X128604819Y-74019048D02*
X128604819Y-74209524D01*
X128604819Y-74209524D02*
X128557200Y-74304762D01*
X128604819Y-73257143D02*
X128557200Y-73352381D01*
X128557200Y-73352381D02*
X128509580Y-73400000D01*
X128509580Y-73400000D02*
X128414342Y-73447619D01*
X128414342Y-73447619D02*
X128128628Y-73447619D01*
X128128628Y-73447619D02*
X128033390Y-73400000D01*
X128033390Y-73400000D02*
X127985771Y-73352381D01*
X127985771Y-73352381D02*
X127938152Y-73257143D01*
X127938152Y-73257143D02*
X127938152Y-73114286D01*
X127938152Y-73114286D02*
X127985771Y-73019048D01*
X127985771Y-73019048D02*
X128033390Y-72971429D01*
X128033390Y-72971429D02*
X128128628Y-72923810D01*
X128128628Y-72923810D02*
X128414342Y-72923810D01*
X128414342Y-72923810D02*
X128509580Y-72971429D01*
X128509580Y-72971429D02*
X128557200Y-73019048D01*
X128557200Y-73019048D02*
X128604819Y-73114286D01*
X128604819Y-73114286D02*
X128604819Y-73257143D01*
X127938152Y-72066667D02*
X128604819Y-72066667D01*
X127938152Y-72495238D02*
X128461961Y-72495238D01*
X128461961Y-72495238D02*
X128557200Y-72447619D01*
X128557200Y-72447619D02*
X128604819Y-72352381D01*
X128604819Y-72352381D02*
X128604819Y-72209524D01*
X128604819Y-72209524D02*
X128557200Y-72114286D01*
X128557200Y-72114286D02*
X128509580Y-72066667D01*
X127938152Y-71733333D02*
X127938152Y-71352381D01*
X127604819Y-71590476D02*
X128461961Y-71590476D01*
X128461961Y-71590476D02*
X128557200Y-71542857D01*
X128557200Y-71542857D02*
X128604819Y-71447619D01*
X128604819Y-71447619D02*
X128604819Y-71352381D01*
X128557200Y-71066666D02*
X128604819Y-70971428D01*
X128604819Y-70971428D02*
X128604819Y-70780952D01*
X128604819Y-70780952D02*
X128557200Y-70685714D01*
X128557200Y-70685714D02*
X128461961Y-70638095D01*
X128461961Y-70638095D02*
X128414342Y-70638095D01*
X128414342Y-70638095D02*
X128319104Y-70685714D01*
X128319104Y-70685714D02*
X128271485Y-70780952D01*
X128271485Y-70780952D02*
X128271485Y-70923809D01*
X128271485Y-70923809D02*
X128223866Y-71019047D01*
X128223866Y-71019047D02*
X128128628Y-71066666D01*
X128128628Y-71066666D02*
X128081009Y-71066666D01*
X128081009Y-71066666D02*
X127985771Y-71019047D01*
X127985771Y-71019047D02*
X127938152Y-70923809D01*
X127938152Y-70923809D02*
X127938152Y-70780952D01*
X127938152Y-70780952D02*
X127985771Y-70685714D01*
X128557200Y-69495237D02*
X128604819Y-69399999D01*
X128604819Y-69399999D02*
X128604819Y-69209523D01*
X128604819Y-69209523D02*
X128557200Y-69114285D01*
X128557200Y-69114285D02*
X128461961Y-69066666D01*
X128461961Y-69066666D02*
X128414342Y-69066666D01*
X128414342Y-69066666D02*
X128319104Y-69114285D01*
X128319104Y-69114285D02*
X128271485Y-69209523D01*
X128271485Y-69209523D02*
X128271485Y-69352380D01*
X128271485Y-69352380D02*
X128223866Y-69447618D01*
X128223866Y-69447618D02*
X128128628Y-69495237D01*
X128128628Y-69495237D02*
X128081009Y-69495237D01*
X128081009Y-69495237D02*
X127985771Y-69447618D01*
X127985771Y-69447618D02*
X127938152Y-69352380D01*
X127938152Y-69352380D02*
X127938152Y-69209523D01*
X127938152Y-69209523D02*
X127985771Y-69114285D01*
X128604819Y-68638094D02*
X127604819Y-68638094D01*
X128604819Y-68209523D02*
X128081009Y-68209523D01*
X128081009Y-68209523D02*
X127985771Y-68257142D01*
X127985771Y-68257142D02*
X127938152Y-68352380D01*
X127938152Y-68352380D02*
X127938152Y-68495237D01*
X127938152Y-68495237D02*
X127985771Y-68590475D01*
X127985771Y-68590475D02*
X128033390Y-68638094D01*
X128604819Y-67590475D02*
X128557200Y-67685713D01*
X128557200Y-67685713D02*
X128509580Y-67733332D01*
X128509580Y-67733332D02*
X128414342Y-67780951D01*
X128414342Y-67780951D02*
X128128628Y-67780951D01*
X128128628Y-67780951D02*
X128033390Y-67733332D01*
X128033390Y-67733332D02*
X127985771Y-67685713D01*
X127985771Y-67685713D02*
X127938152Y-67590475D01*
X127938152Y-67590475D02*
X127938152Y-67447618D01*
X127938152Y-67447618D02*
X127985771Y-67352380D01*
X127985771Y-67352380D02*
X128033390Y-67304761D01*
X128033390Y-67304761D02*
X128128628Y-67257142D01*
X128128628Y-67257142D02*
X128414342Y-67257142D01*
X128414342Y-67257142D02*
X128509580Y-67304761D01*
X128509580Y-67304761D02*
X128557200Y-67352380D01*
X128557200Y-67352380D02*
X128604819Y-67447618D01*
X128604819Y-67447618D02*
X128604819Y-67590475D01*
X127938152Y-66923808D02*
X128604819Y-66733332D01*
X128604819Y-66733332D02*
X128128628Y-66542856D01*
X128128628Y-66542856D02*
X128604819Y-66352380D01*
X128604819Y-66352380D02*
X127938152Y-66161904D01*
X127938152Y-65780951D02*
X128604819Y-65780951D01*
X128033390Y-65780951D02*
X127985771Y-65733332D01*
X127985771Y-65733332D02*
X127938152Y-65638094D01*
X127938152Y-65638094D02*
X127938152Y-65495237D01*
X127938152Y-65495237D02*
X127985771Y-65399999D01*
X127985771Y-65399999D02*
X128081009Y-65352380D01*
X128081009Y-65352380D02*
X128604819Y-65352380D01*
X128604819Y-63971427D02*
X128557200Y-64066665D01*
X128557200Y-64066665D02*
X128509580Y-64114284D01*
X128509580Y-64114284D02*
X128414342Y-64161903D01*
X128414342Y-64161903D02*
X128128628Y-64161903D01*
X128128628Y-64161903D02*
X128033390Y-64114284D01*
X128033390Y-64114284D02*
X127985771Y-64066665D01*
X127985771Y-64066665D02*
X127938152Y-63971427D01*
X127938152Y-63971427D02*
X127938152Y-63828570D01*
X127938152Y-63828570D02*
X127985771Y-63733332D01*
X127985771Y-63733332D02*
X128033390Y-63685713D01*
X128033390Y-63685713D02*
X128128628Y-63638094D01*
X128128628Y-63638094D02*
X128414342Y-63638094D01*
X128414342Y-63638094D02*
X128509580Y-63685713D01*
X128509580Y-63685713D02*
X128557200Y-63733332D01*
X128557200Y-63733332D02*
X128604819Y-63828570D01*
X128604819Y-63828570D02*
X128604819Y-63971427D01*
X127938152Y-63209522D02*
X128604819Y-63209522D01*
X128033390Y-63209522D02*
X127985771Y-63161903D01*
X127985771Y-63161903D02*
X127938152Y-63066665D01*
X127938152Y-63066665D02*
X127938152Y-62923808D01*
X127938152Y-62923808D02*
X127985771Y-62828570D01*
X127985771Y-62828570D02*
X128081009Y-62780951D01*
X128081009Y-62780951D02*
X128604819Y-62780951D01*
X128604819Y-61542855D02*
X127604819Y-61542855D01*
X127604819Y-61542855D02*
X127604819Y-61304760D01*
X127604819Y-61304760D02*
X127652438Y-61161903D01*
X127652438Y-61161903D02*
X127747676Y-61066665D01*
X127747676Y-61066665D02*
X127842914Y-61019046D01*
X127842914Y-61019046D02*
X128033390Y-60971427D01*
X128033390Y-60971427D02*
X128176247Y-60971427D01*
X128176247Y-60971427D02*
X128366723Y-61019046D01*
X128366723Y-61019046D02*
X128461961Y-61066665D01*
X128461961Y-61066665D02*
X128557200Y-61161903D01*
X128557200Y-61161903D02*
X128604819Y-61304760D01*
X128604819Y-61304760D02*
X128604819Y-61542855D01*
X127938152Y-60638093D02*
X128604819Y-60447617D01*
X128604819Y-60447617D02*
X128128628Y-60257141D01*
X128128628Y-60257141D02*
X128604819Y-60066665D01*
X128604819Y-60066665D02*
X127938152Y-59876189D01*
X127938152Y-59066665D02*
X128747676Y-59066665D01*
X128747676Y-59066665D02*
X128842914Y-59114284D01*
X128842914Y-59114284D02*
X128890533Y-59161903D01*
X128890533Y-59161903D02*
X128938152Y-59257141D01*
X128938152Y-59257141D02*
X128938152Y-59399998D01*
X128938152Y-59399998D02*
X128890533Y-59495236D01*
X128557200Y-59066665D02*
X128604819Y-59161903D01*
X128604819Y-59161903D02*
X128604819Y-59352379D01*
X128604819Y-59352379D02*
X128557200Y-59447617D01*
X128557200Y-59447617D02*
X128509580Y-59495236D01*
X128509580Y-59495236D02*
X128414342Y-59542855D01*
X128414342Y-59542855D02*
X128128628Y-59542855D01*
X128128628Y-59542855D02*
X128033390Y-59495236D01*
X128033390Y-59495236D02*
X127985771Y-59447617D01*
X127985771Y-59447617D02*
X127938152Y-59352379D01*
X127938152Y-59352379D02*
X127938152Y-59161903D01*
X127938152Y-59161903D02*
X127985771Y-59066665D01*
X128557200Y-58638093D02*
X128604819Y-58542855D01*
X128604819Y-58542855D02*
X128604819Y-58352379D01*
X128604819Y-58352379D02*
X128557200Y-58257141D01*
X128557200Y-58257141D02*
X128461961Y-58209522D01*
X128461961Y-58209522D02*
X128414342Y-58209522D01*
X128414342Y-58209522D02*
X128319104Y-58257141D01*
X128319104Y-58257141D02*
X128271485Y-58352379D01*
X128271485Y-58352379D02*
X128271485Y-58495236D01*
X128271485Y-58495236D02*
X128223866Y-58590474D01*
X128223866Y-58590474D02*
X128128628Y-58638093D01*
X128128628Y-58638093D02*
X128081009Y-58638093D01*
X128081009Y-58638093D02*
X127985771Y-58590474D01*
X127985771Y-58590474D02*
X127938152Y-58495236D01*
X127938152Y-58495236D02*
X127938152Y-58352379D01*
X127938152Y-58352379D02*
X127985771Y-58257141D01*
X128604819Y-56876188D02*
X128557200Y-56971426D01*
X128557200Y-56971426D02*
X128461961Y-57019045D01*
X128461961Y-57019045D02*
X127604819Y-57019045D01*
X128604819Y-56066664D02*
X128081009Y-56066664D01*
X128081009Y-56066664D02*
X127985771Y-56114283D01*
X127985771Y-56114283D02*
X127938152Y-56209521D01*
X127938152Y-56209521D02*
X127938152Y-56399997D01*
X127938152Y-56399997D02*
X127985771Y-56495235D01*
X128557200Y-56066664D02*
X128604819Y-56161902D01*
X128604819Y-56161902D02*
X128604819Y-56399997D01*
X128604819Y-56399997D02*
X128557200Y-56495235D01*
X128557200Y-56495235D02*
X128461961Y-56542854D01*
X128461961Y-56542854D02*
X128366723Y-56542854D01*
X128366723Y-56542854D02*
X128271485Y-56495235D01*
X128271485Y-56495235D02*
X128223866Y-56399997D01*
X128223866Y-56399997D02*
X128223866Y-56161902D01*
X128223866Y-56161902D02*
X128176247Y-56066664D01*
X127938152Y-55685711D02*
X128604819Y-55447616D01*
X127938152Y-55209521D02*
X128604819Y-55447616D01*
X128604819Y-55447616D02*
X128842914Y-55542854D01*
X128842914Y-55542854D02*
X128890533Y-55590473D01*
X128890533Y-55590473D02*
X128938152Y-55685711D01*
X128557200Y-54447616D02*
X128604819Y-54542854D01*
X128604819Y-54542854D02*
X128604819Y-54733330D01*
X128604819Y-54733330D02*
X128557200Y-54828568D01*
X128557200Y-54828568D02*
X128461961Y-54876187D01*
X128461961Y-54876187D02*
X128081009Y-54876187D01*
X128081009Y-54876187D02*
X127985771Y-54828568D01*
X127985771Y-54828568D02*
X127938152Y-54733330D01*
X127938152Y-54733330D02*
X127938152Y-54542854D01*
X127938152Y-54542854D02*
X127985771Y-54447616D01*
X127985771Y-54447616D02*
X128081009Y-54399997D01*
X128081009Y-54399997D02*
X128176247Y-54399997D01*
X128176247Y-54399997D02*
X128271485Y-54876187D01*
X128604819Y-53971425D02*
X127938152Y-53971425D01*
X128128628Y-53971425D02*
X128033390Y-53923806D01*
X128033390Y-53923806D02*
X127985771Y-53876187D01*
X127985771Y-53876187D02*
X127938152Y-53780949D01*
X127938152Y-53780949D02*
X127938152Y-53685711D01*
%TO.C,H5*%
X184790991Y-91090997D02*
G75*
G02*
X179390991Y-91090997I-2700000J0D01*
G01*
X179390991Y-91090997D02*
G75*
G02*
X184790991Y-91090997I2700000J0D01*
G01*
%TO.C,H4*%
X230290991Y-45590997D02*
G75*
G02*
X224890991Y-45590997I-2700000J0D01*
G01*
X224890991Y-45590997D02*
G75*
G02*
X230290991Y-45590997I2700000J0D01*
G01*
%TO.C,H3*%
X230290991Y-136590997D02*
G75*
G02*
X224890991Y-136590997I-2700000J0D01*
G01*
X224890991Y-136590997D02*
G75*
G02*
X230290991Y-136590997I2700000J0D01*
G01*
%TO.C,H2*%
X139290991Y-136590997D02*
G75*
G02*
X133890991Y-136590997I-2700000J0D01*
G01*
X133890991Y-136590997D02*
G75*
G02*
X139290991Y-136590997I2700000J0D01*
G01*
%TO.C,H1*%
X139290991Y-45590997D02*
G75*
G02*
X133890991Y-45590997I-2700000J0D01*
G01*
X133890991Y-45590997D02*
G75*
G02*
X139290991Y-45590997I2700000J0D01*
G01*
%TD*%
M02*

View file

@ -0,0 +1,8 @@
Comment,Designator,Footprint,LCSC,Quantity
100nF,"C1,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C2,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C3,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C4,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49,C5,C50,C51,C52,C53,C54,C55,C56,C57,C58,C59,C6,C60,C61,C62,C63,C64,C65,C7,C8,C9",C_0603_1608Metric,C14663,65
1N4148WS,"D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D2,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D3,D30,D31,D32,D33,D34,D35,D36,D37,D38,D39,D4,D40,D41,D42,D43,D44,D45,D46,D47,D48,D49,D5,D50,D51,D52,D53,D54,D55,D56,D57,D58,D59,D6,D60,D61,D62,D63,D64,D65,D7,D8,D9",D_SOD-323,C2128,64
SK6812-EC20,"D1,D100,D101,D102,D103,D104,D105,D106,D107,D108,D109,D110,D111,D112,D113,D114,D115,D116,D117,D118,D119,D120,D121,D122,D123,D124,D125,D126,D127,D128,D66,D67,D68,D69,D70,D71,D72,D73,D74,D75,D76,D77,D78,D79,D80,D81,D82,D83,D84,D85,D86,D87,D88,D89,D90,D91,D92,D93,D94,D95,D96,D97,D98,D99",SK6812-EC20,C2909058,64
SW_Push,"SW1,SW10,SW11,SW12,SW13,SW14,SW15,SW16,SW17,SW18,SW19,SW2,SW20,SW21,SW22,SW23,SW24,SW25,SW26,SW27,SW28,SW29,SW3,SW30,SW31,SW32,SW33,SW34,SW35,SW36,SW37,SW38,SW39,SW4,SW40,SW41,SW42,SW43,SW44,SW45,SW46,SW47,SW48,SW49,SW5,SW50,SW51,SW52,SW53,SW54,SW55,SW56,SW57,SW58,SW59,SW6,SW60,SW61,SW62,SW63,SW64,SW7,SW8,SW9",SW_Push_1P1T_XKB_TS-1187A,C318884,64
74LVC1G17,U2,SOT-23-5_HandSoldering,C7836,1
Conn_01x08,J1,PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1Left,,1
Pico,U1,RPi_Pico_SMD_TH,,1
1 Comment Designator Footprint LCSC Quantity
2 100nF C1,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C2,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C3,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C4,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49,C5,C50,C51,C52,C53,C54,C55,C56,C57,C58,C59,C6,C60,C61,C62,C63,C64,C65,C7,C8,C9 C_0603_1608Metric C14663 65
3 1N4148WS D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D2,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D3,D30,D31,D32,D33,D34,D35,D36,D37,D38,D39,D4,D40,D41,D42,D43,D44,D45,D46,D47,D48,D49,D5,D50,D51,D52,D53,D54,D55,D56,D57,D58,D59,D6,D60,D61,D62,D63,D64,D65,D7,D8,D9 D_SOD-323 C2128 64
4 SK6812-EC20 D1,D100,D101,D102,D103,D104,D105,D106,D107,D108,D109,D110,D111,D112,D113,D114,D115,D116,D117,D118,D119,D120,D121,D122,D123,D124,D125,D126,D127,D128,D66,D67,D68,D69,D70,D71,D72,D73,D74,D75,D76,D77,D78,D79,D80,D81,D82,D83,D84,D85,D86,D87,D88,D89,D90,D91,D92,D93,D94,D95,D96,D97,D98,D99 SK6812-EC20 C2909058 64
5 SW_Push SW1,SW10,SW11,SW12,SW13,SW14,SW15,SW16,SW17,SW18,SW19,SW2,SW20,SW21,SW22,SW23,SW24,SW25,SW26,SW27,SW28,SW29,SW3,SW30,SW31,SW32,SW33,SW34,SW35,SW36,SW37,SW38,SW39,SW4,SW40,SW41,SW42,SW43,SW44,SW45,SW46,SW47,SW48,SW49,SW5,SW50,SW51,SW52,SW53,SW54,SW55,SW56,SW57,SW58,SW59,SW6,SW60,SW61,SW62,SW63,SW64,SW7,SW8,SW9 SW_Push_1P1T_XKB_TS-1187A C318884 64
6 74LVC1G17 U2 SOT-23-5_HandSoldering C7836 1
7 Conn_01x08 J1 PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1Left 1
8 Pico U1 RPi_Pico_SMD_TH 1

View file

@ -0,0 +1,261 @@
Designator,Val,Package,Mid X,Mid Y,Rotation,Layer
C1,100nF,C_0603_1608Metric,146.5,-49.0,180.0,top
C10,100nF,C_0603_1608Metric,157.93,-60.4,180.0,top
C11,100nF,C_0603_1608Metric,169.36,-60.4,180.0,top
C12,100nF,C_0603_1608Metric,180.79,-60.4,180.0,top
C13,100nF,C_0603_1608Metric,192.22,-60.4,180.0,top
C14,100nF,C_0603_1608Metric,203.65,-60.4,180.0,top
C15,100nF,C_0603_1608Metric,215.08,-60.4,180.0,top
C16,100nF,C_0603_1608Metric,226.51,-60.4,180.0,top
C17,100nF,C_0603_1608Metric,146.5,-71.8,180.0,top
C18,100nF,C_0603_1608Metric,157.93,-71.8,180.0,top
C19,100nF,C_0603_1608Metric,169.36,-71.8,180.0,top
C2,100nF,C_0603_1608Metric,157.93,-49.0,180.0,top
C20,100nF,C_0603_1608Metric,180.79,-71.8,180.0,top
C21,100nF,C_0603_1608Metric,192.22,-71.8,180.0,top
C22,100nF,C_0603_1608Metric,203.65,-71.8,180.0,top
C23,100nF,C_0603_1608Metric,215.08,-71.8,180.0,top
C24,100nF,C_0603_1608Metric,226.51,-71.8,180.0,top
C25,100nF,C_0603_1608Metric,146.5,-83.2,180.0,top
C26,100nF,C_0603_1608Metric,157.93,-83.2,180.0,top
C27,100nF,C_0603_1608Metric,169.36,-83.2,180.0,top
C28,100nF,C_0603_1608Metric,180.79,-83.2,180.0,top
C29,100nF,C_0603_1608Metric,192.22,-83.2,180.0,top
C3,100nF,C_0603_1608Metric,169.36,-49.0,180.0,top
C30,100nF,C_0603_1608Metric,203.65,-83.2,180.0,top
C31,100nF,C_0603_1608Metric,215.08,-83.2,180.0,top
C32,100nF,C_0603_1608Metric,226.51,-83.2,180.0,top
C33,100nF,C_0603_1608Metric,146.5,-94.6,180.0,top
C34,100nF,C_0603_1608Metric,157.93,-94.6,180.0,top
C35,100nF,C_0603_1608Metric,169.36,-94.6,180.0,top
C36,100nF,C_0603_1608Metric,180.79,-94.6,180.0,top
C37,100nF,C_0603_1608Metric,192.22,-94.6,180.0,top
C38,100nF,C_0603_1608Metric,203.65,-94.6,180.0,top
C39,100nF,C_0603_1608Metric,215.08,-94.6,180.0,top
C4,100nF,C_0603_1608Metric,180.79,-49.0,180.0,top
C40,100nF,C_0603_1608Metric,226.51,-94.6,180.0,top
C41,100nF,C_0603_1608Metric,146.5,-106.0,180.0,top
C42,100nF,C_0603_1608Metric,157.93,-106.0,180.0,top
C43,100nF,C_0603_1608Metric,169.36,-106.0,180.0,top
C44,100nF,C_0603_1608Metric,180.79,-106.0,180.0,top
C45,100nF,C_0603_1608Metric,192.22,-106.0,180.0,top
C46,100nF,C_0603_1608Metric,203.65,-106.0,180.0,top
C47,100nF,C_0603_1608Metric,215.08,-106.0,180.0,top
C48,100nF,C_0603_1608Metric,226.51,-106.0,180.0,top
C49,100nF,C_0603_1608Metric,146.5,-117.4,180.0,top
C5,100nF,C_0603_1608Metric,192.22,-49.0,180.0,top
C50,100nF,C_0603_1608Metric,157.93,-117.4,180.0,top
C51,100nF,C_0603_1608Metric,169.36,-117.4,180.0,top
C52,100nF,C_0603_1608Metric,180.79,-117.4,180.0,top
C53,100nF,C_0603_1608Metric,192.22,-117.4,180.0,top
C54,100nF,C_0603_1608Metric,203.65,-117.4,180.0,top
C55,100nF,C_0603_1608Metric,215.08,-117.4,180.0,top
C56,100nF,C_0603_1608Metric,226.51,-117.4,180.0,top
C57,100nF,C_0603_1608Metric,146.5,-128.8,180.0,top
C58,100nF,C_0603_1608Metric,157.93,-128.8,180.0,top
C59,100nF,C_0603_1608Metric,169.36,-128.8,180.0,top
C6,100nF,C_0603_1608Metric,203.65,-49.0,180.0,top
C60,100nF,C_0603_1608Metric,180.79,-128.8,180.0,top
C61,100nF,C_0603_1608Metric,192.22,-128.8,180.0,top
C62,100nF,C_0603_1608Metric,203.65,-128.8,180.0,top
C63,100nF,C_0603_1608Metric,215.08,-128.8,180.0,top
C64,100nF,C_0603_1608Metric,226.51,-128.8,180.0,top
C65,100nF,C_0603_1608Metric,134.62,-52.578,90.0,top
C7,100nF,C_0603_1608Metric,215.08,-49.0,180.0,top
C8,100nF,C_0603_1608Metric,226.51,-49.0,180.0,top
C9,100nF,C_0603_1608Metric,146.5,-60.4,180.0,top
D1,SK6812-EC20,SK6812-EC20,146.25,-51.1,90.0,top
D10,1N4148WS,D_SOD-323,138.25,-62.5,90.0,top
D100,SK6812-EC20,SK6812-EC20,180.54,-96.7,90.0,top
D101,SK6812-EC20,SK6812-EC20,191.97,-96.7,90.0,top
D102,SK6812-EC20,SK6812-EC20,203.4,-96.7,90.0,top
D103,SK6812-EC20,SK6812-EC20,214.83,-96.7,90.0,top
D104,SK6812-EC20,SK6812-EC20,226.26,-96.7,90.0,top
D105,SK6812-EC20,SK6812-EC20,146.25,-108.1,90.0,top
D106,SK6812-EC20,SK6812-EC20,157.68,-108.1,90.0,top
D107,SK6812-EC20,SK6812-EC20,169.11,-108.1,90.0,top
D108,SK6812-EC20,SK6812-EC20,180.54,-108.1,90.0,top
D109,SK6812-EC20,SK6812-EC20,191.97,-108.1,90.0,top
D11,1N4148WS,D_SOD-323,149.68,-62.5,90.0,top
D110,SK6812-EC20,SK6812-EC20,203.4,-108.1,90.0,top
D111,SK6812-EC20,SK6812-EC20,214.83,-108.1,90.0,top
D112,SK6812-EC20,SK6812-EC20,226.26,-108.1,90.0,top
D113,SK6812-EC20,SK6812-EC20,146.25,-119.5,90.0,top
D114,SK6812-EC20,SK6812-EC20,157.68,-119.5,90.0,top
D115,SK6812-EC20,SK6812-EC20,169.11,-119.5,90.0,top
D116,SK6812-EC20,SK6812-EC20,180.54,-119.5,90.0,top
D117,SK6812-EC20,SK6812-EC20,191.97,-119.5,90.0,top
D118,SK6812-EC20,SK6812-EC20,203.4,-119.5,90.0,top
D119,SK6812-EC20,SK6812-EC20,214.83,-119.5,90.0,top
D12,1N4148WS,D_SOD-323,161.11,-62.5,90.0,top
D120,SK6812-EC20,SK6812-EC20,226.26,-119.5,90.0,top
D121,SK6812-EC20,SK6812-EC20,146.25,-130.9,90.0,top
D122,SK6812-EC20,SK6812-EC20,157.68,-130.9,90.0,top
D123,SK6812-EC20,SK6812-EC20,169.11,-130.9,90.0,top
D124,SK6812-EC20,SK6812-EC20,180.54,-130.9,90.0,top
D125,SK6812-EC20,SK6812-EC20,191.97,-130.9,90.0,top
D126,SK6812-EC20,SK6812-EC20,203.4,-130.9,90.0,top
D127,SK6812-EC20,SK6812-EC20,214.83,-130.9,90.0,top
D128,SK6812-EC20,SK6812-EC20,226.26,-130.9,90.0,top
D13,1N4148WS,D_SOD-323,172.54,-62.5,90.0,top
D14,1N4148WS,D_SOD-323,183.97,-62.5,90.0,top
D15,1N4148WS,D_SOD-323,195.4,-62.5,90.0,top
D16,1N4148WS,D_SOD-323,206.83,-62.5,90.0,top
D17,1N4148WS,D_SOD-323,218.26,-62.5,90.0,top
D18,1N4148WS,D_SOD-323,138.25,-73.9,90.0,top
D19,1N4148WS,D_SOD-323,149.68,-73.9,90.0,top
D2,1N4148WS,D_SOD-323,138.25,-51.1,90.0,top
D20,1N4148WS,D_SOD-323,161.11,-73.9,90.0,top
D21,1N4148WS,D_SOD-323,172.54,-73.9,90.0,top
D22,1N4148WS,D_SOD-323,183.97,-73.9,90.0,top
D23,1N4148WS,D_SOD-323,195.4,-73.9,90.0,top
D24,1N4148WS,D_SOD-323,206.83,-73.9,90.0,top
D25,1N4148WS,D_SOD-323,218.26,-73.9,90.0,top
D26,1N4148WS,D_SOD-323,138.25,-85.3,90.0,top
D27,1N4148WS,D_SOD-323,149.68,-85.3,90.0,top
D28,1N4148WS,D_SOD-323,161.11,-85.3,90.0,top
D29,1N4148WS,D_SOD-323,172.54,-85.3,90.0,top
D3,1N4148WS,D_SOD-323,149.68,-51.1,90.0,top
D30,1N4148WS,D_SOD-323,183.97,-85.3,90.0,top
D31,1N4148WS,D_SOD-323,195.4,-85.3,90.0,top
D32,1N4148WS,D_SOD-323,206.83,-85.3,90.0,top
D33,1N4148WS,D_SOD-323,218.26,-85.3,90.0,top
D34,1N4148WS,D_SOD-323,138.25,-96.7,90.0,top
D35,1N4148WS,D_SOD-323,149.68,-96.7,90.0,top
D36,1N4148WS,D_SOD-323,161.11,-96.7,90.0,top
D37,1N4148WS,D_SOD-323,172.54,-96.7,90.0,top
D38,1N4148WS,D_SOD-323,183.97,-96.7,90.0,top
D39,1N4148WS,D_SOD-323,195.4,-96.7,90.0,top
D4,1N4148WS,D_SOD-323,161.11,-51.1,90.0,top
D40,1N4148WS,D_SOD-323,206.83,-96.7,90.0,top
D41,1N4148WS,D_SOD-323,218.26,-96.7,90.0,top
D42,1N4148WS,D_SOD-323,138.25,-108.1,90.0,top
D43,1N4148WS,D_SOD-323,149.68,-108.1,90.0,top
D44,1N4148WS,D_SOD-323,161.11,-108.1,90.0,top
D45,1N4148WS,D_SOD-323,172.54,-108.1,90.0,top
D46,1N4148WS,D_SOD-323,183.97,-108.1,90.0,top
D47,1N4148WS,D_SOD-323,195.4,-108.1,90.0,top
D48,1N4148WS,D_SOD-323,206.83,-108.1,90.0,top
D49,1N4148WS,D_SOD-323,218.26,-108.1,90.0,top
D5,1N4148WS,D_SOD-323,172.54,-51.1,90.0,top
D50,1N4148WS,D_SOD-323,138.25,-119.5,90.0,top
D51,1N4148WS,D_SOD-323,149.68,-119.5,90.0,top
D52,1N4148WS,D_SOD-323,161.11,-119.5,90.0,top
D53,1N4148WS,D_SOD-323,172.54,-119.5,90.0,top
D54,1N4148WS,D_SOD-323,183.97,-119.5,90.0,top
D55,1N4148WS,D_SOD-323,195.4,-119.5,90.0,top
D56,1N4148WS,D_SOD-323,206.83,-119.5,90.0,top
D57,1N4148WS,D_SOD-323,218.26,-119.5,90.0,top
D58,1N4148WS,D_SOD-323,138.25,-130.9,90.0,top
D59,1N4148WS,D_SOD-323,149.68,-130.9,90.0,top
D6,1N4148WS,D_SOD-323,183.97,-51.1,90.0,top
D60,1N4148WS,D_SOD-323,161.11,-130.9,90.0,top
D61,1N4148WS,D_SOD-323,172.54,-130.9,90.0,top
D62,1N4148WS,D_SOD-323,183.97,-130.9,90.0,top
D63,1N4148WS,D_SOD-323,195.4,-130.9,90.0,top
D64,1N4148WS,D_SOD-323,206.83,-130.9,90.0,top
D65,1N4148WS,D_SOD-323,218.26,-130.9,90.0,top
D66,SK6812-EC20,SK6812-EC20,157.68,-51.1,90.0,top
D67,SK6812-EC20,SK6812-EC20,169.11,-51.1,90.0,top
D68,SK6812-EC20,SK6812-EC20,180.54,-51.1,90.0,top
D69,SK6812-EC20,SK6812-EC20,191.97,-51.1,90.0,top
D7,1N4148WS,D_SOD-323,195.4,-51.1,90.0,top
D70,SK6812-EC20,SK6812-EC20,203.4,-51.1,90.0,top
D71,SK6812-EC20,SK6812-EC20,214.83,-51.1,90.0,top
D72,SK6812-EC20,SK6812-EC20,226.26,-51.1,90.0,top
D73,SK6812-EC20,SK6812-EC20,146.25,-62.5,90.0,top
D74,SK6812-EC20,SK6812-EC20,157.68,-62.5,90.0,top
D75,SK6812-EC20,SK6812-EC20,169.11,-62.5,90.0,top
D76,SK6812-EC20,SK6812-EC20,180.54,-62.5,90.0,top
D77,SK6812-EC20,SK6812-EC20,191.97,-62.5,90.0,top
D78,SK6812-EC20,SK6812-EC20,203.4,-62.5,90.0,top
D79,SK6812-EC20,SK6812-EC20,214.83,-62.5,90.0,top
D8,1N4148WS,D_SOD-323,206.83,-51.1,90.0,top
D80,SK6812-EC20,SK6812-EC20,226.26,-62.5,90.0,top
D81,SK6812-EC20,SK6812-EC20,146.25,-73.9,90.0,top
D82,SK6812-EC20,SK6812-EC20,157.68,-73.9,90.0,top
D83,SK6812-EC20,SK6812-EC20,169.11,-73.9,90.0,top
D84,SK6812-EC20,SK6812-EC20,180.54,-73.9,90.0,top
D85,SK6812-EC20,SK6812-EC20,191.97,-73.9,90.0,top
D86,SK6812-EC20,SK6812-EC20,203.4,-73.9,90.0,top
D87,SK6812-EC20,SK6812-EC20,214.83,-73.9,90.0,top
D88,SK6812-EC20,SK6812-EC20,226.26,-73.9,90.0,top
D89,SK6812-EC20,SK6812-EC20,146.25,-85.3,90.0,top
D9,1N4148WS,D_SOD-323,218.26,-51.1,90.0,top
D90,SK6812-EC20,SK6812-EC20,157.68,-85.3,90.0,top
D91,SK6812-EC20,SK6812-EC20,169.11,-85.3,90.0,top
D92,SK6812-EC20,SK6812-EC20,180.54,-85.3,90.0,top
D93,SK6812-EC20,SK6812-EC20,191.97,-85.3,90.0,top
D94,SK6812-EC20,SK6812-EC20,203.4,-85.3,90.0,top
D95,SK6812-EC20,SK6812-EC20,214.83,-85.3,90.0,top
D96,SK6812-EC20,SK6812-EC20,226.26,-85.3,90.0,top
D97,SK6812-EC20,SK6812-EC20,146.25,-96.7,90.0,top
D98,SK6812-EC20,SK6812-EC20,157.68,-96.7,90.0,top
D99,SK6812-EC20,SK6812-EC20,169.11,-96.7,90.0,top
J1,Conn_01x08,PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1Left,192.445,-91.090997,180.0,bottom
SW1,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-51.1,90.0,top
SW10,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-62.5,90.0,top
SW11,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-62.5,90.0,top
SW12,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-62.5,90.0,top
SW13,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-62.5,90.0,top
SW14,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-62.5,90.0,top
SW15,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-62.5,90.0,top
SW16,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-62.5,90.0,top
SW17,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-73.95,90.0,top
SW18,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-73.95,90.0,top
SW19,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-73.95,90.0,top
SW2,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-51.1,90.0,top
SW20,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-73.95,90.0,top
SW21,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-73.95,90.0,top
SW22,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-73.95,90.0,top
SW23,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-73.95,90.0,top
SW24,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-73.95,90.0,top
SW25,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-85.375997,90.0,top
SW26,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-85.375997,90.0,top
SW27,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-85.375997,90.0,top
SW28,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-85.375997,90.0,top
SW29,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-85.375997,90.0,top
SW3,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-51.1,90.0,top
SW30,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-85.375997,90.0,top
SW31,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-85.35,90.0,top
SW32,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-85.35,90.0,top
SW33,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-96.805996,90.0,top
SW34,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-96.805996,90.0,top
SW35,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-96.805996,90.0,top
SW36,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-96.805996,90.0,top
SW37,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-96.805996,90.0,top
SW38,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-96.805996,90.0,top
SW39,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-96.805996,90.0,top
SW4,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-51.1,90.0,top
SW40,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-96.805996,90.0,top
SW41,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-108.235996,90.0,top
SW42,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-108.235996,90.0,top
SW43,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-108.235996,90.0,top
SW44,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-108.235996,90.0,top
SW45,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-108.235996,90.0,top
SW46,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-108.235996,90.0,top
SW47,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-108.235996,90.0,top
SW48,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-108.235996,90.0,top
SW49,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-119.665996,90.0,top
SW5,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-51.1,90.0,top
SW50,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-119.665996,90.0,top
SW51,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-119.665996,90.0,top
SW52,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-119.665996,90.0,top
SW53,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-119.665996,90.0,top
SW54,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-119.665996,90.0,top
SW55,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-119.665996,90.0,top
SW56,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-119.665996,90.0,top
SW57,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-131.095996,90.0,top
SW58,SW_Push,SW_Push_1P1T_XKB_TS-1187A,153.515991,-131.095996,90.0,top
SW59,SW_Push,SW_Push_1P1T_XKB_TS-1187A,164.945991,-131.095996,90.0,top
SW6,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-51.1,90.0,top
SW60,SW_Push,SW_Push_1P1T_XKB_TS-1187A,176.375991,-131.095996,90.0,top
SW61,SW_Push,SW_Push_1P1T_XKB_TS-1187A,187.805991,-131.095996,90.0,top
SW62,SW_Push,SW_Push_1P1T_XKB_TS-1187A,199.235991,-131.095996,90.0,top
SW63,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-131.095996,90.0,top
SW64,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-131.095996,90.0,top
SW7,SW_Push,SW_Push_1P1T_XKB_TS-1187A,210.665991,-51.1,90.0,top
SW8,SW_Push,SW_Push_1P1T_XKB_TS-1187A,222.095991,-51.1,90.0,top
SW9,SW_Push,SW_Push_1P1T_XKB_TS-1187A,142.085991,-62.5,90.0,top
U1,Pico,RPi_Pico_SMD_TH,159.135,-68.3,270.0,bottom
U2,74LVC1G17,SOT-23-5_HandSoldering,135.702,-56.468,90.0,top
1 Designator Val Package Mid X Mid Y Rotation Layer
2 C1 100nF C_0603_1608Metric 146.5 -49.0 180.0 top
3 C10 100nF C_0603_1608Metric 157.93 -60.4 180.0 top
4 C11 100nF C_0603_1608Metric 169.36 -60.4 180.0 top
5 C12 100nF C_0603_1608Metric 180.79 -60.4 180.0 top
6 C13 100nF C_0603_1608Metric 192.22 -60.4 180.0 top
7 C14 100nF C_0603_1608Metric 203.65 -60.4 180.0 top
8 C15 100nF C_0603_1608Metric 215.08 -60.4 180.0 top
9 C16 100nF C_0603_1608Metric 226.51 -60.4 180.0 top
10 C17 100nF C_0603_1608Metric 146.5 -71.8 180.0 top
11 C18 100nF C_0603_1608Metric 157.93 -71.8 180.0 top
12 C19 100nF C_0603_1608Metric 169.36 -71.8 180.0 top
13 C2 100nF C_0603_1608Metric 157.93 -49.0 180.0 top
14 C20 100nF C_0603_1608Metric 180.79 -71.8 180.0 top
15 C21 100nF C_0603_1608Metric 192.22 -71.8 180.0 top
16 C22 100nF C_0603_1608Metric 203.65 -71.8 180.0 top
17 C23 100nF C_0603_1608Metric 215.08 -71.8 180.0 top
18 C24 100nF C_0603_1608Metric 226.51 -71.8 180.0 top
19 C25 100nF C_0603_1608Metric 146.5 -83.2 180.0 top
20 C26 100nF C_0603_1608Metric 157.93 -83.2 180.0 top
21 C27 100nF C_0603_1608Metric 169.36 -83.2 180.0 top
22 C28 100nF C_0603_1608Metric 180.79 -83.2 180.0 top
23 C29 100nF C_0603_1608Metric 192.22 -83.2 180.0 top
24 C3 100nF C_0603_1608Metric 169.36 -49.0 180.0 top
25 C30 100nF C_0603_1608Metric 203.65 -83.2 180.0 top
26 C31 100nF C_0603_1608Metric 215.08 -83.2 180.0 top
27 C32 100nF C_0603_1608Metric 226.51 -83.2 180.0 top
28 C33 100nF C_0603_1608Metric 146.5 -94.6 180.0 top
29 C34 100nF C_0603_1608Metric 157.93 -94.6 180.0 top
30 C35 100nF C_0603_1608Metric 169.36 -94.6 180.0 top
31 C36 100nF C_0603_1608Metric 180.79 -94.6 180.0 top
32 C37 100nF C_0603_1608Metric 192.22 -94.6 180.0 top
33 C38 100nF C_0603_1608Metric 203.65 -94.6 180.0 top
34 C39 100nF C_0603_1608Metric 215.08 -94.6 180.0 top
35 C4 100nF C_0603_1608Metric 180.79 -49.0 180.0 top
36 C40 100nF C_0603_1608Metric 226.51 -94.6 180.0 top
37 C41 100nF C_0603_1608Metric 146.5 -106.0 180.0 top
38 C42 100nF C_0603_1608Metric 157.93 -106.0 180.0 top
39 C43 100nF C_0603_1608Metric 169.36 -106.0 180.0 top
40 C44 100nF C_0603_1608Metric 180.79 -106.0 180.0 top
41 C45 100nF C_0603_1608Metric 192.22 -106.0 180.0 top
42 C46 100nF C_0603_1608Metric 203.65 -106.0 180.0 top
43 C47 100nF C_0603_1608Metric 215.08 -106.0 180.0 top
44 C48 100nF C_0603_1608Metric 226.51 -106.0 180.0 top
45 C49 100nF C_0603_1608Metric 146.5 -117.4 180.0 top
46 C5 100nF C_0603_1608Metric 192.22 -49.0 180.0 top
47 C50 100nF C_0603_1608Metric 157.93 -117.4 180.0 top
48 C51 100nF C_0603_1608Metric 169.36 -117.4 180.0 top
49 C52 100nF C_0603_1608Metric 180.79 -117.4 180.0 top
50 C53 100nF C_0603_1608Metric 192.22 -117.4 180.0 top
51 C54 100nF C_0603_1608Metric 203.65 -117.4 180.0 top
52 C55 100nF C_0603_1608Metric 215.08 -117.4 180.0 top
53 C56 100nF C_0603_1608Metric 226.51 -117.4 180.0 top
54 C57 100nF C_0603_1608Metric 146.5 -128.8 180.0 top
55 C58 100nF C_0603_1608Metric 157.93 -128.8 180.0 top
56 C59 100nF C_0603_1608Metric 169.36 -128.8 180.0 top
57 C6 100nF C_0603_1608Metric 203.65 -49.0 180.0 top
58 C60 100nF C_0603_1608Metric 180.79 -128.8 180.0 top
59 C61 100nF C_0603_1608Metric 192.22 -128.8 180.0 top
60 C62 100nF C_0603_1608Metric 203.65 -128.8 180.0 top
61 C63 100nF C_0603_1608Metric 215.08 -128.8 180.0 top
62 C64 100nF C_0603_1608Metric 226.51 -128.8 180.0 top
63 C65 100nF C_0603_1608Metric 134.62 -52.578 90.0 top
64 C7 100nF C_0603_1608Metric 215.08 -49.0 180.0 top
65 C8 100nF C_0603_1608Metric 226.51 -49.0 180.0 top
66 C9 100nF C_0603_1608Metric 146.5 -60.4 180.0 top
67 D1 SK6812-EC20 SK6812-EC20 146.25 -51.1 90.0 top
68 D10 1N4148WS D_SOD-323 138.25 -62.5 90.0 top
69 D100 SK6812-EC20 SK6812-EC20 180.54 -96.7 90.0 top
70 D101 SK6812-EC20 SK6812-EC20 191.97 -96.7 90.0 top
71 D102 SK6812-EC20 SK6812-EC20 203.4 -96.7 90.0 top
72 D103 SK6812-EC20 SK6812-EC20 214.83 -96.7 90.0 top
73 D104 SK6812-EC20 SK6812-EC20 226.26 -96.7 90.0 top
74 D105 SK6812-EC20 SK6812-EC20 146.25 -108.1 90.0 top
75 D106 SK6812-EC20 SK6812-EC20 157.68 -108.1 90.0 top
76 D107 SK6812-EC20 SK6812-EC20 169.11 -108.1 90.0 top
77 D108 SK6812-EC20 SK6812-EC20 180.54 -108.1 90.0 top
78 D109 SK6812-EC20 SK6812-EC20 191.97 -108.1 90.0 top
79 D11 1N4148WS D_SOD-323 149.68 -62.5 90.0 top
80 D110 SK6812-EC20 SK6812-EC20 203.4 -108.1 90.0 top
81 D111 SK6812-EC20 SK6812-EC20 214.83 -108.1 90.0 top
82 D112 SK6812-EC20 SK6812-EC20 226.26 -108.1 90.0 top
83 D113 SK6812-EC20 SK6812-EC20 146.25 -119.5 90.0 top
84 D114 SK6812-EC20 SK6812-EC20 157.68 -119.5 90.0 top
85 D115 SK6812-EC20 SK6812-EC20 169.11 -119.5 90.0 top
86 D116 SK6812-EC20 SK6812-EC20 180.54 -119.5 90.0 top
87 D117 SK6812-EC20 SK6812-EC20 191.97 -119.5 90.0 top
88 D118 SK6812-EC20 SK6812-EC20 203.4 -119.5 90.0 top
89 D119 SK6812-EC20 SK6812-EC20 214.83 -119.5 90.0 top
90 D12 1N4148WS D_SOD-323 161.11 -62.5 90.0 top
91 D120 SK6812-EC20 SK6812-EC20 226.26 -119.5 90.0 top
92 D121 SK6812-EC20 SK6812-EC20 146.25 -130.9 90.0 top
93 D122 SK6812-EC20 SK6812-EC20 157.68 -130.9 90.0 top
94 D123 SK6812-EC20 SK6812-EC20 169.11 -130.9 90.0 top
95 D124 SK6812-EC20 SK6812-EC20 180.54 -130.9 90.0 top
96 D125 SK6812-EC20 SK6812-EC20 191.97 -130.9 90.0 top
97 D126 SK6812-EC20 SK6812-EC20 203.4 -130.9 90.0 top
98 D127 SK6812-EC20 SK6812-EC20 214.83 -130.9 90.0 top
99 D128 SK6812-EC20 SK6812-EC20 226.26 -130.9 90.0 top
100 D13 1N4148WS D_SOD-323 172.54 -62.5 90.0 top
101 D14 1N4148WS D_SOD-323 183.97 -62.5 90.0 top
102 D15 1N4148WS D_SOD-323 195.4 -62.5 90.0 top
103 D16 1N4148WS D_SOD-323 206.83 -62.5 90.0 top
104 D17 1N4148WS D_SOD-323 218.26 -62.5 90.0 top
105 D18 1N4148WS D_SOD-323 138.25 -73.9 90.0 top
106 D19 1N4148WS D_SOD-323 149.68 -73.9 90.0 top
107 D2 1N4148WS D_SOD-323 138.25 -51.1 90.0 top
108 D20 1N4148WS D_SOD-323 161.11 -73.9 90.0 top
109 D21 1N4148WS D_SOD-323 172.54 -73.9 90.0 top
110 D22 1N4148WS D_SOD-323 183.97 -73.9 90.0 top
111 D23 1N4148WS D_SOD-323 195.4 -73.9 90.0 top
112 D24 1N4148WS D_SOD-323 206.83 -73.9 90.0 top
113 D25 1N4148WS D_SOD-323 218.26 -73.9 90.0 top
114 D26 1N4148WS D_SOD-323 138.25 -85.3 90.0 top
115 D27 1N4148WS D_SOD-323 149.68 -85.3 90.0 top
116 D28 1N4148WS D_SOD-323 161.11 -85.3 90.0 top
117 D29 1N4148WS D_SOD-323 172.54 -85.3 90.0 top
118 D3 1N4148WS D_SOD-323 149.68 -51.1 90.0 top
119 D30 1N4148WS D_SOD-323 183.97 -85.3 90.0 top
120 D31 1N4148WS D_SOD-323 195.4 -85.3 90.0 top
121 D32 1N4148WS D_SOD-323 206.83 -85.3 90.0 top
122 D33 1N4148WS D_SOD-323 218.26 -85.3 90.0 top
123 D34 1N4148WS D_SOD-323 138.25 -96.7 90.0 top
124 D35 1N4148WS D_SOD-323 149.68 -96.7 90.0 top
125 D36 1N4148WS D_SOD-323 161.11 -96.7 90.0 top
126 D37 1N4148WS D_SOD-323 172.54 -96.7 90.0 top
127 D38 1N4148WS D_SOD-323 183.97 -96.7 90.0 top
128 D39 1N4148WS D_SOD-323 195.4 -96.7 90.0 top
129 D4 1N4148WS D_SOD-323 161.11 -51.1 90.0 top
130 D40 1N4148WS D_SOD-323 206.83 -96.7 90.0 top
131 D41 1N4148WS D_SOD-323 218.26 -96.7 90.0 top
132 D42 1N4148WS D_SOD-323 138.25 -108.1 90.0 top
133 D43 1N4148WS D_SOD-323 149.68 -108.1 90.0 top
134 D44 1N4148WS D_SOD-323 161.11 -108.1 90.0 top
135 D45 1N4148WS D_SOD-323 172.54 -108.1 90.0 top
136 D46 1N4148WS D_SOD-323 183.97 -108.1 90.0 top
137 D47 1N4148WS D_SOD-323 195.4 -108.1 90.0 top
138 D48 1N4148WS D_SOD-323 206.83 -108.1 90.0 top
139 D49 1N4148WS D_SOD-323 218.26 -108.1 90.0 top
140 D5 1N4148WS D_SOD-323 172.54 -51.1 90.0 top
141 D50 1N4148WS D_SOD-323 138.25 -119.5 90.0 top
142 D51 1N4148WS D_SOD-323 149.68 -119.5 90.0 top
143 D52 1N4148WS D_SOD-323 161.11 -119.5 90.0 top
144 D53 1N4148WS D_SOD-323 172.54 -119.5 90.0 top
145 D54 1N4148WS D_SOD-323 183.97 -119.5 90.0 top
146 D55 1N4148WS D_SOD-323 195.4 -119.5 90.0 top
147 D56 1N4148WS D_SOD-323 206.83 -119.5 90.0 top
148 D57 1N4148WS D_SOD-323 218.26 -119.5 90.0 top
149 D58 1N4148WS D_SOD-323 138.25 -130.9 90.0 top
150 D59 1N4148WS D_SOD-323 149.68 -130.9 90.0 top
151 D6 1N4148WS D_SOD-323 183.97 -51.1 90.0 top
152 D60 1N4148WS D_SOD-323 161.11 -130.9 90.0 top
153 D61 1N4148WS D_SOD-323 172.54 -130.9 90.0 top
154 D62 1N4148WS D_SOD-323 183.97 -130.9 90.0 top
155 D63 1N4148WS D_SOD-323 195.4 -130.9 90.0 top
156 D64 1N4148WS D_SOD-323 206.83 -130.9 90.0 top
157 D65 1N4148WS D_SOD-323 218.26 -130.9 90.0 top
158 D66 SK6812-EC20 SK6812-EC20 157.68 -51.1 90.0 top
159 D67 SK6812-EC20 SK6812-EC20 169.11 -51.1 90.0 top
160 D68 SK6812-EC20 SK6812-EC20 180.54 -51.1 90.0 top
161 D69 SK6812-EC20 SK6812-EC20 191.97 -51.1 90.0 top
162 D7 1N4148WS D_SOD-323 195.4 -51.1 90.0 top
163 D70 SK6812-EC20 SK6812-EC20 203.4 -51.1 90.0 top
164 D71 SK6812-EC20 SK6812-EC20 214.83 -51.1 90.0 top
165 D72 SK6812-EC20 SK6812-EC20 226.26 -51.1 90.0 top
166 D73 SK6812-EC20 SK6812-EC20 146.25 -62.5 90.0 top
167 D74 SK6812-EC20 SK6812-EC20 157.68 -62.5 90.0 top
168 D75 SK6812-EC20 SK6812-EC20 169.11 -62.5 90.0 top
169 D76 SK6812-EC20 SK6812-EC20 180.54 -62.5 90.0 top
170 D77 SK6812-EC20 SK6812-EC20 191.97 -62.5 90.0 top
171 D78 SK6812-EC20 SK6812-EC20 203.4 -62.5 90.0 top
172 D79 SK6812-EC20 SK6812-EC20 214.83 -62.5 90.0 top
173 D8 1N4148WS D_SOD-323 206.83 -51.1 90.0 top
174 D80 SK6812-EC20 SK6812-EC20 226.26 -62.5 90.0 top
175 D81 SK6812-EC20 SK6812-EC20 146.25 -73.9 90.0 top
176 D82 SK6812-EC20 SK6812-EC20 157.68 -73.9 90.0 top
177 D83 SK6812-EC20 SK6812-EC20 169.11 -73.9 90.0 top
178 D84 SK6812-EC20 SK6812-EC20 180.54 -73.9 90.0 top
179 D85 SK6812-EC20 SK6812-EC20 191.97 -73.9 90.0 top
180 D86 SK6812-EC20 SK6812-EC20 203.4 -73.9 90.0 top
181 D87 SK6812-EC20 SK6812-EC20 214.83 -73.9 90.0 top
182 D88 SK6812-EC20 SK6812-EC20 226.26 -73.9 90.0 top
183 D89 SK6812-EC20 SK6812-EC20 146.25 -85.3 90.0 top
184 D9 1N4148WS D_SOD-323 218.26 -51.1 90.0 top
185 D90 SK6812-EC20 SK6812-EC20 157.68 -85.3 90.0 top
186 D91 SK6812-EC20 SK6812-EC20 169.11 -85.3 90.0 top
187 D92 SK6812-EC20 SK6812-EC20 180.54 -85.3 90.0 top
188 D93 SK6812-EC20 SK6812-EC20 191.97 -85.3 90.0 top
189 D94 SK6812-EC20 SK6812-EC20 203.4 -85.3 90.0 top
190 D95 SK6812-EC20 SK6812-EC20 214.83 -85.3 90.0 top
191 D96 SK6812-EC20 SK6812-EC20 226.26 -85.3 90.0 top
192 D97 SK6812-EC20 SK6812-EC20 146.25 -96.7 90.0 top
193 D98 SK6812-EC20 SK6812-EC20 157.68 -96.7 90.0 top
194 D99 SK6812-EC20 SK6812-EC20 169.11 -96.7 90.0 top
195 J1 Conn_01x08 PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1Left 192.445 -91.090997 180.0 bottom
196 SW1 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -51.1 90.0 top
197 SW10 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -62.5 90.0 top
198 SW11 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -62.5 90.0 top
199 SW12 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -62.5 90.0 top
200 SW13 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -62.5 90.0 top
201 SW14 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -62.5 90.0 top
202 SW15 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -62.5 90.0 top
203 SW16 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -62.5 90.0 top
204 SW17 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -73.95 90.0 top
205 SW18 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -73.95 90.0 top
206 SW19 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -73.95 90.0 top
207 SW2 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -51.1 90.0 top
208 SW20 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -73.95 90.0 top
209 SW21 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -73.95 90.0 top
210 SW22 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -73.95 90.0 top
211 SW23 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -73.95 90.0 top
212 SW24 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -73.95 90.0 top
213 SW25 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -85.375997 90.0 top
214 SW26 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -85.375997 90.0 top
215 SW27 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -85.375997 90.0 top
216 SW28 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -85.375997 90.0 top
217 SW29 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -85.375997 90.0 top
218 SW3 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -51.1 90.0 top
219 SW30 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -85.375997 90.0 top
220 SW31 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -85.35 90.0 top
221 SW32 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -85.35 90.0 top
222 SW33 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -96.805996 90.0 top
223 SW34 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -96.805996 90.0 top
224 SW35 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -96.805996 90.0 top
225 SW36 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -96.805996 90.0 top
226 SW37 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -96.805996 90.0 top
227 SW38 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -96.805996 90.0 top
228 SW39 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -96.805996 90.0 top
229 SW4 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -51.1 90.0 top
230 SW40 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -96.805996 90.0 top
231 SW41 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -108.235996 90.0 top
232 SW42 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -108.235996 90.0 top
233 SW43 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -108.235996 90.0 top
234 SW44 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -108.235996 90.0 top
235 SW45 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -108.235996 90.0 top
236 SW46 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -108.235996 90.0 top
237 SW47 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -108.235996 90.0 top
238 SW48 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -108.235996 90.0 top
239 SW49 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -119.665996 90.0 top
240 SW5 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -51.1 90.0 top
241 SW50 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -119.665996 90.0 top
242 SW51 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -119.665996 90.0 top
243 SW52 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -119.665996 90.0 top
244 SW53 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -119.665996 90.0 top
245 SW54 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -119.665996 90.0 top
246 SW55 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -119.665996 90.0 top
247 SW56 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -119.665996 90.0 top
248 SW57 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -131.095996 90.0 top
249 SW58 SW_Push SW_Push_1P1T_XKB_TS-1187A 153.515991 -131.095996 90.0 top
250 SW59 SW_Push SW_Push_1P1T_XKB_TS-1187A 164.945991 -131.095996 90.0 top
251 SW6 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -51.1 90.0 top
252 SW60 SW_Push SW_Push_1P1T_XKB_TS-1187A 176.375991 -131.095996 90.0 top
253 SW61 SW_Push SW_Push_1P1T_XKB_TS-1187A 187.805991 -131.095996 90.0 top
254 SW62 SW_Push SW_Push_1P1T_XKB_TS-1187A 199.235991 -131.095996 90.0 top
255 SW63 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -131.095996 90.0 top
256 SW64 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -131.095996 90.0 top
257 SW7 SW_Push SW_Push_1P1T_XKB_TS-1187A 210.665991 -51.1 90.0 top
258 SW8 SW_Push SW_Push_1P1T_XKB_TS-1187A 222.095991 -51.1 90.0 top
259 SW9 SW_Push SW_Push_1P1T_XKB_TS-1187A 142.085991 -62.5 90.0 top
260 U1 Pico RPi_Pico_SMD_TH 159.135 -68.3 270.0 bottom
261 U2 74LVC1G17 SOT-23-5_HandSoldering 135.702 -56.468 90.0 top

Binary file not shown.

File diff suppressed because it is too large Load diff

161854
hardware/butns/model/butns.wrl Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,208 @@
#VRML V2.0 utf8
#kicad StepUp wrl exported
# Copyright (C) 2017, kicad StepUp
#
# This work is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode),
# with the following exception:
# To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material',
# then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided
# as part of the 'Licensed Material'.
# You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement.
# However, if you wish to redistribute these libraries, or parts thereof (including in modified form) as a collection then the exception above does not apply.
# Please refer to https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md for further clarification of the exception.
# Disclaimer of Warranties and Limitation of Liability.
# These libraries are provided in the hope that they will be useful, but are provided without warranty of any kind, express or implied.
# *USE 3D CAD DATA AT YOUR OWN RISK*
# *DO NOT RELY UPON ANY INFORMATION FOUND HERE WITHOUT INDEPENDENT VERIFICATION.*
#
Shape {
appearance Appearance {material DEF PIN-01 Material {
ambientIntensity 0.271
diffuseColor 0.824 0.82 0.781
specularColor 0.328 0.258 0.172
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.7
}
}
}
Shape {
appearance Appearance {material DEF CAP-CERAMIC-06 Material {
ambientIntensity 0.453
diffuseColor 0.379 0.27 0.215
specularColor 0.223 0.223 0.223
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.15
}
}
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,1,3,-1,5,1,6,-1,7,1,5,-1,2,1,7,-1,8,9,10,-1,11,9,8,-1,12,9,11,-1,13,9,12,-1,14,9,13,-1,15,9,14,-1,16,17,18,-1,18,17,19,-1,19,17,20,-1,20,17,21,-1,21,17,22,-1,22,17,23,-1,24,25,26,-1,26,25,27,-1,27,25,28,-1,28,25,29,-1,29,25,30,-1,30,25,31,-1,2,7,25,-1,31,7,9,-1,10,7,16,-1,9,7,10,-1,25,7,31,-1,16,7,17,-1]
coord Coordinate { point [-0.315 -0.157 0.306,-0.315 -0.153 0.312,-0.315 -0.157 0.303,-0.315 -0.156 0.308,-0.315 -0.155 0.311,-0.315 -0.148 0.315,-0.315 -0.151 0.314,-0.315 -0.146 0.315,-0.315 0.157 0.009,-0.315 0.146 0.000,-0.315 0.157 0.012,-0.315 0.156 0.007,-0.315 0.155 0.004,-0.315 0.153 0.003,-0.315 0.151 0.001,-0.315 0.148 0.000,-0.315 0.157 0.303,-0.315 0.146 0.315,-0.315 0.157 0.306,-0.315 0.156 0.308,-0.315 0.155 0.311,-0.315 0.153 0.312,-0.315 0.151 0.314,-0.315 0.148 0.315,-0.315 -0.157 0.009,-0.315 -0.157 0.012,-0.315 -0.156 0.007,-0.315 -0.155 0.004,-0.315 -0.153 0.003,-0.315 -0.151 0.001,-0.315 -0.148 0.000,-0.315 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.197 -0.157 0.012,-0.197 -0.157 0.303,-0.315 -0.157 0.012,-0.315 -0.157 0.303]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [-0.197 -0.157 0.009,-0.315 -0.157 0.012,-0.315 -0.157 0.009,-0.197 -0.157 0.012,-0.197 -0.156 0.007,-0.315 -0.156 0.007,-0.197 -0.155 0.004,-0.315 -0.155 0.004,-0.197 -0.153 0.003,-0.315 -0.153 0.003,-0.197 -0.151 0.001,-0.315 -0.151 0.001,-0.197 -0.148 0.000,-0.315 -0.148 0.000,-0.197 -0.146 0.000,-0.315 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [-0.315 -0.157 0.303,-0.197 -0.157 0.306,-0.315 -0.157 0.306,-0.197 -0.157 0.303,-0.197 -0.156 0.308,-0.315 -0.156 0.308,-0.197 -0.155 0.311,-0.315 -0.155 0.311,-0.197 -0.153 0.312,-0.315 -0.153 0.312,-0.197 -0.151 0.314,-0.315 -0.151 0.314,-0.197 -0.148 0.315,-0.315 -0.148 0.315,-0.197 -0.146 0.315,-0.315 -0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.315 0.146 0.000,-0.197 0.146 0.000,-0.315 -0.146 0.000,-0.197 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [-0.197 0.146 0.315,-0.315 0.146 0.315,-0.315 -0.146 0.315,-0.197 -0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [-0.315 0.157 0.012,-0.197 0.157 0.009,-0.315 0.157 0.009,-0.197 0.157 0.012,-0.197 0.156 0.007,-0.315 0.156 0.007,-0.197 0.155 0.004,-0.315 0.155 0.004,-0.197 0.153 0.003,-0.315 0.153 0.003,-0.197 0.151 0.001,-0.315 0.151 0.001,-0.197 0.148 0.000,-0.315 0.148 0.000,-0.197 0.146 0.000,-0.315 0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [-0.197 0.157 0.306,-0.315 0.157 0.303,-0.315 0.157 0.306,-0.197 0.157 0.303,-0.197 0.156 0.308,-0.315 0.156 0.308,-0.197 0.155 0.311,-0.315 0.155 0.311,-0.197 0.153 0.312,-0.315 0.153 0.312,-0.197 0.151 0.314,-0.315 0.151 0.314,-0.197 0.148 0.315,-0.315 0.148 0.315,-0.197 0.146 0.315,-0.315 0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [-0.197 0.157 0.303,-0.197 0.157 0.012,-0.315 0.157 0.012,-0.315 0.157 0.303]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,4,5,-1,6,0,2,-1,3,7,4,-1,8,9,10,-1,11,6,2,-1,12,13,14,-1,15,2,9,-1,15,9,8,-1,12,14,16,-1,15,11,2,-1,1,17,18,-1,1,18,19,-1,20,7,3,-1,21,12,16,-1,22,23,24,-1,22,25,23,-1,22,26,25,-1,27,28,29,-1,27,30,28,-1,27,31,30,-1,32,7,20,-1,27,24,31,-1,27,22,24,-1,33,26,22,-1,34,27,29,-1,35,21,16,-1,36,7,32,-1,37,34,29,-1,36,38,7,-1,36,39,38,-1,40,39,36,-1,41,26,33,-1,42,37,29,-1,43,26,41,-1,44,29,45,-1,17,46,18,-1,17,47,46,-1,44,42,29,-1,17,16,47,-1,17,35,16,-1,48,26,43,-1,48,43,49,-1,50,44,45,-1,51,48,49,-1,52,50,45,-1,53,48,51,-1,4,52,45,-1,1,19,54,-1,4,45,55,-1,1,54,56,-1,4,55,57,-1,1,56,2,-1,5,4,57,-1,58,40,36,-1,14,59,60,-1,58,61,40,-1,14,60,48,-1,58,9,62,-1,14,48,53,-1,58,62,63,-1,58,63,61,-1,13,59,14,-1,10,9,58,-1]
coord Coordinate { point [-0.197 -0.157 0.306,-0.197 -0.157 0.303,-0.197 -0.143 0.299,-0.197 0.153 0.312,-0.197 0.143 0.299,-0.197 0.155 0.311,-0.197 -0.156 0.308,-0.197 0.141 0.301,-0.197 -0.151 0.314,-0.197 -0.141 0.301,-0.197 -0.148 0.315,-0.197 -0.155 0.311,-0.197 -0.155 0.004,-0.197 -0.153 0.003,-0.197 -0.141 0.014,-0.197 -0.153 0.312,-0.197 -0.143 0.016,-0.197 -0.157 0.012,-0.197 -0.146 0.024,-0.197 -0.146 0.291,-0.197 0.151 0.314,-0.197 -0.156 0.007,-0.197 0.141 0.014,-0.197 0.151 0.001,-0.197 0.153 0.003,-0.197 0.148 0.000,-0.197 0.146 0.000,-0.197 0.143 0.016,-0.197 0.157 0.009,-0.197 0.157 0.012,-0.197 0.156 0.007,-0.197 0.155 0.004,-0.197 0.148 0.315,-0.197 0.139 0.013,-0.197 0.144 0.018,-0.197 -0.157 0.009,-0.197 0.146 0.315,-0.197 0.145 0.021,-0.197 0.139 0.302,-0.197 0.136 0.303,-0.197 0.134 0.303,-0.197 0.136 0.012,-0.197 0.146 0.024,-0.197 0.134 0.012,-0.197 0.146 0.291,-0.197 0.157 0.303,-0.197 -0.145 0.021,-0.197 -0.144 0.018,-0.197 -0.146 0.000,-0.197 -0.134 0.012,-0.197 0.145 0.294,-0.197 -0.136 0.012,-0.197 0.144 0.296,-0.197 -0.139 0.013,-0.197 -0.145 0.294,-0.197 0.157 0.306,-0.197 -0.144 0.296,-0.197 0.156 0.308,-0.197 -0.146 0.315,-0.197 -0.151 0.001,-0.197 -0.148 0.000,-0.197 -0.134 0.303,-0.197 -0.139 0.302,-0.197 -0.136 0.303]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [0.197 -0.145 0.021,-0.197 -0.146 0.024,-0.197 -0.145 0.021,0.197 -0.146 0.024,0.197 -0.144 0.018,-0.197 -0.144 0.018,0.197 -0.143 0.016,-0.197 -0.143 0.016,0.197 -0.141 0.014,-0.197 -0.141 0.014,0.197 -0.139 0.013,-0.197 -0.139 0.013,0.197 -0.136 0.012,-0.197 -0.136 0.012,0.197 -0.134 0.012,-0.197 -0.134 0.012]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.197 0.134 0.012,0.197 0.134 0.012,-0.197 -0.134 0.012,0.197 -0.134 0.012]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [-0.197 0.146 0.024,0.197 0.145 0.021,-0.197 0.145 0.021,0.197 0.146 0.024,0.197 0.144 0.018,-0.197 0.144 0.018,0.197 0.143 0.016,-0.197 0.143 0.016,0.197 0.141 0.014,-0.197 0.141 0.014,0.197 0.139 0.013,-0.197 0.139 0.013,0.197 0.136 0.012,-0.197 0.136 0.012,0.197 0.134 0.012,-0.197 0.134 0.012]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [0.197 0.146 0.291,0.197 0.146 0.024,-0.197 0.146 0.024,-0.197 0.146 0.291]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [0.197 0.145 0.294,-0.197 0.146 0.291,-0.197 0.145 0.294,0.197 0.146 0.291,0.197 0.144 0.296,-0.197 0.144 0.296,0.197 0.143 0.299,-0.197 0.143 0.299,0.197 0.141 0.301,-0.197 0.141 0.301,0.197 0.139 0.302,-0.197 0.139 0.302,0.197 0.136 0.303,-0.197 0.136 0.303,0.197 0.134 0.303,-0.197 0.134 0.303]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [0.197 0.134 0.303,-0.197 0.134 0.303,-0.197 -0.134 0.303,0.197 -0.134 0.303]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [-0.197 -0.146 0.291,0.197 -0.145 0.294,-0.197 -0.145 0.294,0.197 -0.146 0.291,0.197 -0.144 0.296,-0.197 -0.144 0.296,0.197 -0.143 0.299,-0.197 -0.143 0.299,0.197 -0.141 0.301,-0.197 -0.141 0.301,0.197 -0.139 0.302,-0.197 -0.139 0.302,0.197 -0.136 0.303,-0.197 -0.136 0.303,0.197 -0.134 0.303,-0.197 -0.134 0.303]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.197 -0.146 0.024,0.197 -0.146 0.291,-0.197 -0.146 0.024,-0.197 -0.146 0.291]
}}
appearance Appearance{material USE CAP-CERAMIC-06 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,4,5,-1,6,7,8,-1,9,4,3,-1,1,10,2,-1,2,11,6,-1,6,11,7,-1,10,11,2,-1,12,13,14,-1,15,16,17,-1,14,13,18,-1,17,16,19,-1,9,20,4,-1,13,21,18,-1,22,23,24,-1,25,23,22,-1,26,23,25,-1,27,28,29,-1,30,28,27,-1,31,28,30,-1,9,32,20,-1,24,28,31,-1,23,28,24,-1,26,33,23,-1,28,34,29,-1,21,35,18,-1,9,36,32,-1,34,37,29,-1,38,36,9,-1,39,36,38,-1,39,40,36,-1,26,41,33,-1,37,42,29,-1,26,43,41,-1,29,44,45,-1,46,15,17,-1,47,15,46,-1,42,44,29,-1,18,15,47,-1,35,15,18,-1,26,48,43,-1,43,48,49,-1,44,50,45,-1,48,51,49,-1,50,52,45,-1,48,53,51,-1,19,16,54,-1,54,16,55,-1,52,3,45,-1,55,16,2,-1,45,3,56,-1,56,3,57,-1,40,58,36,-1,59,58,40,-1,3,5,57,-1,6,58,60,-1,60,58,61,-1,62,14,63,-1,61,58,59,-1,63,14,48,-1,48,14,53,-1,6,8,58,-1,62,12,14,-1,16,0,2,-1]
coord Coordinate { point [0.197 -0.157 0.306,0.197 -0.156 0.308,0.197 -0.143 0.299,0.197 0.143 0.299,0.197 0.153 0.312,0.197 0.155 0.311,0.197 -0.141 0.301,0.197 -0.151 0.314,0.197 -0.148 0.315,0.197 0.141 0.301,0.197 -0.155 0.311,0.197 -0.153 0.312,0.197 -0.153 0.003,0.197 -0.155 0.004,0.197 -0.141 0.014,0.197 -0.157 0.012,0.197 -0.157 0.303,0.197 -0.146 0.024,0.197 -0.143 0.016,0.197 -0.146 0.291,0.197 0.151 0.314,0.197 -0.156 0.007,0.197 0.151 0.001,0.197 0.141 0.014,0.197 0.153 0.003,0.197 0.148 0.000,0.197 0.146 0.000,0.197 0.157 0.009,0.197 0.143 0.016,0.197 0.157 0.012,0.197 0.156 0.007,0.197 0.155 0.004,0.197 0.148 0.315,0.197 0.139 0.013,0.197 0.144 0.018,0.197 -0.157 0.009,0.197 0.146 0.315,0.197 0.145 0.021,0.197 0.139 0.302,0.197 0.136 0.303,0.197 0.134 0.303,0.197 0.136 0.012,0.197 0.146 0.024,0.197 0.134 0.012,0.197 0.146 0.291,0.197 0.157 0.303,0.197 -0.145 0.021,0.197 -0.144 0.018,0.197 -0.146 0.000,0.197 -0.134 0.012,0.197 0.145 0.294,0.197 -0.136 0.012,0.197 0.144 0.296,0.197 -0.139 0.013,0.197 -0.145 0.294,0.197 -0.144 0.296,0.197 0.157 0.306,0.197 0.156 0.308,0.197 -0.146 0.315,0.197 -0.134 0.303,0.197 -0.139 0.302,0.197 -0.136 0.303,0.197 -0.151 0.001,0.197 -0.148 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.315 -0.157 0.012,0.315 -0.157 0.303,0.197 -0.157 0.012,0.197 -0.157 0.303]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [0.315 -0.157 0.009,0.197 -0.157 0.012,0.197 -0.157 0.009,0.315 -0.157 0.012,0.315 -0.156 0.007,0.197 -0.156 0.007,0.315 -0.155 0.004,0.197 -0.155 0.004,0.315 -0.153 0.003,0.197 -0.153 0.003,0.315 -0.151 0.001,0.197 -0.151 0.001,0.315 -0.148 0.000,0.197 -0.148 0.000,0.315 -0.146 0.000,0.197 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [0.197 -0.157 0.303,0.315 -0.157 0.306,0.197 -0.157 0.306,0.315 -0.157 0.303,0.315 -0.156 0.308,0.197 -0.156 0.308,0.315 -0.155 0.311,0.197 -0.155 0.311,0.315 -0.153 0.312,0.197 -0.153 0.312,0.315 -0.151 0.314,0.197 -0.151 0.314,0.315 -0.148 0.315,0.197 -0.148 0.315,0.315 -0.146 0.315,0.197 -0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.197 0.146 0.000,0.315 0.146 0.000,0.197 -0.146 0.000,0.315 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [0.315 0.146 0.315,0.197 0.146 0.315,0.197 -0.146 0.315,0.315 -0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
coord Coordinate { point [0.197 0.157 0.012,0.315 0.157 0.009,0.197 0.157 0.009,0.315 0.157 0.012,0.315 0.156 0.007,0.197 0.156 0.007,0.315 0.155 0.004,0.197 0.155 0.004,0.315 0.153 0.003,0.197 0.153 0.003,0.315 0.151 0.001,0.197 0.151 0.001,0.315 0.148 0.000,0.197 0.148 0.000,0.315 0.146 0.000,0.197 0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
coord Coordinate { point [0.315 0.157 0.306,0.197 0.157 0.303,0.197 0.157 0.306,0.315 0.157 0.303,0.315 0.156 0.308,0.197 0.156 0.308,0.315 0.155 0.311,0.197 0.155 0.311,0.315 0.153 0.312,0.197 0.153 0.312,0.315 0.151 0.314,0.197 0.151 0.314,0.315 0.148 0.315,0.197 0.148 0.315,0.315 0.146 0.315,0.197 0.146 0.315]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [0.315 0.157 0.303,0.315 0.157 0.012,0.197 0.157 0.012,0.197 0.157 0.303]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,0,4,3,-1,0,5,6,-1,0,7,5,-1,0,2,7,-1,8,9,10,-1,8,11,9,-1,8,12,11,-1,8,13,12,-1,8,14,13,-1,8,15,14,-1,16,17,18,-1,16,18,19,-1,16,19,20,-1,16,20,21,-1,16,21,22,-1,16,22,23,-1,24,25,26,-1,24,26,27,-1,24,27,28,-1,24,28,29,-1,24,29,30,-1,24,30,31,-1,7,2,24,-1,7,31,8,-1,7,10,17,-1,7,8,10,-1,7,24,31,-1,7,17,16,-1]
coord Coordinate { point [0.315 -0.153 0.312,0.315 -0.157 0.306,0.315 -0.157 0.303,0.315 -0.156 0.308,0.315 -0.155 0.311,0.315 -0.148 0.315,0.315 -0.151 0.314,0.315 -0.146 0.315,0.315 0.146 0.000,0.315 0.157 0.009,0.315 0.157 0.012,0.315 0.156 0.007,0.315 0.155 0.004,0.315 0.153 0.003,0.315 0.151 0.001,0.315 0.148 0.000,0.315 0.146 0.315,0.315 0.157 0.303,0.315 0.157 0.306,0.315 0.156 0.308,0.315 0.155 0.311,0.315 0.153 0.312,0.315 0.151 0.314,0.315 0.148 0.315,0.315 -0.157 0.012,0.315 -0.157 0.009,0.315 -0.156 0.007,0.315 -0.155 0.004,0.315 -0.153 0.003,0.315 -0.151 0.001,0.315 -0.148 0.000,0.315 -0.146 0.000]
}}
appearance Appearance{material USE PIN-01 }
}

View file

@ -0,0 +1,453 @@
#VRML V2.0 utf8
#kicad StepUp wrl exported
# Copyright (C) 2017, kicad StepUp
#
# This work is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode),
# with the following exception:
# To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material',
# then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided
# as part of the 'Licensed Material'.
# You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement.
# However, if you wish to redistribute these libraries, or parts thereof (including in modified form) as a collection then the exception above does not apply.
# Please refer to https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md for further clarification of the exception.
# Disclaimer of Warranties and Limitation of Liability.
# These libraries are provided in the hope that they will be useful, but are provided without warranty of any kind, express or implied.
# *USE 3D CAD DATA AT YOUR OWN RISK*
# *DO NOT RELY UPON ANY INFORMATION FOUND HERE WITHOUT INDEPENDENT VERIFICATION.*
#
Shape {
appearance Appearance {material DEF PIN-01 Material {
ambientIntensity 0.271
diffuseColor 0.824 0.82 0.781
specularColor 0.328 0.258 0.172
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.7
}
}
}
Shape {
appearance Appearance {material DEF IC-LABEL-01 Material {
ambientIntensity 0.082
diffuseColor 0.691 0.664 0.598
specularColor 0.0 0.0 0.0
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.01
}
}
}
Shape {
appearance Appearance {material DEF IC-BODY-EPOXY-04 Material {
ambientIntensity 0.293
diffuseColor 0.148 0.145 0.145
specularColor 0.18 0.168 0.16
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.35
}
}
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.362 0.069 0.179,0.362 0.069 0.087,0.362 -0.069 0.179,0.362 -0.069 0.087]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.335 0.069 0.207,0.342 0.069 0.206,0.335 -0.069 0.207,0.342 -0.069 0.206,0.348 0.069 0.203,0.348 -0.069 0.203,0.354 0.069 0.199,0.354 -0.069 0.199,0.359 0.069 0.193,0.359 -0.069 0.193,0.361 0.069 0.186,0.361 -0.069 0.186,0.362 0.069 0.179,0.362 -0.069 0.179]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.362 0.069 0.087,0.365 0.069 0.064,0.362 -0.069 0.087,0.365 -0.069 0.064,0.374 0.069 0.043,0.374 -0.069 0.043,0.388 0.069 0.025,0.388 -0.069 0.025,0.406 0.069 0.012,0.406 -0.069 0.012,0.426 0.069 0.003,0.426 -0.069 0.003,0.449 0.069 0.000,0.449 -0.069 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,8,9,6,-1,6,9,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1]
coord Coordinate { point [0.492 0.069 0.000,0.449 0.069 0.059,0.492 0.069 0.059,0.449 0.069 0.000,0.426 0.069 0.003,0.442 0.069 0.060,0.406 0.069 0.012,0.435 0.069 0.063,0.388 0.069 0.025,0.429 0.069 0.067,0.374 0.069 0.043,0.425 0.069 0.073,0.365 0.069 0.064,0.422 0.069 0.079,0.362 0.069 0.087,0.421 0.069 0.087,0.362 0.069 0.179,0.421 0.069 0.179,0.361 0.069 0.186,0.418 0.069 0.202,0.359 0.069 0.193,0.410 0.069 0.222,0.354 0.069 0.199,0.396 0.069 0.240,0.348 0.069 0.203,0.378 0.069 0.254,0.342 0.069 0.206,0.357 0.069 0.263,0.335 0.069 0.207,0.335 0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,9,7,-1,8,7,6,-1,10,8,11,-1,10,9,8,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1]
coord Coordinate { point [0.449 -0.069 0.059,0.492 -0.069 0.000,0.492 -0.069 0.059,0.449 -0.069 0.000,0.442 -0.069 0.060,0.426 -0.069 0.003,0.435 -0.069 0.063,0.406 -0.069 0.012,0.429 -0.069 0.067,0.388 -0.069 0.025,0.374 -0.069 0.043,0.425 -0.069 0.073,0.365 -0.069 0.064,0.422 -0.069 0.079,0.362 -0.069 0.087,0.421 -0.069 0.087,0.362 -0.069 0.179,0.421 -0.069 0.179,0.361 -0.069 0.186,0.418 -0.069 0.202,0.359 -0.069 0.193,0.410 -0.069 0.222,0.354 -0.069 0.199,0.396 -0.069 0.240,0.378 -0.069 0.254,0.348 -0.069 0.203,0.357 -0.069 0.263,0.342 -0.069 0.206,0.335 -0.069 0.266,0.335 -0.069 0.207]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1]
coord Coordinate { point [0.335 0.209 0.207,0.335 0.069 0.207,0.311 0.197 0.039,0.335 -0.069 0.207,0.311 -0.197 0.039,0.335 -0.209 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.449 0.069 0.000,0.492 0.069 0.000,0.449 -0.069 0.000,0.492 -0.069 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.335 0.209 0.266,0.335 0.069 0.266,0.335 0.209 0.207,0.335 0.069 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.421 0.069 0.179,0.418 0.069 0.202,0.421 -0.069 0.179,0.418 -0.069 0.202,0.410 0.069 0.222,0.410 -0.069 0.222,0.396 0.069 0.240,0.396 -0.069 0.240,0.378 0.069 0.254,0.378 -0.069 0.254,0.357 0.069 0.263,0.357 -0.069 0.263,0.335 0.069 0.266,0.335 -0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.421 0.069 0.087,0.421 0.069 0.179,0.421 -0.069 0.087,0.421 -0.069 0.179]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.449 0.069 0.059,0.442 0.069 0.060,0.449 -0.069 0.059,0.442 -0.069 0.060,0.435 0.069 0.063,0.435 -0.069 0.063,0.429 0.069 0.067,0.429 -0.069 0.067,0.425 0.069 0.073,0.425 -0.069 0.073,0.422 0.069 0.079,0.422 -0.069 0.079,0.421 0.069 0.087,0.421 -0.069 0.087]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.492 0.069 0.059,0.449 0.069 0.059,0.492 -0.069 0.059,0.449 -0.069 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.492 0.069 0.000,0.492 0.069 0.059,0.492 -0.069 0.000,0.492 -0.069 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.335 -0.069 0.266,0.335 -0.209 0.266,0.335 -0.069 0.207,0.335 -0.209 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,4,5,6,-1,7,5,4,-1,3,5,7,-1,1,5,3,-1]
coord Coordinate { point [-0.311 0.197 0.039,-0.285 0.223 0.039,-0.311 -0.197 0.039,-0.285 -0.223 0.039,0.311 -0.197 0.039,0.285 0.223 0.039,0.311 0.197 0.039,0.285 -0.223 0.039]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.293 0.222 0.073,0.299 0.216 0.073,0.285 0.223 0.039,0.305 0.210 0.073,0.311 0.197 0.039,0.310 0.205 0.073,0.296 0.226 0.106,0.302 0.220 0.106,0.308 0.214 0.106,0.314 0.208 0.106,0.297 0.246 0.207,0.299 0.230 0.140,0.306 0.224 0.140,0.312 0.217 0.140,0.319 0.210 0.140,0.335 0.209 0.207,0.302 0.234 0.173,0.309 0.227 0.173,0.316 0.220 0.173,0.323 0.213 0.173]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.310 -0.205 0.073,0.305 -0.210 0.073,0.311 -0.197 0.039,0.299 -0.216 0.073,0.285 -0.223 0.039,0.293 -0.222 0.073,0.314 -0.208 0.106,0.308 -0.214 0.106,0.302 -0.220 0.106,0.296 -0.226 0.106,0.335 -0.209 0.207,0.319 -0.210 0.140,0.312 -0.217 0.140,0.306 -0.224 0.140,0.299 -0.230 0.140,0.297 -0.246 0.207,0.323 -0.213 0.173,0.316 -0.220 0.173,0.309 -0.227 0.173,0.302 -0.234 0.173]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.297 0.246 0.207,0.335 0.209 0.266,0.335 0.209 0.207,0.297 0.246 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.325 0.204 0.266,0.325 0.069 0.266,0.335 0.209 0.266,0.335 0.069 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.335 -0.069 0.266,0.325 0.069 0.266,0.325 -0.069 0.266,0.335 0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [0.325 -0.069 0.266,0.335 -0.209 0.266,0.335 -0.069 0.266,0.325 -0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.335 -0.209 0.207,0.297 -0.246 0.266,0.297 -0.246 0.207,0.335 -0.209 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1]
coord Coordinate { point [-0.335 -0.209 0.207,-0.335 -0.069 0.207,-0.311 -0.197 0.039,-0.335 0.069 0.207,-0.311 0.197 0.039,-0.335 0.209 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.310 0.205 0.073,-0.305 0.210 0.073,-0.311 0.197 0.039,-0.299 0.216 0.073,-0.285 0.223 0.039,-0.293 0.222 0.073,-0.314 0.208 0.106,-0.308 0.214 0.106,-0.302 0.220 0.106,-0.296 0.226 0.106,-0.335 0.209 0.207,-0.319 0.210 0.140,-0.312 0.217 0.140,-0.306 0.224 0.140,-0.299 0.230 0.140,-0.297 0.246 0.207,-0.323 0.213 0.173,-0.316 0.220 0.173,-0.309 0.227 0.173,-0.302 0.234 0.173]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.285 0.223 0.039,0.297 0.246 0.207,0.285 0.223 0.039,-0.297 0.246 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.285 -0.223 0.039,-0.297 -0.246 0.207,-0.285 -0.223 0.039,0.297 -0.246 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.293 -0.222 0.073,-0.299 -0.216 0.073,-0.285 -0.223 0.039,-0.305 -0.210 0.073,-0.311 -0.197 0.039,-0.310 -0.205 0.073,-0.296 -0.226 0.106,-0.302 -0.220 0.106,-0.308 -0.214 0.106,-0.314 -0.208 0.106,-0.297 -0.246 0.207,-0.299 -0.230 0.140,-0.306 -0.224 0.140,-0.312 -0.217 0.140,-0.319 -0.210 0.140,-0.335 -0.209 0.207,-0.302 -0.234 0.173,-0.309 -0.227 0.173,-0.316 -0.220 0.173,-0.323 -0.213 0.173]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.297 0.246 0.266,0.325 0.204 0.266,0.335 0.209 0.266,0.292 0.236 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.297 0.246 0.207,0.297 0.246 0.266,0.297 0.246 0.207,-0.297 0.246 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,4,3,5,-1,1,3,2,-1]
coord Coordinate { point [0.325 0.204 0.266,0.301 0.192 0.433,0.325 0.069 0.266,0.301 -0.192 0.433,0.325 -0.069 0.266,0.325 -0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.335 -0.209 0.266,0.292 -0.236 0.266,0.297 -0.246 0.266,0.325 -0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.297 -0.246 0.207,-0.297 -0.246 0.266,-0.297 -0.246 0.207,0.297 -0.246 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.335 -0.209 0.266,-0.335 -0.069 0.266,-0.335 -0.209 0.207,-0.335 -0.069 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.335 0.069 0.266,-0.335 0.209 0.266,-0.335 0.069 0.207,-0.335 0.209 0.207]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.335 -0.069 0.207,-0.342 -0.069 0.206,-0.335 0.069 0.207,-0.342 0.069 0.206,-0.348 -0.069 0.203,-0.348 0.069 0.203,-0.354 -0.069 0.199,-0.354 0.069 0.199,-0.359 -0.069 0.193,-0.359 0.069 0.193,-0.361 -0.069 0.186,-0.361 0.069 0.186,-0.362 -0.069 0.179,-0.362 0.069 0.179]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.335 0.209 0.207,-0.297 0.246 0.266,-0.297 0.246 0.207,-0.335 0.209 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.297 -0.246 0.207,-0.335 -0.209 0.266,-0.335 -0.209 0.207,-0.297 -0.246 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.296 0.225 0.299,0.302 0.219 0.299,0.292 0.236 0.266,0.308 0.213 0.299,0.325 0.204 0.266,0.314 0.207 0.299,0.293 0.221 0.333,0.299 0.216 0.333,0.304 0.210 0.333,0.310 0.205 0.333,0.281 0.213 0.433,0.290 0.217 0.366,0.295 0.212 0.366,0.301 0.207 0.366,0.306 0.202 0.366,0.301 0.192 0.433,0.288 0.213 0.400,0.292 0.208 0.400,0.297 0.204 0.400,0.301 0.199 0.400]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.297 0.246 0.266,0.292 0.236 0.266,0.297 0.246 0.266,-0.292 0.236 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,0,2,-1,4,5,1,-1,4,1,0,-1,6,5,4,-1,7,6,4,-1,8,9,10,-1,8,10,11,-1,8,7,3,-1,8,3,9,-1,2,9,3,-1,8,6,7,-1]
coord Coordinate { point [-0.282 -0.193 0.433,-0.301 -0.192 0.433,-0.281 -0.213 0.433,-0.124 -0.193 0.433,-0.282 0.193 0.433,-0.301 0.192 0.433,-0.281 0.213 0.433,-0.124 0.193 0.433,0.281 0.213 0.433,0.281 -0.213 0.433,0.301 -0.192 0.433,0.301 0.192 0.433]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.314 -0.207 0.299,0.308 -0.213 0.299,0.325 -0.204 0.266,0.302 -0.219 0.299,0.292 -0.236 0.266,0.296 -0.225 0.299,0.310 -0.205 0.333,0.304 -0.210 0.333,0.299 -0.216 0.333,0.293 -0.221 0.333,0.301 -0.192 0.433,0.306 -0.202 0.366,0.301 -0.207 0.366,0.295 -0.212 0.366,0.290 -0.217 0.366,0.281 -0.213 0.433,0.301 -0.199 0.400,0.297 -0.204 0.400,0.292 -0.208 0.400,0.288 -0.213 0.400]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.297 -0.246 0.266,-0.292 -0.236 0.266,-0.297 -0.246 0.266,0.292 -0.236 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.325 -0.204 0.266,-0.325 -0.069 0.266,-0.335 -0.209 0.266,-0.335 -0.069 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,8,9,6,-1,6,9,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1]
coord Coordinate { point [-0.492 -0.069 0.000,-0.449 -0.069 0.059,-0.492 -0.069 0.059,-0.449 -0.069 0.000,-0.426 -0.069 0.003,-0.442 -0.069 0.060,-0.406 -0.069 0.012,-0.435 -0.069 0.063,-0.388 -0.069 0.025,-0.429 -0.069 0.067,-0.374 -0.069 0.043,-0.425 -0.069 0.073,-0.365 -0.069 0.064,-0.422 -0.069 0.079,-0.362 -0.069 0.087,-0.421 -0.069 0.087,-0.362 -0.069 0.179,-0.421 -0.069 0.179,-0.361 -0.069 0.186,-0.418 -0.069 0.202,-0.359 -0.069 0.193,-0.410 -0.069 0.222,-0.354 -0.069 0.199,-0.396 -0.069 0.240,-0.348 -0.069 0.203,-0.378 -0.069 0.254,-0.342 -0.069 0.206,-0.357 -0.069 0.263,-0.335 -0.069 0.207,-0.335 -0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,9,7,-1,8,7,6,-1,10,8,11,-1,10,9,8,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1]
coord Coordinate { point [-0.449 0.069 0.059,-0.492 0.069 0.000,-0.492 0.069 0.059,-0.449 0.069 0.000,-0.442 0.069 0.060,-0.426 0.069 0.003,-0.435 0.069 0.063,-0.406 0.069 0.012,-0.429 0.069 0.067,-0.388 0.069 0.025,-0.374 0.069 0.043,-0.425 0.069 0.073,-0.365 0.069 0.064,-0.422 0.069 0.079,-0.362 0.069 0.087,-0.421 0.069 0.087,-0.362 0.069 0.179,-0.421 0.069 0.179,-0.361 0.069 0.186,-0.418 0.069 0.202,-0.359 0.069 0.193,-0.410 0.069 0.222,-0.354 0.069 0.199,-0.396 0.069 0.240,-0.378 0.069 0.254,-0.348 0.069 0.203,-0.357 0.069 0.263,-0.342 0.069 0.206,-0.335 0.069 0.266,-0.335 0.069 0.207]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [-0.325 0.069 0.266,-0.335 0.209 0.266,-0.335 0.069 0.266,-0.325 0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.362 -0.069 0.179,-0.362 -0.069 0.087,-0.362 0.069 0.179,-0.362 0.069 0.087]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.335 0.209 0.266,-0.292 0.236 0.266,-0.297 0.246 0.266,-0.325 0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.297 -0.246 0.266,-0.325 -0.204 0.266,-0.335 -0.209 0.266,-0.292 -0.236 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.292 0.236 0.266,0.281 0.213 0.433,0.292 0.236 0.266,-0.281 0.213 0.433]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,4,3,5,-1,1,3,2,-1]
coord Coordinate { point [-0.325 -0.204 0.266,-0.301 -0.192 0.433,-0.325 -0.069 0.266,-0.301 0.192 0.433,-0.325 0.069 0.266,-0.325 0.204 0.266]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.296 -0.225 0.299,-0.302 -0.219 0.299,-0.292 -0.236 0.266,-0.308 -0.213 0.299,-0.325 -0.204 0.266,-0.314 -0.207 0.299,-0.293 -0.221 0.333,-0.299 -0.216 0.333,-0.304 -0.210 0.333,-0.310 -0.205 0.333,-0.281 -0.213 0.433,-0.290 -0.217 0.366,-0.295 -0.212 0.366,-0.301 -0.207 0.366,-0.306 -0.202 0.366,-0.301 -0.192 0.433,-0.288 -0.213 0.400,-0.292 -0.208 0.400,-0.297 -0.204 0.400,-0.301 -0.199 0.400]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.314 0.207 0.299,-0.308 0.213 0.299,-0.325 0.204 0.266,-0.302 0.219 0.299,-0.292 0.236 0.266,-0.296 0.225 0.299,-0.310 0.205 0.333,-0.304 0.210 0.333,-0.299 0.216 0.333,-0.293 0.221 0.333,-0.301 0.192 0.433,-0.306 0.202 0.366,-0.301 0.207 0.366,-0.295 0.212 0.366,-0.290 0.217 0.366,-0.281 0.213 0.433,-0.301 0.199 0.400,-0.297 0.204 0.400,-0.292 0.208 0.400,-0.288 0.213 0.400]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.292 -0.236 0.266,-0.281 -0.213 0.433,-0.292 -0.236 0.266,0.281 -0.213 0.433]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [-0.124 -0.193 0.433,-0.282 -0.193 0.429,-0.282 -0.193 0.433,-0.124 -0.193 0.429]
}}
appearance Appearance{material USE IC-LABEL-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.124 0.193 0.429,-0.124 -0.193 0.433,-0.124 0.193 0.433,-0.124 -0.193 0.429]
}}
appearance Appearance{material USE IC-LABEL-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.282 0.193 0.429,-0.124 0.193 0.433,-0.282 0.193 0.433,-0.124 0.193 0.429]
}}
appearance Appearance{material USE IC-LABEL-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [-0.282 -0.193 0.433,-0.282 0.193 0.429,-0.282 0.193 0.433,-0.282 -0.193 0.429]
}}
appearance Appearance{material USE IC-LABEL-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.335 0.069 0.266,-0.325 -0.069 0.266,-0.325 0.069 0.266,-0.335 -0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.421 -0.069 0.179,-0.418 -0.069 0.202,-0.421 0.069 0.179,-0.418 0.069 0.202,-0.410 -0.069 0.222,-0.410 0.069 0.222,-0.396 -0.069 0.240,-0.396 0.069 0.240,-0.378 -0.069 0.254,-0.378 0.069 0.254,-0.357 -0.069 0.263,-0.357 0.069 0.263,-0.335 -0.069 0.266,-0.335 0.069 0.266]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.421 -0.069 0.087,-0.421 -0.069 0.179,-0.421 0.069 0.087,-0.421 0.069 0.179]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.449 -0.069 0.059,-0.442 -0.069 0.060,-0.449 0.069 0.059,-0.442 0.069 0.060,-0.435 -0.069 0.063,-0.435 0.069 0.063,-0.429 -0.069 0.067,-0.429 0.069 0.067,-0.425 -0.069 0.073,-0.425 0.069 0.073,-0.422 -0.069 0.079,-0.422 0.069 0.079,-0.421 -0.069 0.087,-0.421 0.069 0.087]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.492 -0.069 0.059,-0.449 -0.069 0.059,-0.492 0.069 0.059,-0.449 0.069 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.492 -0.069 0.000,-0.492 -0.069 0.059,-0.492 0.069 0.000,-0.492 0.069 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.449 -0.069 0.000,-0.492 -0.069 0.000,-0.449 0.069 0.000,-0.492 0.069 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.362 -0.069 0.087,-0.365 -0.069 0.064,-0.362 0.069 0.087,-0.365 0.069 0.064,-0.374 -0.069 0.043,-0.374 0.069 0.043,-0.388 -0.069 0.025,-0.388 0.069 0.025,-0.406 -0.069 0.012,-0.406 0.069 0.012,-0.426 -0.069 0.003,-0.426 0.069 0.003,-0.449 -0.069 0.000,-0.449 0.069 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
coord Coordinate { point [-0.124 0.193 0.429,-0.282 0.193 0.429,-0.282 -0.193 0.429,-0.124 -0.193 0.429]
}}
appearance Appearance{material USE IC-LABEL-01 }
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,705 @@
#VRML V2.0 utf8
#kicad StepUp wrl exported
# Copyright (C) 2017, kicad StepUp
#
# This work is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode),
# with the following exception:
# To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material',
# then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided
# as part of the 'Licensed Material'.
# You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement.
# However, if you wish to redistribute these libraries, or parts thereof (including in modified form) as a collection then the exception above does not apply.
# Please refer to https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md for further clarification of the exception.
# Disclaimer of Warranties and Limitation of Liability.
# These libraries are provided in the hope that they will be useful, but are provided without warranty of any kind, express or implied.
# *USE 3D CAD DATA AT YOUR OWN RISK*
# *DO NOT RELY UPON ANY INFORMATION FOUND HERE WITHOUT INDEPENDENT VERIFICATION.*
#
Shape {
appearance Appearance {material DEF PIN-01 Material {
ambientIntensity 0.271
diffuseColor 0.824 0.82 0.781
specularColor 0.328 0.258 0.172
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.7
}
}
}
Shape {
appearance Appearance {material DEF IC-LABEL-01 Material {
ambientIntensity 0.082
diffuseColor 0.691 0.664 0.598
specularColor 0.0 0.0 0.0
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.01
}
}
}
Shape {
appearance Appearance {material DEF IC-BODY-EPOXY-04 Material {
ambientIntensity 0.293
diffuseColor 0.148 0.145 0.145
specularColor 0.18 0.168 0.16
emissiveColor 0.0 0.0 0.0
transparency 0.0
shininess 0.35
}
}
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.260 0.535 0.039,0.278 0.571 0.295,0.260 0.535 0.039,-0.278 0.571 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,4,5,6,-1,7,5,4,-1,3,5,7,-1,1,5,3,-1]
coord Coordinate { point [0.260 0.535 0.039,0.279 0.515 0.039,-0.260 0.535 0.039,-0.279 0.515 0.039,-0.260 -0.535 0.039,0.279 -0.515 0.039,0.260 -0.535 0.039,-0.279 -0.515 0.039]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.268 0.537 0.091,0.272 0.533 0.091,0.260 0.535 0.039,0.277 0.528 0.091,0.279 0.515 0.039,0.282 0.524 0.091,0.272 0.544 0.142,0.277 0.539 0.142,0.283 0.533 0.142,0.288 0.528 0.142,0.278 0.571 0.295,0.276 0.550 0.193,0.282 0.544 0.193,0.288 0.538 0.193,0.295 0.532 0.193,0.315 0.533 0.295,0.281 0.557 0.244,0.287 0.550 0.244,0.294 0.543 0.244,0.301 0.537 0.244]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.278 0.571 0.295,0.278 0.571 0.354,0.278 0.571 0.295,-0.278 0.571 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.282 0.524 0.091,-0.277 0.528 0.091,-0.279 0.515 0.039,-0.272 0.533 0.091,-0.260 0.535 0.039,-0.268 0.537 0.091,-0.288 0.528 0.142,-0.283 0.533 0.142,-0.277 0.539 0.142,-0.272 0.544 0.142,-0.315 0.533 0.295,-0.295 0.532 0.193,-0.288 0.538 0.193,-0.282 0.544 0.193,-0.276 0.550 0.193,-0.278 0.571 0.295,-0.301 0.537 0.244,-0.294 0.543 0.244,-0.287 0.550 0.244,-0.281 0.557 0.244]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,1,3,2,-1,2,4,5,-1,3,4,2,-1,4,6,5,-1,6,7,5,-1]
coord Coordinate { point [0.315 0.533 0.295,0.315 0.472 0.295,0.279 0.515 0.039,0.315 0.276 0.295,0.315 -0.276 0.295,0.279 -0.515 0.039,0.315 -0.472 0.295,0.315 -0.533 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.282 -0.524 0.091,0.277 -0.528 0.091,0.279 -0.515 0.039,0.272 -0.533 0.091,0.260 -0.535 0.039,0.268 -0.537 0.091,0.288 -0.528 0.142,0.283 -0.533 0.142,0.277 -0.539 0.142,0.272 -0.544 0.142,0.315 -0.533 0.295,0.295 -0.532 0.193,0.288 -0.538 0.193,0.282 -0.544 0.193,0.276 -0.550 0.193,0.278 -0.571 0.295,0.301 -0.537 0.244,0.294 -0.543 0.244,0.287 -0.550 0.244,0.281 -0.557 0.244]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.260 -0.535 0.039,-0.278 -0.571 0.295,-0.260 -0.535 0.039,0.278 -0.571 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.268 -0.537 0.091,-0.272 -0.533 0.091,-0.260 -0.535 0.039,-0.277 -0.528 0.091,-0.279 -0.515 0.039,-0.282 -0.524 0.091,-0.272 -0.544 0.142,-0.277 -0.539 0.142,-0.283 -0.533 0.142,-0.288 -0.528 0.142,-0.278 -0.571 0.295,-0.276 -0.550 0.193,-0.282 -0.544 0.193,-0.288 -0.538 0.193,-0.295 -0.532 0.193,-0.315 -0.533 0.295,-0.281 -0.557 0.244,-0.287 -0.550 0.244,-0.294 -0.543 0.244,-0.301 -0.537 0.244]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,1,3,2,-1,3,4,2,-1,5,6,4,-1,4,6,2,-1,5,7,6,-1,7,8,6,-1,8,9,6,-1]
coord Coordinate { point [-0.315 -0.533 0.295,-0.315 -0.472 0.295,-0.279 -0.515 0.039,-0.315 -0.276 0.295,-0.315 -0.098 0.295,-0.315 0.098 0.295,-0.279 0.515 0.039,-0.315 0.276 0.295,-0.315 0.472 0.295,-0.315 0.533 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.278 0.571 0.295,0.315 0.533 0.354,0.315 0.533 0.295,0.278 0.571 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.278 0.571 0.354,0.273 0.561 0.354,0.278 0.571 0.354,-0.273 0.561 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.315 0.533 0.295,-0.278 0.571 0.354,-0.278 0.571 0.295,-0.315 0.533 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.315 0.533 0.354,0.315 0.472 0.354,0.315 0.533 0.295,0.315 0.472 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.315 -0.472 0.354,0.315 -0.533 0.354,0.315 -0.472 0.295,0.315 -0.533 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.315 0.276 0.295,0.335 0.472 0.295,0.335 0.276 0.295,0.315 0.472 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.315 -0.472 0.295,0.335 -0.276 0.295,0.335 -0.472 0.295,0.315 -0.276 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.315 0.276 0.354,0.315 -0.276 0.354,0.315 0.276 0.295,0.315 -0.276 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.315 -0.533 0.295,0.278 -0.571 0.354,0.278 -0.571 0.295,0.315 -0.533 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.278 -0.571 0.295,-0.278 -0.571 0.354,-0.278 -0.571 0.295,0.278 -0.571 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.278 -0.571 0.295,-0.315 -0.533 0.354,-0.315 -0.533 0.295,-0.278 -0.571 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.315 -0.533 0.354,-0.315 -0.472 0.354,-0.315 -0.533 0.295,-0.315 -0.472 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.315 0.472 0.354,-0.315 0.533 0.354,-0.315 0.472 0.295,-0.315 0.533 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.315 -0.276 0.295,-0.335 -0.472 0.295,-0.335 -0.276 0.295,-0.315 -0.472 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.315 0.472 0.295,-0.335 0.276 0.295,-0.335 0.472 0.295,-0.315 0.276 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.315 -0.276 0.354,-0.315 -0.098 0.354,-0.315 -0.276 0.295,-0.315 -0.098 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.315 0.098 0.354,-0.315 0.276 0.354,-0.315 0.098 0.295,-0.315 0.276 0.295]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.315 0.098 0.295,-0.335 -0.098 0.295,-0.335 0.098 0.295,-0.315 -0.098 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.278 0.571 0.354,0.305 0.529 0.354,0.315 0.533 0.354,0.273 0.561 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,4,0,-1,0,4,1,-1,2,5,0,-1,3,6,4,-1,2,7,5,-1,1,7,2,-1,4,8,1,-1,1,8,7,-1,0,9,10,-1,5,9,0,-1,4,11,8,-1,3,11,6,-1,6,11,4,-1,7,12,5,-1,5,12,9,-1,8,13,7,-1,7,13,12,-1,9,14,10,-1,15,16,3,-1,3,16,11,-1,11,16,8,-1,8,16,13,-1,14,17,10,-1,12,17,9,-1,9,17,14,-1,10,18,15,-1,13,18,12,-1,17,18,10,-1,12,18,17,-1,18,19,15,-1,15,19,16,-1,13,19,18,-1,16,19,13,-1]
coord Coordinate { point [-0.273 0.561 0.354,-0.159 0.547 0.457,-0.161 0.554 0.406,-0.255 0.525 0.610,-0.157 0.539 0.508,-0.054 0.554 0.406,-0.155 0.532 0.559,-0.053 0.547 0.457,-0.052 0.539 0.508,0.054 0.554 0.406,0.273 0.561 0.354,-0.052 0.532 0.559,0.053 0.547 0.457,0.052 0.539 0.508,0.161 0.554 0.406,0.255 0.525 0.610,0.052 0.532 0.559,0.159 0.547 0.457,0.157 0.539 0.508,0.155 0.532 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.315 0.533 0.354,-0.273 0.561 0.354,-0.278 0.571 0.354,-0.305 0.529 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.305 0.529 0.354,0.305 0.472 0.354,0.315 0.533 0.354,0.315 0.472 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1,30,31,28,-1,28,31,29,-1]
coord Coordinate { point [0.551 0.472 0.000,0.472 0.472 0.059,0.551 0.472 0.059,0.472 0.472 0.000,0.447 0.472 0.003,0.462 0.472 0.060,0.423 0.472 0.013,0.453 0.472 0.064,0.403 0.472 0.029,0.445 0.472 0.071,0.387 0.472 0.049,0.438 0.472 0.079,0.377 0.472 0.073,0.434 0.472 0.088,0.374 0.472 0.098,0.433 0.472 0.098,0.374 0.472 0.256,0.433 0.472 0.256,0.373 0.472 0.266,0.430 0.472 0.281,0.369 0.472 0.276,0.420 0.472 0.305,0.362 0.472 0.284,0.404 0.472 0.326,0.354 0.472 0.290,0.384 0.472 0.341,0.345 0.472 0.294,0.360 0.472 0.351,0.335 0.472 0.295,0.335 0.472 0.354,0.315 0.472 0.295,0.315 0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,6,9,-1,8,7,6,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1,30,31,29,-1,30,29,28,-1]
coord Coordinate { point [0.472 -0.472 0.059,0.551 -0.472 0.000,0.551 -0.472 0.059,0.472 -0.472 0.000,0.462 -0.472 0.060,0.447 -0.472 0.003,0.453 -0.472 0.064,0.423 -0.472 0.013,0.403 -0.472 0.029,0.445 -0.472 0.071,0.387 -0.472 0.049,0.438 -0.472 0.079,0.377 -0.472 0.073,0.434 -0.472 0.088,0.374 -0.472 0.098,0.433 -0.472 0.098,0.374 -0.472 0.256,0.433 -0.472 0.256,0.373 -0.472 0.266,0.430 -0.472 0.281,0.369 -0.472 0.276,0.420 -0.472 0.305,0.362 -0.472 0.284,0.404 -0.472 0.326,0.384 -0.472 0.341,0.354 -0.472 0.290,0.360 -0.472 0.351,0.345 -0.472 0.294,0.335 -0.472 0.354,0.335 -0.472 0.295,0.315 -0.472 0.354,0.315 -0.472 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [0.305 -0.472 0.354,0.315 -0.533 0.354,0.315 -0.472 0.354,0.305 -0.529 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.335 0.472 0.295,0.345 0.472 0.294,0.335 0.276 0.295,0.345 0.276 0.294,0.354 0.472 0.290,0.354 0.276 0.290,0.362 0.472 0.284,0.362 0.276 0.284,0.369 0.472 0.276,0.369 0.276 0.276,0.373 0.472 0.266,0.373 0.276 0.266,0.374 0.472 0.256,0.374 0.276 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,6,9,-1,8,7,6,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1,30,31,29,-1,30,29,28,-1]
coord Coordinate { point [0.472 0.276 0.059,0.551 0.276 0.000,0.551 0.276 0.059,0.472 0.276 0.000,0.462 0.276 0.060,0.447 0.276 0.003,0.453 0.276 0.064,0.423 0.276 0.013,0.403 0.276 0.029,0.445 0.276 0.071,0.387 0.276 0.049,0.438 0.276 0.079,0.377 0.276 0.073,0.434 0.276 0.088,0.374 0.276 0.098,0.433 0.276 0.098,0.374 0.276 0.256,0.433 0.276 0.256,0.373 0.276 0.266,0.430 0.276 0.281,0.369 0.276 0.276,0.420 0.276 0.305,0.362 0.276 0.284,0.404 0.276 0.326,0.384 0.276 0.341,0.354 0.276 0.290,0.360 0.276 0.351,0.345 0.276 0.294,0.335 0.276 0.354,0.335 0.276 0.295,0.315 0.276 0.354,0.315 0.276 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1,30,31,28,-1,28,31,29,-1]
coord Coordinate { point [0.551 -0.276 0.000,0.472 -0.276 0.059,0.551 -0.276 0.059,0.472 -0.276 0.000,0.447 -0.276 0.003,0.462 -0.276 0.060,0.423 -0.276 0.013,0.453 -0.276 0.064,0.403 -0.276 0.029,0.445 -0.276 0.071,0.387 -0.276 0.049,0.438 -0.276 0.079,0.377 -0.276 0.073,0.434 -0.276 0.088,0.374 -0.276 0.098,0.433 -0.276 0.098,0.374 -0.276 0.256,0.433 -0.276 0.256,0.373 -0.276 0.266,0.430 -0.276 0.281,0.369 -0.276 0.276,0.420 -0.276 0.305,0.362 -0.276 0.284,0.404 -0.276 0.326,0.354 -0.276 0.290,0.384 -0.276 0.341,0.345 -0.276 0.294,0.360 -0.276 0.351,0.335 -0.276 0.295,0.335 -0.276 0.354,0.315 -0.276 0.295,0.315 -0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.335 -0.276 0.295,0.345 -0.276 0.294,0.335 -0.472 0.295,0.345 -0.472 0.294,0.354 -0.276 0.290,0.354 -0.472 0.290,0.362 -0.276 0.284,0.362 -0.472 0.284,0.369 -0.276 0.276,0.369 -0.472 0.276,0.373 -0.276 0.266,0.373 -0.472 0.266,0.374 -0.276 0.256,0.374 -0.472 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.305 0.276 0.354,0.305 -0.276 0.354,0.315 0.276 0.354,0.315 -0.276 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.315 -0.533 0.354,0.273 -0.561 0.354,0.278 -0.571 0.354,0.305 -0.529 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [0.278 -0.571 0.354,-0.273 -0.561 0.354,-0.278 -0.571 0.354,0.273 -0.561 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1]
coord Coordinate { point [-0.278 -0.571 0.354,-0.305 -0.529 0.354,-0.315 -0.533 0.354,-0.273 -0.561 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.305 -0.529 0.354,-0.305 -0.472 0.354,-0.315 -0.533 0.354,-0.315 -0.472 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1,30,31,28,-1,28,31,29,-1]
coord Coordinate { point [-0.551 -0.472 0.000,-0.472 -0.472 0.059,-0.551 -0.472 0.059,-0.472 -0.472 0.000,-0.447 -0.472 0.003,-0.462 -0.472 0.060,-0.423 -0.472 0.013,-0.453 -0.472 0.064,-0.403 -0.472 0.029,-0.445 -0.472 0.071,-0.387 -0.472 0.049,-0.438 -0.472 0.079,-0.377 -0.472 0.073,-0.434 -0.472 0.088,-0.374 -0.472 0.098,-0.433 -0.472 0.098,-0.374 -0.472 0.256,-0.433 -0.472 0.256,-0.373 -0.472 0.266,-0.430 -0.472 0.281,-0.369 -0.472 0.276,-0.420 -0.472 0.305,-0.362 -0.472 0.284,-0.404 -0.472 0.326,-0.354 -0.472 0.290,-0.384 -0.472 0.341,-0.345 -0.472 0.294,-0.360 -0.472 0.351,-0.335 -0.472 0.295,-0.335 -0.472 0.354,-0.315 -0.472 0.295,-0.315 -0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,9,7,-1,8,7,6,-1,10,8,11,-1,10,9,8,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1,30,31,29,-1,30,29,28,-1]
coord Coordinate { point [-0.472 0.472 0.059,-0.551 0.472 0.000,-0.551 0.472 0.059,-0.472 0.472 0.000,-0.462 0.472 0.060,-0.447 0.472 0.003,-0.453 0.472 0.064,-0.423 0.472 0.013,-0.445 0.472 0.071,-0.403 0.472 0.029,-0.387 0.472 0.049,-0.438 0.472 0.079,-0.377 0.472 0.073,-0.434 0.472 0.088,-0.374 0.472 0.098,-0.433 0.472 0.098,-0.374 0.472 0.256,-0.433 0.472 0.256,-0.373 0.472 0.266,-0.430 0.472 0.281,-0.369 0.472 0.276,-0.420 0.472 0.305,-0.362 0.472 0.284,-0.404 0.472 0.326,-0.384 0.472 0.341,-0.354 0.472 0.290,-0.360 0.472 0.351,-0.345 0.472 0.294,-0.335 0.472 0.354,-0.335 0.472 0.295,-0.315 0.472 0.354,-0.315 0.472 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [-0.305 0.472 0.354,-0.315 0.533 0.354,-0.315 0.472 0.354,-0.305 0.529 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.335 -0.472 0.295,-0.345 -0.472 0.294,-0.335 -0.276 0.295,-0.345 -0.276 0.294,-0.354 -0.472 0.290,-0.354 -0.276 0.290,-0.362 -0.472 0.284,-0.362 -0.276 0.284,-0.369 -0.472 0.276,-0.369 -0.276 0.276,-0.373 -0.472 0.266,-0.373 -0.276 0.266,-0.374 -0.472 0.256,-0.374 -0.276 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,9,7,-1,8,7,6,-1,10,8,11,-1,10,9,8,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1,30,31,29,-1,30,29,28,-1]
coord Coordinate { point [-0.472 -0.276 0.059,-0.551 -0.276 0.000,-0.551 -0.276 0.059,-0.472 -0.276 0.000,-0.462 -0.276 0.060,-0.447 -0.276 0.003,-0.453 -0.276 0.064,-0.423 -0.276 0.013,-0.445 -0.276 0.071,-0.403 -0.276 0.029,-0.387 -0.276 0.049,-0.438 -0.276 0.079,-0.377 -0.276 0.073,-0.434 -0.276 0.088,-0.374 -0.276 0.098,-0.433 -0.276 0.098,-0.374 -0.276 0.256,-0.433 -0.276 0.256,-0.373 -0.276 0.266,-0.430 -0.276 0.281,-0.369 -0.276 0.276,-0.420 -0.276 0.305,-0.362 -0.276 0.284,-0.404 -0.276 0.326,-0.384 -0.276 0.341,-0.354 -0.276 0.290,-0.360 -0.276 0.351,-0.345 -0.276 0.294,-0.335 -0.276 0.354,-0.335 -0.276 0.295,-0.315 -0.276 0.354,-0.315 -0.276 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,8,9,6,-1,6,9,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1,30,31,28,-1,28,31,29,-1]
coord Coordinate { point [-0.551 0.276 0.000,-0.472 0.276 0.059,-0.551 0.276 0.059,-0.472 0.276 0.000,-0.447 0.276 0.003,-0.462 0.276 0.060,-0.423 0.276 0.013,-0.453 0.276 0.064,-0.403 0.276 0.029,-0.445 0.276 0.071,-0.387 0.276 0.049,-0.438 0.276 0.079,-0.377 0.276 0.073,-0.434 0.276 0.088,-0.374 0.276 0.098,-0.433 0.276 0.098,-0.374 0.276 0.256,-0.433 0.276 0.256,-0.373 0.276 0.266,-0.430 0.276 0.281,-0.369 0.276 0.276,-0.420 0.276 0.305,-0.362 0.276 0.284,-0.404 0.276 0.326,-0.354 0.276 0.290,-0.384 0.276 0.341,-0.345 0.276 0.294,-0.360 0.276 0.351,-0.335 0.276 0.295,-0.335 0.276 0.354,-0.315 0.276 0.295,-0.315 0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.335 0.276 0.295,-0.345 0.276 0.294,-0.335 0.472 0.295,-0.345 0.472 0.294,-0.354 0.276 0.290,-0.354 0.472 0.290,-0.362 0.276 0.284,-0.362 0.472 0.284,-0.369 0.276 0.276,-0.369 0.472 0.276,-0.373 0.276 0.266,-0.373 0.472 0.266,-0.374 0.276 0.256,-0.374 0.472 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.305 -0.276 0.354,-0.305 -0.098 0.354,-0.315 -0.276 0.354,-0.315 -0.098 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,5,3,-1,3,5,1,-1,6,7,4,-1,4,7,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1,15,16,17,-1,14,16,15,-1,17,18,19,-1,16,18,17,-1,19,20,21,-1,18,20,19,-1,21,22,23,-1,20,22,21,-1,24,25,22,-1,22,25,23,-1,26,27,24,-1,24,27,25,-1,28,29,26,-1,26,29,27,-1,30,31,28,-1,28,31,29,-1]
coord Coordinate { point [-0.551 -0.098 0.000,-0.472 -0.098 0.059,-0.551 -0.098 0.059,-0.472 -0.098 0.000,-0.447 -0.098 0.003,-0.462 -0.098 0.060,-0.423 -0.098 0.013,-0.453 -0.098 0.064,-0.403 -0.098 0.029,-0.445 -0.098 0.071,-0.387 -0.098 0.049,-0.438 -0.098 0.079,-0.377 -0.098 0.073,-0.434 -0.098 0.088,-0.374 -0.098 0.098,-0.433 -0.098 0.098,-0.374 -0.098 0.256,-0.433 -0.098 0.256,-0.373 -0.098 0.266,-0.430 -0.098 0.281,-0.369 -0.098 0.276,-0.420 -0.098 0.305,-0.362 -0.098 0.284,-0.404 -0.098 0.326,-0.354 -0.098 0.290,-0.384 -0.098 0.341,-0.345 -0.098 0.294,-0.360 -0.098 0.351,-0.335 -0.098 0.295,-0.335 -0.098 0.354,-0.315 -0.098 0.295,-0.315 -0.098 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,5,3,-1,4,3,0,-1,6,7,5,-1,6,5,4,-1,8,6,9,-1,8,7,6,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1,16,15,17,-1,16,14,15,-1,18,17,19,-1,18,16,17,-1,20,19,21,-1,20,18,19,-1,22,21,23,-1,22,20,21,-1,24,25,22,-1,24,22,23,-1,26,27,25,-1,26,25,24,-1,28,29,27,-1,28,27,26,-1,30,31,29,-1,30,29,28,-1]
coord Coordinate { point [-0.472 0.098 0.059,-0.551 0.098 0.000,-0.551 0.098 0.059,-0.472 0.098 0.000,-0.462 0.098 0.060,-0.447 0.098 0.003,-0.453 0.098 0.064,-0.423 0.098 0.013,-0.403 0.098 0.029,-0.445 0.098 0.071,-0.387 0.098 0.049,-0.438 0.098 0.079,-0.377 0.098 0.073,-0.434 0.098 0.088,-0.374 0.098 0.098,-0.433 0.098 0.098,-0.374 0.098 0.256,-0.433 0.098 0.256,-0.373 0.098 0.266,-0.430 0.098 0.281,-0.369 0.098 0.276,-0.420 0.098 0.305,-0.362 0.098 0.284,-0.404 0.098 0.326,-0.384 0.098 0.341,-0.354 0.098 0.290,-0.360 0.098 0.351,-0.345 0.098 0.294,-0.335 0.098 0.354,-0.335 0.098 0.295,-0.315 0.098 0.354,-0.315 0.098 0.295]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1]
coord Coordinate { point [-0.305 0.098 0.354,-0.315 0.276 0.354,-0.315 0.098 0.354,-0.305 0.276 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.335 -0.098 0.295,-0.345 -0.098 0.294,-0.335 0.098 0.295,-0.345 0.098 0.294,-0.354 -0.098 0.290,-0.354 0.098 0.290,-0.362 -0.098 0.284,-0.362 0.098 0.284,-0.369 -0.098 0.276,-0.369 0.098 0.276,-0.373 -0.098 0.266,-0.373 0.098 0.266,-0.374 -0.098 0.256,-0.374 0.098 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.275 0.548 0.406,0.281 0.542 0.406,0.273 0.561 0.354,0.286 0.537 0.406,0.305 0.529 0.354,0.292 0.531 0.406,0.271 0.542 0.457,0.276 0.537 0.457,0.281 0.531 0.457,0.286 0.526 0.457,0.255 0.525 0.610,0.266 0.535 0.508,0.271 0.531 0.508,0.275 0.526 0.508,0.279 0.522 0.508,0.269 0.511 0.610,0.262 0.529 0.559,0.265 0.525 0.559,0.269 0.521 0.559,0.273 0.518 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1,4,5,6,-1,4,7,5,-1,4,3,7,-1,4,0,3,-1]
coord Coordinate { point [0.269 0.511 0.610,0.255 0.525 0.610,-0.255 0.525 0.610,-0.269 0.511 0.610,0.269 -0.511 0.610,-0.255 -0.525 0.610,0.255 -0.525 0.610,-0.269 -0.511 0.610]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.292 0.531 0.406,-0.286 0.537 0.406,-0.305 0.529 0.354,-0.281 0.542 0.406,-0.273 0.561 0.354,-0.275 0.548 0.406,-0.286 0.526 0.457,-0.281 0.531 0.457,-0.276 0.537 0.457,-0.271 0.542 0.457,-0.269 0.511 0.610,-0.279 0.522 0.508,-0.275 0.526 0.508,-0.271 0.531 0.508,-0.266 0.535 0.508,-0.255 0.525 0.610,-0.273 0.518 0.559,-0.269 0.521 0.559,-0.265 0.525 0.559,-0.262 0.529 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,5,4,6,-1,6,4,7,-1,1,4,3,-1]
coord Coordinate { point [0.305 0.529 0.354,0.269 0.511 0.610,0.305 0.472 0.354,0.305 0.276 0.354,0.269 -0.511 0.610,0.305 -0.276 0.354,0.305 -0.472 0.354,0.305 -0.529 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1]
coord Coordinate { point [0.335 0.276 0.354,0.315 0.472 0.354,0.315 0.276 0.354,0.335 0.472 0.354,0.305 0.472 0.354,0.305 0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.433 0.472 0.256,0.430 0.472 0.281,0.433 0.276 0.256,0.430 0.276 0.281,0.420 0.472 0.305,0.420 0.276 0.305,0.404 0.472 0.326,0.404 0.276 0.326,0.384 0.472 0.341,0.384 0.276 0.341,0.360 0.472 0.351,0.360 0.276 0.351,0.335 0.472 0.354,0.335 0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.433 0.472 0.098,0.433 0.472 0.256,0.433 0.276 0.098,0.433 0.276 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.472 0.472 0.059,0.462 0.472 0.060,0.472 0.276 0.059,0.462 0.276 0.060,0.453 0.472 0.064,0.453 0.276 0.064,0.445 0.472 0.071,0.445 0.276 0.071,0.438 0.472 0.079,0.438 0.276 0.079,0.434 0.472 0.088,0.434 0.276 0.088,0.433 0.472 0.098,0.433 0.276 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.551 0.472 0.059,0.472 0.472 0.059,0.551 0.276 0.059,0.472 0.276 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.551 0.472 0.000,0.551 0.472 0.059,0.551 0.276 0.000,0.551 0.276 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.472 0.472 0.000,0.551 0.472 0.000,0.472 0.276 0.000,0.551 0.276 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.374 0.472 0.098,0.377 0.472 0.073,0.374 0.276 0.098,0.377 0.276 0.073,0.387 0.472 0.049,0.387 0.276 0.049,0.403 0.472 0.029,0.403 0.276 0.029,0.423 0.472 0.013,0.423 0.276 0.013,0.447 0.472 0.003,0.447 0.276 0.003,0.472 0.472 0.000,0.472 0.276 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.374 0.472 0.256,0.374 0.472 0.098,0.374 0.276 0.256,0.374 0.276 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1]
coord Coordinate { point [0.335 -0.472 0.354,0.315 -0.276 0.354,0.315 -0.472 0.354,0.335 -0.276 0.354,0.305 -0.276 0.354,0.305 -0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.433 -0.276 0.256,0.430 -0.276 0.281,0.433 -0.472 0.256,0.430 -0.472 0.281,0.420 -0.276 0.305,0.420 -0.472 0.305,0.404 -0.276 0.326,0.404 -0.472 0.326,0.384 -0.276 0.341,0.384 -0.472 0.341,0.360 -0.276 0.351,0.360 -0.472 0.351,0.335 -0.276 0.354,0.335 -0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.433 -0.276 0.098,0.433 -0.276 0.256,0.433 -0.472 0.098,0.433 -0.472 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.472 -0.276 0.059,0.462 -0.276 0.060,0.472 -0.472 0.059,0.462 -0.472 0.060,0.453 -0.276 0.064,0.453 -0.472 0.064,0.445 -0.276 0.071,0.445 -0.472 0.071,0.438 -0.276 0.079,0.438 -0.472 0.079,0.434 -0.276 0.088,0.434 -0.472 0.088,0.433 -0.276 0.098,0.433 -0.472 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.551 -0.276 0.059,0.472 -0.276 0.059,0.551 -0.472 0.059,0.472 -0.472 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.551 -0.276 0.000,0.551 -0.276 0.059,0.551 -0.472 0.000,0.551 -0.472 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.472 -0.276 0.000,0.551 -0.276 0.000,0.472 -0.472 0.000,0.551 -0.472 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [0.374 -0.276 0.098,0.377 -0.276 0.073,0.374 -0.472 0.098,0.377 -0.472 0.073,0.387 -0.276 0.049,0.387 -0.472 0.049,0.403 -0.276 0.029,0.403 -0.472 0.029,0.423 -0.276 0.013,0.423 -0.472 0.013,0.447 -0.276 0.003,0.447 -0.472 0.003,0.472 -0.276 0.000,0.472 -0.472 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [0.374 -0.276 0.256,0.374 -0.276 0.098,0.374 -0.472 0.256,0.374 -0.472 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [0.292 -0.531 0.406,0.286 -0.537 0.406,0.305 -0.529 0.354,0.281 -0.542 0.406,0.273 -0.561 0.354,0.275 -0.548 0.406,0.286 -0.526 0.457,0.281 -0.531 0.457,0.276 -0.537 0.457,0.271 -0.542 0.457,0.269 -0.511 0.610,0.279 -0.522 0.508,0.275 -0.526 0.508,0.271 -0.531 0.508,0.266 -0.535 0.508,0.255 -0.525 0.610,0.273 -0.518 0.559,0.269 -0.521 0.559,0.265 -0.525 0.559,0.262 -0.529 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,4,0,-1,0,4,1,-1,2,5,0,-1,3,6,4,-1,2,7,5,-1,1,7,2,-1,4,8,1,-1,1,8,7,-1,0,9,10,-1,5,9,0,-1,4,11,8,-1,3,11,6,-1,6,11,4,-1,7,12,5,-1,5,12,9,-1,8,13,7,-1,7,13,12,-1,9,14,10,-1,15,16,3,-1,3,16,11,-1,11,16,8,-1,8,16,13,-1,14,17,10,-1,12,17,9,-1,9,17,14,-1,10,18,15,-1,13,18,12,-1,17,18,10,-1,12,18,17,-1,18,19,15,-1,15,19,16,-1,13,19,18,-1,16,19,13,-1]
coord Coordinate { point [0.273 -0.561 0.354,0.159 -0.547 0.457,0.161 -0.554 0.406,0.255 -0.525 0.610,0.157 -0.539 0.508,0.054 -0.554 0.406,0.155 -0.532 0.559,0.053 -0.547 0.457,0.052 -0.539 0.508,-0.054 -0.554 0.406,-0.273 -0.561 0.354,0.052 -0.532 0.559,-0.053 -0.547 0.457,-0.052 -0.539 0.508,-0.161 -0.554 0.406,-0.255 -0.525 0.610,-0.052 -0.532 0.559,-0.159 -0.547 0.457,-0.157 -0.539 0.508,-0.155 -0.532 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,3,4,-1,1,3,2,-1,3,5,4,-1,2,6,0,-1,6,7,0,-1,0,7,1,-1,1,8,3,-1,7,8,1,-1,5,9,4,-1,3,9,5,-1,8,9,3,-1,10,11,2,-1,2,11,6,-1,11,12,6,-1,6,12,7,-1,7,13,8,-1,12,13,7,-1,4,14,15,-1,9,14,4,-1,8,14,9,-1,13,14,8,-1,10,16,11,-1,11,17,12,-1,10,17,16,-1,16,17,11,-1,15,18,10,-1,12,18,13,-1,10,18,17,-1,17,18,12,-1,14,19,15,-1,13,19,14,-1,15,19,18,-1,18,19,13,-1]
coord Coordinate { point [-0.275 -0.548 0.406,-0.281 -0.542 0.406,-0.273 -0.561 0.354,-0.286 -0.537 0.406,-0.305 -0.529 0.354,-0.292 -0.531 0.406,-0.271 -0.542 0.457,-0.276 -0.537 0.457,-0.281 -0.531 0.457,-0.286 -0.526 0.457,-0.255 -0.525 0.610,-0.266 -0.535 0.508,-0.271 -0.531 0.508,-0.275 -0.526 0.508,-0.279 -0.522 0.508,-0.269 -0.511 0.610,-0.262 -0.529 0.559,-0.265 -0.525 0.559,-0.269 -0.521 0.559,-0.273 -0.518 0.559]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,1,4,3,-1,4,5,6,-1,7,5,8,-1,6,5,9,-1,9,5,7,-1,1,5,4,-1]
coord Coordinate { point [-0.305 -0.529 0.354,-0.269 -0.511 0.610,-0.305 -0.472 0.354,-0.305 -0.276 0.354,-0.305 -0.098 0.354,-0.269 0.511 0.610,-0.305 0.098 0.354,-0.305 0.472 0.354,-0.305 0.529 0.354,-0.305 0.276 0.354]
}}
appearance Appearance{material USE IC-BODY-EPOXY-04 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1]
coord Coordinate { point [-0.335 -0.276 0.354,-0.315 -0.472 0.354,-0.315 -0.276 0.354,-0.335 -0.472 0.354,-0.305 -0.472 0.354,-0.305 -0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.433 -0.472 0.256,-0.430 -0.472 0.281,-0.433 -0.276 0.256,-0.430 -0.276 0.281,-0.420 -0.472 0.305,-0.420 -0.276 0.305,-0.404 -0.472 0.326,-0.404 -0.276 0.326,-0.384 -0.472 0.341,-0.384 -0.276 0.341,-0.360 -0.472 0.351,-0.360 -0.276 0.351,-0.335 -0.472 0.354,-0.335 -0.276 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.433 -0.472 0.098,-0.433 -0.472 0.256,-0.433 -0.276 0.098,-0.433 -0.276 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.472 -0.472 0.059,-0.462 -0.472 0.060,-0.472 -0.276 0.059,-0.462 -0.276 0.060,-0.453 -0.472 0.064,-0.453 -0.276 0.064,-0.445 -0.472 0.071,-0.445 -0.276 0.071,-0.438 -0.472 0.079,-0.438 -0.276 0.079,-0.434 -0.472 0.088,-0.434 -0.276 0.088,-0.433 -0.472 0.098,-0.433 -0.276 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 -0.472 0.059,-0.472 -0.472 0.059,-0.551 -0.276 0.059,-0.472 -0.276 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 -0.472 0.000,-0.551 -0.472 0.059,-0.551 -0.276 0.000,-0.551 -0.276 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.472 -0.472 0.000,-0.551 -0.472 0.000,-0.472 -0.276 0.000,-0.551 -0.276 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.374 -0.472 0.098,-0.377 -0.472 0.073,-0.374 -0.276 0.098,-0.377 -0.276 0.073,-0.387 -0.472 0.049,-0.387 -0.276 0.049,-0.403 -0.472 0.029,-0.403 -0.276 0.029,-0.423 -0.472 0.013,-0.423 -0.276 0.013,-0.447 -0.472 0.003,-0.447 -0.276 0.003,-0.472 -0.472 0.000,-0.472 -0.276 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.374 -0.472 0.256,-0.374 -0.472 0.098,-0.374 -0.276 0.256,-0.374 -0.276 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1]
coord Coordinate { point [-0.335 0.472 0.354,-0.315 0.276 0.354,-0.315 0.472 0.354,-0.335 0.276 0.354,-0.305 0.276 0.354,-0.305 0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.433 0.276 0.256,-0.430 0.276 0.281,-0.433 0.472 0.256,-0.430 0.472 0.281,-0.420 0.276 0.305,-0.420 0.472 0.305,-0.404 0.276 0.326,-0.404 0.472 0.326,-0.384 0.276 0.341,-0.384 0.472 0.341,-0.360 0.276 0.351,-0.360 0.472 0.351,-0.335 0.276 0.354,-0.335 0.472 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.433 0.276 0.098,-0.433 0.276 0.256,-0.433 0.472 0.098,-0.433 0.472 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.472 0.276 0.059,-0.462 0.276 0.060,-0.472 0.472 0.059,-0.462 0.472 0.060,-0.453 0.276 0.064,-0.453 0.472 0.064,-0.445 0.276 0.071,-0.445 0.472 0.071,-0.438 0.276 0.079,-0.438 0.472 0.079,-0.434 0.276 0.088,-0.434 0.472 0.088,-0.433 0.276 0.098,-0.433 0.472 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 0.276 0.059,-0.472 0.276 0.059,-0.551 0.472 0.059,-0.472 0.472 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 0.276 0.000,-0.551 0.276 0.059,-0.551 0.472 0.000,-0.551 0.472 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.472 0.276 0.000,-0.551 0.276 0.000,-0.472 0.472 0.000,-0.551 0.472 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.374 0.276 0.098,-0.377 0.276 0.073,-0.374 0.472 0.098,-0.377 0.472 0.073,-0.387 0.276 0.049,-0.387 0.472 0.049,-0.403 0.276 0.029,-0.403 0.472 0.029,-0.423 0.276 0.013,-0.423 0.472 0.013,-0.447 0.276 0.003,-0.447 0.472 0.003,-0.472 0.276 0.000,-0.472 0.472 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.374 0.276 0.256,-0.374 0.276 0.098,-0.374 0.472 0.256,-0.374 0.472 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1]
coord Coordinate { point [-0.335 0.098 0.354,-0.315 -0.098 0.354,-0.315 0.098 0.354,-0.335 -0.098 0.354,-0.305 -0.098 0.354,-0.305 0.098 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.433 -0.098 0.256,-0.430 -0.098 0.281,-0.433 0.098 0.256,-0.430 0.098 0.281,-0.420 -0.098 0.305,-0.420 0.098 0.305,-0.404 -0.098 0.326,-0.404 0.098 0.326,-0.384 -0.098 0.341,-0.384 0.098 0.341,-0.360 -0.098 0.351,-0.360 0.098 0.351,-0.335 -0.098 0.354,-0.335 0.098 0.354]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.433 -0.098 0.098,-0.433 -0.098 0.256,-0.433 0.098 0.098,-0.433 0.098 0.256]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.472 -0.098 0.059,-0.462 -0.098 0.060,-0.472 0.098 0.059,-0.462 0.098 0.060,-0.453 -0.098 0.064,-0.453 0.098 0.064,-0.445 -0.098 0.071,-0.445 0.098 0.071,-0.438 -0.098 0.079,-0.438 0.098 0.079,-0.434 -0.098 0.088,-0.434 0.098 0.088,-0.433 -0.098 0.098,-0.433 0.098 0.098]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 -0.098 0.059,-0.472 -0.098 0.059,-0.551 0.098 0.059,-0.472 0.098 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.551 -0.098 0.000,-0.551 -0.098 0.059,-0.551 0.098 0.000,-0.551 0.098 0.059]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.472 -0.098 0.000,-0.551 -0.098 0.000,-0.472 0.098 0.000,-0.551 0.098 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,3,4,5,-1,1,4,3,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1]
coord Coordinate { point [-0.374 -0.098 0.098,-0.377 -0.098 0.073,-0.374 0.098 0.098,-0.377 0.098 0.073,-0.387 -0.098 0.049,-0.387 0.098 0.049,-0.403 -0.098 0.029,-0.403 0.098 0.029,-0.423 -0.098 0.013,-0.423 0.098 0.013,-0.447 -0.098 0.003,-0.447 0.098 0.003,-0.472 -0.098 0.000,-0.472 0.098 0.000]
}}
appearance Appearance{material USE PIN-01 }
}
Shape { geometry IndexedFaceSet
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
coord Coordinate { point [-0.374 -0.098 0.256,-0.374 -0.098 0.098,-0.374 0.098 0.256,-0.374 0.098 0.098]
}}
appearance Appearance{material USE PIN-01 }
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,16 @@
[reference]
arrangement = Matrix
[reference.linear]
step_x = 11.43
step_y = 11
nth_rotate = 1
nth_rotate_angle = 0
[reference.matrix]
step_x = 11.43
step_y = 11.4
columns = 8
nth_rotate = 1
nth_rotate_angle = 0

View file

@ -0,0 +1,19 @@
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 647:Plugin executed on: 'win32'
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 648:Plugin executed with python version: '3.11.5 (main, Nov 3 2024, 06:58:22) [MSC v.1939 64 bit (AMD64)]'
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 649:KiCad build version: 8.0.7
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 650:Plugin version: 3.0.0
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 651:Frame repr: <wx._core.Frame object at 0x00000127B37F6560>
01-12 21:27:47 com_github_MitjaNemec_PlaceFootprints.place_footprints 121:getting a list of all footprints on board
01-12 21:27:48 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 830:Reference designator is: D
01-12 21:27:48 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 831:Reference number is: 1
01-12 21:27:48 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 863:Sorted and filtered list:
['D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'D13', 'D14', 'D15', 'D16', 'D17', 'D18', 'D19', 'D20', 'D21', 'D22', 'D23', 'D24', 'D25', 'D26', 'D27', 'D28', 'D29', 'D30', 'D31', 'D32', 'D33', 'D34', 'D35', 'D36', 'D37', 'D38', 'D39', 'D40', 'D41', 'D42', 'D43', 'D44', 'D45', 'D46', 'D47', 'D48', 'D49', 'D50', 'D51', 'D52', 'D53', 'D54', 'D55', 'D56', 'D57', 'D58', 'D59', 'D60', 'D61', 'D62', 'D63', 'D64', 'D65', 'D66', 'D67', 'D68', 'D69', 'D70', 'D71', 'D72', 'D73', 'D74', 'D75', 'D76', 'D77', 'D78', 'D79', 'D80', 'D81', 'D82', 'D83', 'D84', 'D85', 'D86', 'D87', 'D88', 'D89', 'D90', 'D91', 'D92', 'D93', 'D94', 'D95', 'D96', 'D97', 'D98', 'D99', 'D100', 'D101', 'D102', 'D103', 'D104', 'D105', 'D106', 'D107', 'D108', 'D109', 'D110', 'D111', 'D112', 'D113', 'D114', 'D115', 'D116', 'D117', 'D118', 'D119', 'D120', 'D121', 'D122', 'D123', 'D124', 'D125', 'D126', 'D127', 'D128']
01-12 21:27:48 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 359:wx.Colour(240, 240, 240, 255)
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 490:'11.43'
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 549:Preparing config for reference matrix
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 556:Saving config file
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 558:Saved the config file
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 901:Footprints to place:
['D1', 'D66', 'D67', 'D68', 'D69', 'D70', 'D71', 'D72', 'D73', 'D74', 'D75', 'D76', 'D77', 'D78', 'D79', 'D80', 'D81', 'D82', 'D83', 'D84', 'D85', 'D86', 'D87', 'D88', 'D89', 'D90', 'D91', 'D92', 'D93', 'D94', 'D95', 'D96', 'D97', 'D98', 'D99', 'D100', 'D101', 'D102', 'D103', 'D104', 'D105', 'D106', 'D107', 'D108', 'D109', 'D110', 'D111', 'D112', 'D113', 'D114', 'D115', 'D116', 'D117', 'D118', 'D119', 'D120', 'D121', 'D122', 'D123', 'D124', 'D125', 'D126', 'D127', 'D128']
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.place_footprints 398:Starting placing with matrix layout
01-12 21:28:05 com_github_MitjaNemec_PlaceFootprints.action_place_footprints 971:Placing complete

View file

@ -0,0 +1,483 @@
(footprint "SW_Push_1P1T_XKB_TS-1187A"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu")
(descr "SMD Tactile Switch, http://www.helloxkb.com/public/images/pdf/TS-1187A-X-X-X.pdf")
(tags "SPST Tactile Switch")
(property "Reference" "REF**"
(at 0 -3.75 0)
(layer "F.SilkS")
(uuid "0fc88032-8838-49cb-b728-e0b2251840d2")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "SW_Push_1P1T_XKB_TS-1187A"
(at 0 3.75 0)
(layer "F.Fab")
(uuid "098ec8e4-6659-4ce6-b4c3-ae561d210993")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "9fb4ec74-bc0d-43d4-b9ef-86a1b02ead6c")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "d5ab142f-4d77-4d41-aee8-c936c330a9ba")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "03ae8778-da12-4fca-8e8d-35cbd6b74e6e")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start -2.75 -1)
(end -2.75 1)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "941ff02d-374c-492c-b70e-ea94e5596660")
)
(fp_line
(start -1.75 -2.3)
(end -1.3 -2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "b64561e2-5283-4320-ad2f-22d8d155cd2d")
)
(fp_line
(start -1.75 2.3)
(end -1.3 2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "e1617325-1227-4e2f-8e74-ec6ac3cc3802")
)
(fp_line
(start -1.3 -2.75)
(end 1.3 -2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "e285da31-e958-4dfe-99c0-3b1a54db8474")
)
(fp_line
(start -1.3 2.75)
(end 1.3 2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "1cc622c8-5edd-424b-a80a-cbd632bf99a9")
)
(fp_line
(start 1.75 -2.3)
(end 1.3 -2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "ebcc5964-41c5-4aa8-954a-f8c7f6a325b4")
)
(fp_line
(start 1.75 2.3)
(end 1.3 2.75)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "5b6164bf-5fe5-4953-b766-377eb7c94d4b")
)
(fp_line
(start 2.75 -1)
(end 2.75 1)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "6060628a-c37c-4953-90a4-b75480eeecd2")
)
(fp_line
(start -3.75 -2.8)
(end 3.75 -2.8)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "5879d20c-e1c3-4e09-bb27-0e2a8f680e9b")
)
(fp_line
(start -3.75 2.8)
(end -3.75 -2.8)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "4b8bfbf1-bd2d-4d6f-9a69-04f9237976e3")
)
(fp_line
(start 3.75 -2.8)
(end 3.75 2.8)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "26ab84ce-b512-4422-bcb0-4bf52b589e44")
)
(fp_line
(start 3.75 2.8)
(end -3.75 2.8)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "48619444-ce04-48e0-b9e7-e534975f9cfb")
)
(fp_line
(start -2.9 -2.1)
(end -2.9 -1.6)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "625218e5-06ef-4466-bca2-cac51162509c")
)
(fp_line
(start -2.9 2.1)
(end -2.9 1.6)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "9dc7a01d-61ae-42fc-ab00-89bd3789f964")
)
(fp_line
(start -2.4 -1.4)
(end -1.4 -2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "77ec156c-6de3-4fc4-9def-5a14a4fa8d68")
)
(fp_line
(start -2.4 -1.25)
(end -2.4 -1.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "91424ca6-8205-41b8-b676-6e724d4e65d5")
)
(fp_line
(start -2.4 1.4)
(end -2.4 1.25)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "4ee473f8-5454-4ad8-991f-31bb98bec5a6")
)
(fp_line
(start -1.4 -2.4)
(end -1.25 -2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "ed1fe0fc-33d4-4b9c-8db4-6175f44d6fa1")
)
(fp_line
(start -1.4 2.4)
(end -2.4 1.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "c6d08a68-7636-4937-b29a-c6dd53b9cb3b")
)
(fp_line
(start -1.25 2.4)
(end -1.4 2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "a86850e5-36f8-4994-bb7d-196a374053f0")
)
(fp_line
(start 1.25 -2.4)
(end 1.4 -2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "a770d2ed-55a4-423f-ad33-b6346a1f5697")
)
(fp_line
(start 1.4 -2.4)
(end 2.4 -1.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "1687e6f5-029a-4ee9-9bfd-8418c6227eea")
)
(fp_line
(start 1.4 2.4)
(end 1.25 2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "9415a416-5986-4ca8-9cb1-381949a9b4b5")
)
(fp_line
(start 2.4 -1.4)
(end 2.4 -1.25)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "d0193ff8-b2ae-460a-8144-b2e20d1e15a0")
)
(fp_line
(start 2.4 1.25)
(end 2.4 1.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "d7bd29d5-74b7-4f1a-8161-738eb71ebc5c")
)
(fp_line
(start 2.4 1.4)
(end 1.4 2.4)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "7e4b2dc0-0824-458c-9a0c-bcbce8e92283")
)
(fp_line
(start 2.9 -2.1)
(end 2.9 -1.6)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "ceb72299-f2e9-4faf-ae6b-4807b91f49e9")
)
(fp_line
(start 2.9 2.1)
(end 2.9 1.6)
(stroke
(width 0.1)
(type solid)
)
(layer "F.Fab")
(uuid "a1b7a36f-f2f7-4ea1-aebf-892fa3c880e3")
)
(fp_circle
(center 0 0)
(end 1 0)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "d09fe098-c854-4f1a-b216-9e4782c5f368")
)
(fp_poly
(pts
(xy -1.7 -2.1) (xy -2.2 -1.6) (xy -3.25 -1.6) (xy -3.25 -2.1)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "6f05189b-050e-4df1-8cce-c345e106f690")
)
(fp_poly
(pts
(xy -1.7 2.1) (xy -2.2 1.6) (xy -3.25 1.6) (xy -3.25 2.1)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "8ea09fd2-29cd-4b39-95d0-f6b8cccaf50e")
)
(fp_poly
(pts
(xy 1.7 -2.1) (xy 2.2 -1.6) (xy 3.25 -1.6) (xy 3.25 -2.1)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "f0572845-8e71-4b9a-a23c-9946e1f5ae0f")
)
(fp_poly
(pts
(xy 1.7 2.1) (xy 2.2 1.6) (xy 3.25 1.6) (xy 3.25 2.1)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "ed4771a9-6196-4694-ad9c-6d04b1154a7b")
)
(fp_poly
(pts
(xy 0.85 -1.85) (xy 1.85 -0.85) (xy 1.85 0.85) (xy 0.85 1.85) (xy -0.85 1.85) (xy -1.85 0.85) (xy -1.85 -0.85)
(xy -0.85 -1.85)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "46819414-db13-4f18-a0be-9ad4fd5f1f26")
)
(fp_poly
(pts
(xy -1.25 -2.55) (xy 1.25 -2.55) (xy 1.25 -1.975) (xy 1.575 -1.975) (xy 1.975 -1.575) (xy 1.975 -1.25)
(xy 2.55 -1.25) (xy 2.55 1.25) (xy 1.975 1.25) (xy 1.975 1.575) (xy 1.575 1.975) (xy 1.25 1.975)
(xy 1.25 2.55) (xy -1.25 2.55) (xy -1.25 1.975) (xy -1.575 1.975) (xy -1.975 1.575) (xy -1.975 1.25)
(xy -2.55 1.25) (xy -2.55 -1.25) (xy -1.975 -1.25) (xy -1.975 -1.575) (xy -1.575 -1.975) (xy -1.25 -1.975)
)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "F.Fab")
(uuid "bc77dbbd-56d3-4c6c-aa13-ea19fc3167c2")
)
(fp_text user "${REFERENCE}"
(at 0 -3.75 0)
(layer "F.Fab")
(uuid "c6cead17-e57a-4afe-84eb-9de8c8bcf151")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd rect
(at -3 -1.875)
(size 1 0.75)
(layers "F.Cu" "F.Paste" "F.Mask")
(uuid "2fdf9f96-3bc8-4370-a497-47cf413d8eb6")
)
(pad "1" smd rect
(at 3 -1.875)
(size 1 0.75)
(layers "F.Cu" "F.Paste" "F.Mask")
(uuid "ef152499-9140-4e95-9a81-89d58a4473ba")
)
(pad "2" smd rect
(at -3 1.875)
(size 1 0.75)
(layers "F.Cu" "F.Paste" "F.Mask")
(uuid "c0f8e203-3d85-4d5e-bbf8-0a1cf32bcf1b")
)
(pad "2" smd rect
(at 3 1.875)
(size 1 0.75)
(layers "F.Cu" "F.Paste" "F.Mask")
(uuid "0320eeb2-6a91-4d2d-9032-8bc9cc0cb72d")
)
(model "${KIPRJMOD}/TS-1187A.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz 0 0 0)
)
)
)

View file

@ -0,0 +1,5 @@
(sym_lib_table
(version 7)
(lib (name "SK6812-EC20")(type "KiCad")(uri "${KIPRJMOD}/SK6812-EC20.kicad_sym")(options "")(descr ""))
(lib (name "MCU_RaspberryPi_and_Boards")(type "KiCad")(uri "${KIPRJMOD}/MCU_RaspberryPi_and_Boards.kicad_sym")(options "")(descr ""))
)