remove display board, since it never made it into the finals

This commit is contained in:
Julian Daube 2020-11-01 16:15:38 +01:00 committed by Julian Daube
parent fee54a77eb
commit 420d08dd47
19 changed files with 0 additions and 122729 deletions

View File

@ -1,9 +0,0 @@
The OLED display board
======================
======================
The Board features an attiny84a as its primary controller, which comunicates with an ssd1306 as the oled
display controller and uses its interrupt lines for the encoder.
**All datasheets can be found in the `doc/` folder.**

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -1,69 +0,0 @@
description[de] = <b>Werkstatt Design Rules --- <font size=4 color="red">BITTE LESEN!!!</font></b>\n<p>\n<p>\nDiese Design-Rules sind explizit für die Möglichkeiten der EMSP-Werkstatt eingestellt. <br>\nAlles was hier bemängelt wird, sollte nochmal überprüft und angepasst werden.\n<p><br>\n<p>\n<font color="red"><b>ACHTUNG - VOR der Abgabe beachten:</b><p></font color="red">\n<ul>\n0. Vor dem DRC immer den ERC prüfen!\n<br>\n1. Zur DRC-Prüfung & Abgabe nur die zu ätzenden Layer einblenden (Top, Bottom, Pad, Vias, Dimension, Centerdrill).\n<br>\n2. Bitte keine Beschriftungen oder ähnliches in das Layer Dimension legen. Ausschließlich die Schnittkanten der Platinen.\n<br>\n3. Isolate der Polygone wird nicht vom DRC überprüft: Bitte mindestens 0,4mm - besser 0,8mm.\n<br>\n4. Für die Bohrlöcher das ULP Drillaid (0,4mm) ausführen - das erleichtert das Bohren.\n<br>\n5. Beschriftungen setzen: Top, Bottom, 'Ersteller', 'Betreuer', Projekt, etc.\n<br>\n6. Bitte ausschließlich die zu ätzenden Layer einblenden.\n<br>\n7. Benenne die schematic- (.sch) und Board-Datei (.brd) mit Namen/Modul und Anforderungen um ( Einseitig = ES oder Doppelseitig = DS ).\n</ul>\n<p>\n<br>\n<p>\nletzte Aktualisierung: 27.05.2015 von Felix Bohn\n<p>\nErläuterungen (dazu Fenster vergrößern):\n...\n<ul>- Winkel werden auf 45° geprüft, da bei anderen Winkeln kleine Ecken entstehen - diese werden auch vom Drucker entsprechend gedruckt und hindern das Ätzbad am Fließen, so dass besonders bei feinen Bahnen ein schlechteres Ergebnis erzielt wird.<br>\n- Beschriftungen sind für die Zuordnung und für den Prozess der Platinenherstellung unverzichtbar.<br>\n- Drillaid sorgt dafür, dass die Bohrlöcher so aufgefüllt werden, dass nur noch ein kleiner Zentrierungspunkt übrig bleibt. So findet der Bohrer besser das Zentrum des Lochs. Dies ist besonders Wichtig bei Bauelementen mit mehreren Beinchen (ICs, Stecker, etc.).<br>\n- Isolate ist der Abstand des Polygons zu den Leiterbahnen und Pads. Ist dieser zu gering, entstehen beim Löten sehr schnell Kurzschlüsse, da es keine Lötstopmaske gibt.<br>\n</ul>
description[en] = <b>EAGLE Design Rules</b>\n<p>\nThe default Design Rules have been set to cover\na wide range of applications. Your particular design\nmay have different requirements, so please make the\nnecessary adjustments and save your customized\ndesign rules under a new name.
layerSetup = (1*16)
mtCopper = 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm
mtIsolate = 1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm
mdWireWire = 8mil
mdWirePad = 8mil
mdWireVia = 8mil
mdPadPad = 8mil
mdPadVia = 8mil
mdViaVia = 8mil
mdSmdPad = 8mil
mdSmdVia = 8mil
mdSmdSmd = 8mil
mdViaViaSameLayer = 8mil
mnLayersViaInSmd = 2
mdCopperDimension = 20mil
mdDrill = 8mil
mdSmdStop = 0mil
msWidth = 10mil
msDrill = 20mil
msMicroVia = 20mil
msBlindViaRatio = 0.500000
rvPadTop = 0.400000
rvPadInner = 0.400000
rvPadBottom = 0.400000
rvViaOuter = 0.400000
rvViaInner = 0.400000
rvMicroViaOuter = 0.250000
rvMicroViaInner = 0.250000
rlMinPadTop = 10mil
rlMaxPadTop = 40mil
rlMinPadInner = 10mil
rlMaxPadInner = 40mil
rlMinPadBottom = 10mil
rlMaxPadBottom = 40mil
rlMinViaOuter = 8mil
rlMaxViaOuter = 40mil
rlMinViaInner = 8mil
rlMaxViaInner = 40mil
rlMinMicroViaOuter = 4mil
rlMaxMicroViaOuter = 20mil
rlMinMicroViaInner = 4mil
rlMaxMicroViaInner = 20mil
psTop = -1
psBottom = -1
psFirst = -1
psElongationLong = 100
psElongationOffset = 100
mvStopFrame = 1.000000
mvCreamFrame = 0.000000
mlMinStopFrame = 4mil
mlMaxStopFrame = 4mil
mlMinCreamFrame = 0mil
mlMaxCreamFrame = 0mil
mlViaStopLimit = 0mil
srRoundness = 0.000000
srMinRoundness = 0mil
srMaxRoundness = 0mil
slThermalIsolate = 15mil
slThermalsForVias = 1
dpMaxLengthDifference = 10mm
dpGapFactor = 2.500000
checkGrid = 0
checkAngle = 1
checkFont = 1
checkRestrict = 1
useDiameter = 31
maxErrors = 50

File diff suppressed because it is too large Load Diff

View File

@ -1,406 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.2.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="yes"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="yes"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="yes"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="yes"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="yes"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="yes"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="yes"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="yes"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="yes"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="yes"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="yes"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="yes"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="yes"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="24" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="yes" active="yes"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="yes" active="yes"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="yes" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
</layers>
<library>
<packages>
<package name="QFN45P300X300X85-21T170" urn="urn:adsk.eagle:footprint:7166536/1" locally_modified="yes">
<description>20-QFN, 0.45 mm pitch, 3.00 X 3.00 X 0.85 mm body, 1.70 X 1.70 mm thermal pad
&lt;p&gt;20-pin QFN package with 0.45 mm pitch with body size 3.00 X 3.00 X 0.85 mm and thermal pad size 1.70 X 1.70 mm&lt;/p&gt;</description>
<circle x="-2.054" y="1.524" radius="0.25" width="0" layer="21"/>
<wire x1="-1.55" y1="1.274" x2="-1.55" y2="1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="1.55" x2="-1.274" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="1.274" x2="1.55" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="1.55" x2="1.274" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.274" x2="1.55" y2="-1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.55" x2="1.274" y2="-1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="-1.274" x2="-1.55" y2="-1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="-1.55" x2="-1.274" y2="-1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.55" x2="-1.55" y2="-1.55" width="0.12" layer="51"/>
<wire x1="-1.55" y1="-1.55" x2="-1.55" y2="1.55" width="0.12" layer="51"/>
<wire x1="-1.55" y1="1.55" x2="1.55" y2="1.55" width="0.12" layer="51"/>
<wire x1="1.55" y1="1.55" x2="1.55" y2="-1.55" width="0.12" layer="51"/>
<smd name="1" x="-1.5456" y="0.9" dx="0.818" dy="0.24" layer="1"/>
<smd name="2" x="-1.4456" y="0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="3" x="-1.4456" y="0" dx="0.838" dy="0.24" layer="1"/>
<smd name="4" x="-1.4456" y="-0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="5" x="-1.5456" y="-0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="6" x="-0.9" y="-1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="7" x="-0.45" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="8" x="0" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="9" x="0.45" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="10" x="0.9" y="-1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="11" x="1.5456" y="-0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="12" x="1.4456" y="-0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="13" x="1.4456" y="0" dx="0.838" dy="0.24" layer="1"/>
<smd name="14" x="1.4456" y="0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="15" x="1.5456" y="0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="16" x="0.9" y="1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="17" x="0.45" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="18" x="0" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="19" x="-0.45" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="20" x="-0.9" y="1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="21" x="0" y="0" dx="1.7" dy="1.7" layer="1" thermals="no"/>
<text x="0" y="2.4996" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>
<text x="0" y="-2.4996" size="1.27" layer="27" align="top-center">&gt;VALUE</text>
</package>
<package name="DREHGEBER">
<pad name="A" x="-2.5" y="-7.5" drill="1" shape="square"/>
<pad name="C" x="0" y="-7.5" drill="1" shape="square"/>
<pad name="B" x="2.5" y="-7.5" drill="1" shape="square"/>
<pad name="S" x="-2.5" y="7" drill="1" shape="square"/>
<pad name="W" x="2.5" y="7" drill="1" shape="square"/>
<pad name="M2" x="-6" y="0" drill="3.2"/>
<pad name="M1" x="6" y="0" drill="3.2"/>
</package>
<package name="SLIDER">
<pad name="1" x="-36.75" y="1.75" drill="1.2" shape="octagon"/>
<pad name="2" x="-36.75" y="-1.75" drill="1.2" shape="octagon"/>
<pad name="3" x="36.75" y="1.75" drill="1.2" shape="octagon"/>
<pad name="G1" x="-31.4" y="4.2" drill="1.8"/>
<pad name="G3" x="31.4" y="4.2" drill="1.8"/>
<pad name="G2" x="-32.6" y="-4.2" drill="1.8"/>
<pad name="G4" x="32.6" y="-4.2" drill="1.8"/>
<wire x1="-37" y1="4.5" x2="37" y2="4.5" width="0.127" layer="21"/>
<wire x1="-37" y1="-4.5" x2="37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-37" y1="4.5" x2="-37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="37" y1="4.5" x2="37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-30" y1="1" x2="30" y2="1" width="0.127" layer="21"/>
<wire x1="-30" y1="1" x2="-30" y2="-1" width="0.127" layer="21"/>
<wire x1="30" y1="1" x2="30" y2="-1" width="0.127" layer="21"/>
<text x="-38" y="0" size="1.27" layer="25" rot="R90" align="bottom-center">&gt;NAME</text>
<wire x1="-30" y1="-1" x2="30" y2="-1" width="0.127" layer="21"/>
</package>
<package name="POTI">
<pad name="2" x="-1.25" y="-11" drill="1"/>
<pad name="3" x="1.25" y="-11" drill="1"/>
<pad name="1" x="-3.75" y="-11" drill="1"/>
<pad name="4" x="3.75" y="-11" drill="1"/>
<pad name="M2" x="5.45" y="0" drill="2.5"/>
<pad name="M1" x="-5.45" y="0" drill="2.5"/>
<wire x1="-5.5" y1="-9.1" x2="5.5" y2="-9.1" width="0.127" layer="21"/>
<wire x1="-5.5" y1="6.6" x2="5.5" y2="6.6" width="0.127" layer="21"/>
<wire x1="5.5" y1="6.6" x2="5.5" y2="-9.1" width="0.127" layer="21"/>
<wire x1="-5.5" y1="6.6" x2="-5.5" y2="-9.1" width="0.127" layer="21"/>
<text x="0" y="6.6" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>
</package>
<package name="PROGPIN">
<smd name="VDD" x="0" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="MOSI" x="2.5" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="GND" x="5" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="!RST" x="5" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="CLK" x="2.5" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="MISO" x="0" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<pad name="P$7" x="-5" y="0" drill="2.5" diameter="3.81"/>
<pad name="P$8" x="10" y="-2.5" drill="2.5" diameter="3.81"/>
<wire x1="-10" y1="0" x2="-10" y2="-2.5" width="0.1524" layer="21"/>
<wire x1="-10" y1="-2.5" x2="-7.5" y2="-5" width="0.1524" layer="21"/>
<wire x1="-7.5" y1="-5" x2="12.5" y2="-5" width="0.1524" layer="21"/>
<wire x1="12.5" y1="-5" x2="15" y2="-2.5" width="0.1524" layer="21"/>
<wire x1="15" y1="-2.5" x2="15" y2="0" width="0.1524" layer="21"/>
<wire x1="15" y1="0" x2="12.5" y2="2.5" width="0.1524" layer="21"/>
<wire x1="12.5" y1="2.5" x2="-7.5" y2="2.5" width="0.1524" layer="21"/>
<wire x1="-7.5" y1="2.5" x2="-10" y2="0" width="0.1524" layer="21"/>
<text x="-5" y="2.5" size="1.778" layer="25">&gt;NAME</text>
</package>
<package name="12832_OLED">
<pad name="4" x="-3.81" y="0" drill="0.9" shape="octagon"/>
<pad name="3" x="-1.27" y="0" drill="0.9" shape="octagon"/>
<pad name="2" x="1.27" y="0" drill="0.9" shape="octagon"/>
<pad name="1" x="3.81" y="0" drill="0.9" shape="octagon"/>
<wire x1="-6" y1="-2.54" x2="6" y2="-2.54" width="0.1524" layer="21"/>
<wire x1="-6" y1="35.46" x2="6" y2="35.46" width="0.1524" layer="21"/>
<wire x1="-6" y1="35.46" x2="-6" y2="-2.54" width="0.1524" layer="21"/>
<wire x1="6" y1="35.46" x2="6" y2="-2.54" width="0.1524" layer="21"/>
</package>
</packages>
<packages3d>
<package3d name="QFN45P300X300X85-21T170" urn="urn:adsk.eagle:package:7166534/1" locally_modified="yes" type="model">
<description>20-QFN, 0.45 mm pitch, 3.00 X 3.00 X 0.85 mm body, 1.70 X 1.70 mm thermal pad
&lt;p&gt;20-pin QFN package with 0.45 mm pitch with body size 3.00 X 3.00 X 0.85 mm and thermal pad size 1.70 X 1.70 mm&lt;/p&gt;</description>
<packageinstances>
<packageinstance name="QFN45P300X300X85-21T170"/>
</packageinstances>
</package3d>
</packages3d>
<symbols>
<symbol name="ATTINY84A">
<pin name="PA4" x="-17.78" y="5.08" length="middle"/>
<pin name="PA3" x="-17.78" y="2.54" length="middle"/>
<pin name="PA2" x="-17.78" y="0" length="middle"/>
<pin name="PA1" x="-17.78" y="-2.54" length="middle"/>
<pin name="PA0" x="-17.78" y="-5.08" length="middle"/>
<pin name="GND" x="0" y="-17.78" length="middle" rot="R90"/>
<pin name="PB1" x="17.78" y="-2.54" length="middle" rot="R180"/>
<pin name="PB3" x="17.78" y="0" length="middle" rot="R180"/>
<pin name="PB2" x="17.78" y="2.54" length="middle" rot="R180"/>
<pin name="PA7" x="17.78" y="5.08" length="middle" rot="R180"/>
<pin name="PA6" x="5.08" y="17.78" length="middle" rot="R270"/>
<pin name="PB0" x="17.78" y="-5.08" length="middle" rot="R180"/>
<pin name="VCC" x="2.54" y="-17.78" length="middle" rot="R90"/>
<wire x1="-12.7" y1="12.7" x2="-12.7" y2="-12.7" width="0.254" layer="94"/>
<wire x1="-12.7" y1="-12.7" x2="12.7" y2="-12.7" width="0.254" layer="94"/>
<wire x1="12.7" y1="-12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/>
<wire x1="12.7" y1="12.7" x2="-12.7" y2="12.7" width="0.254" layer="94"/>
<pin name="PA5" x="-5.08" y="17.78" length="middle" rot="R270"/>
</symbol>
<symbol name="DREHGEBER">
<circle x="0" y="0" radius="2.54" width="0.254" layer="94"/>
<pin name="A" x="-15.24" y="2.54" length="middle"/>
<pin name="B" x="-15.24" y="0" length="middle"/>
<pin name="COM" x="-15.24" y="-2.54" length="middle"/>
<pin name="SW+" x="15.24" y="2.54" length="middle" rot="R180"/>
<pin name="SW-" x="15.24" y="0" length="middle" rot="R180"/>
<wire x1="-10.16" y1="5.08" x2="10.16" y2="5.08" width="0.254" layer="94"/>
<wire x1="10.16" y1="5.08" x2="10.16" y2="-5.08" width="0.254" layer="94"/>
<wire x1="10.16" y1="-5.08" x2="-10.16" y2="-5.08" width="0.254" layer="94"/>
<wire x1="-10.16" y1="-5.08" x2="-10.16" y2="5.08" width="0.254" layer="94"/>
<pin name="GND" x="0" y="-10.16" length="middle" rot="R90"/>
</symbol>
<symbol name="SLIDER">
<pin name="1" x="0" y="17.78" length="middle" rot="R270"/>
<pin name="3" x="0" y="-17.78" length="middle" rot="R90"/>
<wire x1="-2.54" y1="12.7" x2="5.08" y2="12.7" width="0.254" layer="94"/>
<wire x1="5.08" y1="12.7" x2="5.08" y2="-12.7" width="0.254" layer="94"/>
<wire x1="5.08" y1="-12.7" x2="-2.54" y2="-12.7" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-12.7" x2="-2.54" y2="12.7" width="0.254" layer="94"/>
<pin name="2" x="-7.62" y="0" length="middle"/>
<pin name="GND" x="2.54" y="-17.78" length="middle" rot="R90"/>
<text x="5.08" y="12.7" size="1.27" layer="95" rot="R270">&gt;NAME</text>
</symbol>
<symbol name="POTI">
<pin name="1" x="0" y="15.24" length="middle" rot="R270"/>
<pin name="3" x="0" y="-15.24" length="middle" rot="R90"/>
<pin name="2" x="-10.16" y="0" length="middle"/>
<wire x1="-2.54" y1="7.62" x2="0" y2="7.62" width="0.254" layer="94"/>
<wire x1="0" y1="7.62" x2="2.54" y2="7.62" width="0.254" layer="94"/>
<wire x1="2.54" y1="7.62" x2="2.54" y2="-5.08" width="0.254" layer="94"/>
<wire x1="2.54" y1="-5.08" x2="2.54" y2="-7.62" width="0.254" layer="94"/>
<wire x1="2.54" y1="-7.62" x2="0" y2="-7.62" width="0.254" layer="94"/>
<wire x1="0" y1="-7.62" x2="-2.54" y2="-7.62" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-7.62" x2="-2.54" y2="0" width="0.254" layer="94"/>
<wire x1="-2.54" y1="0" x2="-2.54" y2="7.62" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="7.62" y2="7.62" width="0.254" layer="94"/>
<wire x1="7.62" y1="7.62" x2="5.08" y2="7.62" width="0.254" layer="94"/>
<wire x1="5.08" y1="7.62" x2="7.62" y2="5.08" width="0.254" layer="94"/>
<wire x1="7.62" y1="5.08" x2="7.62" y2="7.62" width="0.254" layer="94"/>
<wire x1="-5.08" y1="0" x2="-2.54" y2="0" width="0.254" layer="94"/>
<wire x1="0" y1="10.16" x2="0" y2="7.62" width="0.254" layer="94"/>
<wire x1="0" y1="-10.16" x2="0" y2="-7.62" width="0.254" layer="94"/>
<pin name="GND" x="5.08" y="-15.24" length="middle" rot="R90"/>
<wire x1="5.08" y1="-10.16" x2="5.08" y2="-5.08" width="0.254" layer="94"/>
<wire x1="5.08" y1="-5.08" x2="2.54" y2="-5.08" width="0.254" layer="94"/>
<text x="-2.54" y="7.62" size="1.27" layer="95" rot="MR270">&gt;NAME</text>
</symbol>
<symbol name="PROGPIN">
<pin name="!RST" x="-7.62" y="5.08" length="middle"/>
<pin name="MISO" x="-7.62" y="2.54" length="middle"/>
<pin name="MOSI" x="-7.62" y="-2.54" length="middle"/>
<pin name="SCK" x="-7.62" y="-5.08" length="middle"/>
<pin name="VDD" x="5.08" y="12.7" length="middle" rot="R270"/>
<pin name="GND" x="5.08" y="-12.7" length="middle" rot="R90"/>
<wire x1="-2.54" y1="7.62" x2="7.62" y2="7.62" width="0.1524" layer="94"/>
<wire x1="7.62" y1="7.62" x2="7.62" y2="-7.62" width="0.1524" layer="94"/>
<wire x1="7.62" y1="-7.62" x2="-2.54" y2="-7.62" width="0.1524" layer="94"/>
<wire x1="-2.54" y1="-7.62" x2="-2.54" y2="7.62" width="0.1524" layer="94"/>
<text x="7.62" y="-7.62" size="1.778" layer="95" rot="MR90">&gt;NAME</text>
</symbol>
<symbol name="12832_OLED">
<pin name="SDA" x="-10.16" y="5.08" length="middle"/>
<pin name="SCL" x="-10.16" y="2.54" length="middle"/>
<pin name="VCC" x="-10.16" y="0" length="middle"/>
<pin name="GND" x="-10.16" y="-2.54" length="middle"/>
<wire x1="-5.08" y1="7.62" x2="-5.08" y2="-5.08" width="0.1524" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="58.42" y2="-5.08" width="0.1524" layer="94"/>
<wire x1="58.42" y1="-5.08" x2="58.42" y2="7.62" width="0.1524" layer="94"/>
<wire x1="58.42" y1="7.62" x2="-5.08" y2="7.62" width="0.1524" layer="94"/>
<wire x1="12.7" y1="5.08" x2="55.88" y2="5.08" width="0.1524" layer="94"/>
<wire x1="55.88" y1="5.08" x2="55.88" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="55.88" y1="-2.54" x2="12.7" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="12.7" y1="-2.54" x2="12.7" y2="5.08" width="0.1524" layer="94"/>
<text x="15.24" y="-2.54" size="1.778" layer="95">&gt;NAME</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="ATTINY84A">
<description>8-bit
Microcontroller
with 2K/4K/8K
Bytes In-System
Programmable
Flash</description>
<gates>
<gate name="G$1" symbol="ATTINY84A" x="0" y="0"/>
</gates>
<devices>
<device name="" package="QFN45P300X300X85-21T170">
<connects>
<connect gate="G$1" pin="GND" pad="8 21"/>
<connect gate="G$1" pin="PA0" pad="5"/>
<connect gate="G$1" pin="PA1" pad="4"/>
<connect gate="G$1" pin="PA2" pad="3"/>
<connect gate="G$1" pin="PA3" pad="2"/>
<connect gate="G$1" pin="PA4" pad="1"/>
<connect gate="G$1" pin="PA5" pad="20"/>
<connect gate="G$1" pin="PA6" pad="16"/>
<connect gate="G$1" pin="PA7" pad="15"/>
<connect gate="G$1" pin="PB0" pad="11"/>
<connect gate="G$1" pin="PB1" pad="12"/>
<connect gate="G$1" pin="PB2" pad="14"/>
<connect gate="G$1" pin="PB3" pad="13"/>
<connect gate="G$1" pin="VCC" pad="9"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:7166534/1"/>
</package3dinstances>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="DREHGEBER">
<description>DREHGEBER</description>
<gates>
<gate name="G$1" symbol="DREHGEBER" x="0" y="0"/>
</gates>
<devices>
<device name="" package="DREHGEBER">
<connects>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="B" pad="B"/>
<connect gate="G$1" pin="COM" pad="C"/>
<connect gate="G$1" pin="GND" pad="M1 M2"/>
<connect gate="G$1" pin="SW+" pad="S"/>
<connect gate="G$1" pin="SW-" pad="W"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="PROGPIN" prefix="CON">
<description>Programming port</description>
<gates>
<gate name="G$1" symbol="PROGPIN" x="-2.54" y="0"/>
</gates>
<devices>
<device name="" package="PROGPIN">
<connects>
<connect gate="G$1" pin="!RST" pad="!RST"/>
<connect gate="G$1" pin="GND" pad="GND P$7 P$8"/>
<connect gate="G$1" pin="MISO" pad="MISO"/>
<connect gate="G$1" pin="MOSI" pad="MOSI"/>
<connect gate="G$1" pin="SCK" pad="CLK"/>
<connect gate="G$1" pin="VDD" pad="VDD"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="12832_OLED" prefix="DISP">
<gates>
<gate name="G$1" symbol="12832_OLED" x="0" y="0"/>
</gates>
<devices>
<device name="" package="12832_OLED">
<connects>
<connect gate="G$1" pin="GND" pad="1"/>
<connect gate="G$1" pin="SCL" pad="3"/>
<connect gate="G$1" pin="SDA" pad="4"/>
<connect gate="G$1" pin="VCC" pad="2"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</drawing>
<compatibility>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

File diff suppressed because it is too large Load Diff

View File

@ -1,360 +0,0 @@
[Eagle]
Version="09 02 00"
Platform="Windows"
Globals="Globals"
Desktop="Desktop"
[Globals]
AutoSaveProject=1
UsedLibraryUrn="urn:adsk.eagle:library:79"
UsedLibraryUrn="urn:adsk.eagle:library:88"
UsedLibraryUrn="urn:adsk.eagle:library:201"
UsedLibraryUrn="urn:adsk.eagle:library:202"
UsedLibraryUrn="urn:adsk.eagle:library:203"
UsedLibraryUrn="urn:adsk.eagle:library:204"
UsedLibraryUrn="urn:adsk.eagle:library:206"
UsedLibraryUrn="urn:adsk.eagle:library:208"
UsedLibraryUrn="urn:adsk.eagle:library:210"
UsedLibraryUrn="urn:adsk.eagle:library:211"
UsedLibraryUrn="urn:adsk.eagle:library:212"
UsedLibraryUrn="urn:adsk.eagle:library:213"
UsedLibraryUrn="urn:adsk.eagle:library:89"
UsedLibraryUrn="urn:adsk.eagle:library:214"
UsedLibraryUrn="urn:adsk.eagle:library:215"
UsedLibraryUrn="urn:adsk.eagle:library:217"
UsedLibraryUrn="urn:adsk.eagle:library:218"
UsedLibraryUrn="urn:adsk.eagle:library:220"
UsedLibraryUrn="urn:adsk.eagle:library:221"
UsedLibraryUrn="urn:adsk.eagle:library:222"
UsedLibraryUrn="urn:adsk.eagle:library:224"
UsedLibraryUrn="urn:adsk.eagle:library:226"
UsedLibraryUrn="urn:adsk.eagle:library:229"
UsedLibraryUrn="urn:adsk.eagle:library:90"
UsedLibraryUrn="urn:adsk.eagle:library:230"
UsedLibraryUrn="urn:adsk.eagle:library:231"
UsedLibraryUrn="urn:adsk.eagle:library:233"
UsedLibraryUrn="urn:adsk.eagle:library:234"
UsedLibraryUrn="urn:adsk.eagle:library:235"
UsedLibraryUrn="urn:adsk.eagle:library:236"
UsedLibraryUrn="urn:adsk.eagle:library:237"
UsedLibraryUrn="urn:adsk.eagle:library:238"
UsedLibraryUrn="urn:adsk.eagle:library:239"
UsedLibraryUrn="urn:adsk.eagle:library:240"
UsedLibraryUrn="urn:adsk.eagle:library:93"
UsedLibraryUrn="urn:adsk.eagle:library:241"
UsedLibraryUrn="urn:adsk.eagle:library:242"
UsedLibraryUrn="urn:adsk.eagle:library:243"
UsedLibraryUrn="urn:adsk.eagle:library:244"
UsedLibraryUrn="urn:adsk.eagle:library:245"
UsedLibraryUrn="urn:adsk.eagle:library:248"
UsedLibraryUrn="urn:adsk.eagle:library:250"
UsedLibraryUrn="urn:adsk.eagle:library:251"
UsedLibraryUrn="urn:adsk.eagle:library:252"
UsedLibraryUrn="urn:adsk.eagle:library:255"
UsedLibraryUrn="urn:adsk.eagle:library:94"
UsedLibraryUrn="urn:adsk.eagle:library:256"
UsedLibraryUrn="urn:adsk.eagle:library:258"
UsedLibraryUrn="urn:adsk.eagle:library:259"
UsedLibraryUrn="urn:adsk.eagle:library:260"
UsedLibraryUrn="urn:adsk.eagle:library:261"
UsedLibraryUrn="urn:adsk.eagle:library:262"
UsedLibraryUrn="urn:adsk.eagle:library:263"
UsedLibraryUrn="urn:adsk.eagle:library:264"
UsedLibraryUrn="urn:adsk.eagle:library:265"
UsedLibraryUrn="urn:adsk.eagle:library:266"
UsedLibraryUrn="urn:adsk.eagle:library:96"
UsedLibraryUrn="urn:adsk.eagle:library:267"
UsedLibraryUrn="urn:adsk.eagle:library:269"
UsedLibraryUrn="urn:adsk.eagle:library:270"
UsedLibraryUrn="urn:adsk.eagle:library:272"
UsedLibraryUrn="urn:adsk.eagle:library:273"
UsedLibraryUrn="urn:adsk.eagle:library:274"
UsedLibraryUrn="urn:adsk.eagle:library:275"
UsedLibraryUrn="urn:adsk.eagle:library:276"
UsedLibraryUrn="urn:adsk.eagle:library:278"
UsedLibraryUrn="urn:adsk.eagle:library:279"
UsedLibraryUrn="urn:adsk.eagle:library:97"
UsedLibraryUrn="urn:adsk.eagle:library:281"
UsedLibraryUrn="urn:adsk.eagle:library:283"
UsedLibraryUrn="urn:adsk.eagle:library:284"
UsedLibraryUrn="urn:adsk.eagle:library:285"
UsedLibraryUrn="urn:adsk.eagle:library:287"
UsedLibraryUrn="urn:adsk.eagle:library:288"
UsedLibraryUrn="urn:adsk.eagle:library:289"
UsedLibraryUrn="urn:adsk.eagle:library:290"
UsedLibraryUrn="urn:adsk.eagle:library:291"
UsedLibraryUrn="urn:adsk.eagle:library:293"
UsedLibraryUrn="urn:adsk.eagle:library:98"
UsedLibraryUrn="urn:adsk.eagle:library:294"
UsedLibraryUrn="urn:adsk.eagle:library:296"
UsedLibraryUrn="urn:adsk.eagle:library:297"
UsedLibraryUrn="urn:adsk.eagle:library:298"
UsedLibraryUrn="urn:adsk.eagle:library:300"
UsedLibraryUrn="urn:adsk.eagle:library:302"
UsedLibraryUrn="urn:adsk.eagle:library:303"
UsedLibraryUrn="urn:adsk.eagle:library:304"
UsedLibraryUrn="urn:adsk.eagle:library:307"
UsedLibraryUrn="urn:adsk.eagle:library:312"
UsedLibraryUrn="urn:adsk.eagle:library:99"
UsedLibraryUrn="urn:adsk.eagle:library:313"
UsedLibraryUrn="urn:adsk.eagle:library:314"
UsedLibraryUrn="urn:adsk.eagle:library:315"
UsedLibraryUrn="urn:adsk.eagle:library:317"
UsedLibraryUrn="urn:adsk.eagle:library:318"
UsedLibraryUrn="urn:adsk.eagle:library:319"
UsedLibraryUrn="urn:adsk.eagle:library:320"
UsedLibraryUrn="urn:adsk.eagle:library:322"
UsedLibraryUrn="urn:adsk.eagle:library:323"
UsedLibraryUrn="urn:adsk.eagle:library:324"
UsedLibraryUrn="urn:adsk.eagle:library:102"
UsedLibraryUrn="urn:adsk.eagle:library:325"
UsedLibraryUrn="urn:adsk.eagle:library:327"
UsedLibraryUrn="urn:adsk.eagle:library:328"
UsedLibraryUrn="urn:adsk.eagle:library:331"
UsedLibraryUrn="urn:adsk.eagle:library:332"
UsedLibraryUrn="urn:adsk.eagle:library:334"
UsedLibraryUrn="urn:adsk.eagle:library:335"
UsedLibraryUrn="urn:adsk.eagle:library:336"
UsedLibraryUrn="urn:adsk.eagle:library:337"
UsedLibraryUrn="urn:adsk.eagle:library:338"
UsedLibraryUrn="urn:adsk.eagle:library:80"
UsedLibraryUrn="urn:adsk.eagle:library:105"
UsedLibraryUrn="urn:adsk.eagle:library:339"
UsedLibraryUrn="urn:adsk.eagle:library:341"
UsedLibraryUrn="urn:adsk.eagle:library:342"
UsedLibraryUrn="urn:adsk.eagle:library:343"
UsedLibraryUrn="urn:adsk.eagle:library:344"
UsedLibraryUrn="urn:adsk.eagle:library:346"
UsedLibraryUrn="urn:adsk.eagle:library:347"
UsedLibraryUrn="urn:adsk.eagle:library:350"
UsedLibraryUrn="urn:adsk.eagle:library:351"
UsedLibraryUrn="urn:adsk.eagle:library:353"
UsedLibraryUrn="urn:adsk.eagle:library:107"
UsedLibraryUrn="urn:adsk.eagle:library:358"
UsedLibraryUrn="urn:adsk.eagle:library:360"
UsedLibraryUrn="urn:adsk.eagle:library:361"
UsedLibraryUrn="urn:adsk.eagle:library:362"
UsedLibraryUrn="urn:adsk.eagle:library:364"
UsedLibraryUrn="urn:adsk.eagle:library:366"
UsedLibraryUrn="urn:adsk.eagle:library:367"
UsedLibraryUrn="urn:adsk.eagle:library:368"
UsedLibraryUrn="urn:adsk.eagle:library:369"
UsedLibraryUrn="urn:adsk.eagle:library:371"
UsedLibraryUrn="urn:adsk.eagle:library:109"
UsedLibraryUrn="urn:adsk.eagle:library:372"
UsedLibraryUrn="urn:adsk.eagle:library:373"
UsedLibraryUrn="urn:adsk.eagle:library:374"
UsedLibraryUrn="urn:adsk.eagle:library:375"
UsedLibraryUrn="urn:adsk.eagle:library:376"
UsedLibraryUrn="urn:adsk.eagle:library:377"
UsedLibraryUrn="urn:adsk.eagle:library:378"
UsedLibraryUrn="urn:adsk.eagle:library:379"
UsedLibraryUrn="urn:adsk.eagle:library:380"
UsedLibraryUrn="urn:adsk.eagle:library:382"
UsedLibraryUrn="urn:adsk.eagle:library:111"
UsedLibraryUrn="urn:adsk.eagle:library:383"
UsedLibraryUrn="urn:adsk.eagle:library:385"
UsedLibraryUrn="urn:adsk.eagle:library:386"
UsedLibraryUrn="urn:adsk.eagle:library:387"
UsedLibraryUrn="urn:adsk.eagle:library:388"
UsedLibraryUrn="urn:adsk.eagle:library:389"
UsedLibraryUrn="urn:adsk.eagle:library:391"
UsedLibraryUrn="urn:adsk.eagle:library:392"
UsedLibraryUrn="urn:adsk.eagle:library:393"
UsedLibraryUrn="urn:adsk.eagle:library:394"
UsedLibraryUrn="urn:adsk.eagle:library:112"
UsedLibraryUrn="urn:adsk.eagle:library:396"
UsedLibraryUrn="urn:adsk.eagle:library:397"
UsedLibraryUrn="urn:adsk.eagle:library:398"
UsedLibraryUrn="urn:adsk.eagle:library:399"
UsedLibraryUrn="urn:adsk.eagle:library:400"
UsedLibraryUrn="urn:adsk.eagle:library:401"
UsedLibraryUrn="urn:adsk.eagle:library:402"
UsedLibraryUrn="urn:adsk.eagle:library:403"
UsedLibraryUrn="urn:adsk.eagle:library:404"
UsedLibraryUrn="urn:adsk.eagle:library:407"
UsedLibraryUrn="urn:adsk.eagle:library:113"
UsedLibraryUrn="urn:adsk.eagle:library:408"
UsedLibraryUrn="urn:adsk.eagle:library:409"
UsedLibraryUrn="urn:adsk.eagle:library:410"
UsedLibraryUrn="urn:adsk.eagle:library:411"
UsedLibraryUrn="urn:adsk.eagle:library:412"
UsedLibraryUrn="urn:adsk.eagle:library:417"
UsedLibraryUrn="urn:adsk.eagle:library:418"
UsedLibraryUrn="urn:adsk.eagle:library:419"
UsedLibraryUrn="urn:adsk.eagle:library:527439"
UsedLibraryUrn="urn:adsk.eagle:library:116"
UsedLibraryUrn="urn:adsk.eagle:library:117"
UsedLibraryUrn="urn:adsk.eagle:library:118"
UsedLibraryUrn="urn:adsk.eagle:library:119"
UsedLibraryUrn="urn:adsk.eagle:library:81"
UsedLibraryUrn="urn:adsk.eagle:library:121"
UsedLibraryUrn="urn:adsk.eagle:library:122"
UsedLibraryUrn="urn:adsk.eagle:library:123"
UsedLibraryUrn="urn:adsk.eagle:library:124"
UsedLibraryUrn="urn:adsk.eagle:library:125"
UsedLibraryUrn="urn:adsk.eagle:library:126"
UsedLibraryUrn="urn:adsk.eagle:library:127"
UsedLibraryUrn="urn:adsk.eagle:library:128"
UsedLibraryUrn="urn:adsk.eagle:library:129"
UsedLibraryUrn="urn:adsk.eagle:library:130"
UsedLibraryUrn="urn:adsk.eagle:library:82"
UsedLibraryUrn="urn:adsk.eagle:library:132"
UsedLibraryUrn="urn:adsk.eagle:library:133"
UsedLibraryUrn="urn:adsk.eagle:library:134"
UsedLibraryUrn="urn:adsk.eagle:library:135"
UsedLibraryUrn="urn:adsk.eagle:library:136"
UsedLibraryUrn="urn:adsk.eagle:library:138"
UsedLibraryUrn="urn:adsk.eagle:library:139"
UsedLibraryUrn="urn:adsk.eagle:library:140"
UsedLibraryUrn="urn:adsk.eagle:library:141"
UsedLibraryUrn="urn:adsk.eagle:library:143"
UsedLibraryUrn="urn:adsk.eagle:library:83"
UsedLibraryUrn="urn:adsk.eagle:library:144"
UsedLibraryUrn="urn:adsk.eagle:library:145"
UsedLibraryUrn="urn:adsk.eagle:library:147"
UsedLibraryUrn="urn:adsk.eagle:library:148"
UsedLibraryUrn="urn:adsk.eagle:library:149"
UsedLibraryUrn="urn:adsk.eagle:library:150"
UsedLibraryUrn="urn:adsk.eagle:library:151"
UsedLibraryUrn="urn:adsk.eagle:library:152"
UsedLibraryUrn="urn:adsk.eagle:library:153"
UsedLibraryUrn="urn:adsk.eagle:library:154"
UsedLibraryUrn="urn:adsk.eagle:library:84"
UsedLibraryUrn="urn:adsk.eagle:library:155"
UsedLibraryUrn="urn:adsk.eagle:library:156"
UsedLibraryUrn="urn:adsk.eagle:library:157"
UsedLibraryUrn="urn:adsk.eagle:library:158"
UsedLibraryUrn="urn:adsk.eagle:library:159"
UsedLibraryUrn="urn:adsk.eagle:library:160"
UsedLibraryUrn="urn:adsk.eagle:library:161"
UsedLibraryUrn="urn:adsk.eagle:library:162"
UsedLibraryUrn="urn:adsk.eagle:library:163"
UsedLibraryUrn="urn:adsk.eagle:library:164"
UsedLibraryUrn="urn:adsk.eagle:library:85"
UsedLibraryUrn="urn:adsk.eagle:library:165"
UsedLibraryUrn="urn:adsk.eagle:library:166"
UsedLibraryUrn="urn:adsk.eagle:library:167"
UsedLibraryUrn="urn:adsk.eagle:library:169"
UsedLibraryUrn="urn:adsk.eagle:library:170"
UsedLibraryUrn="urn:adsk.eagle:library:171"
UsedLibraryUrn="urn:adsk.eagle:library:172"
UsedLibraryUrn="urn:adsk.eagle:library:173"
UsedLibraryUrn="urn:adsk.eagle:library:174"
UsedLibraryUrn="urn:adsk.eagle:library:175"
UsedLibraryUrn="urn:adsk.eagle:library:86"
UsedLibraryUrn="urn:adsk.eagle:library:176"
UsedLibraryUrn="urn:adsk.eagle:library:177"
UsedLibraryUrn="urn:adsk.eagle:library:179"
UsedLibraryUrn="urn:adsk.eagle:library:180"
UsedLibraryUrn="urn:adsk.eagle:library:181"
UsedLibraryUrn="urn:adsk.eagle:library:182"
UsedLibraryUrn="urn:adsk.eagle:library:183"
UsedLibraryUrn="urn:adsk.eagle:library:184"
UsedLibraryUrn="urn:adsk.eagle:library:188"
UsedLibraryUrn="urn:adsk.eagle:library:189"
UsedLibraryUrn="urn:adsk.eagle:library:87"
UsedLibraryUrn="urn:adsk.eagle:library:190"
UsedLibraryUrn="urn:adsk.eagle:library:191"
UsedLibraryUrn="urn:adsk.eagle:library:192"
UsedLibraryUrn="urn:adsk.eagle:library:193"
UsedLibraryUrn="urn:adsk.eagle:library:194"
UsedLibraryUrn="urn:adsk.eagle:library:195"
UsedLibraryUrn="urn:adsk.eagle:library:196"
UsedLibraryUrn="urn:adsk.eagle:library:197"
UsedLibraryUrn="urn:adsk.eagle:library:198"
UsedLibraryUrn="urn:adsk.eagle:library:199"
UsedLibraryUrn="urn:adsk.eagle:library:178"
UsedLibraryUrn="urn:adsk.eagle:library:185"
UsedLibraryUrn="urn:adsk.eagle:library:186"
UsedLibraryUrn="urn:adsk.eagle:library:187"
UsedLibraryUrn="urn:adsk.eagle:library:200"
UsedLibraryUrn="urn:adsk.eagle:library:205"
UsedLibraryUrn="urn:adsk.eagle:library:207"
UsedLibraryUrn="urn:adsk.eagle:library:91"
UsedLibraryUrn="urn:adsk.eagle:library:209"
UsedLibraryUrn="urn:adsk.eagle:library:216"
UsedLibraryUrn="urn:adsk.eagle:library:92"
UsedLibraryUrn="urn:adsk.eagle:library:219"
UsedLibraryUrn="urn:adsk.eagle:library:223"
UsedLibraryUrn="urn:adsk.eagle:library:225"
UsedLibraryUrn="urn:adsk.eagle:library:227"
UsedLibraryUrn="urn:adsk.eagle:library:228"
UsedLibraryUrn="urn:adsk.eagle:library:232"
UsedLibraryUrn="urn:adsk.eagle:library:246"
UsedLibraryUrn="urn:adsk.eagle:library:247"
UsedLibraryUrn="urn:adsk.eagle:library:95"
UsedLibraryUrn="urn:adsk.eagle:library:249"
UsedLibraryUrn="urn:adsk.eagle:library:253"
UsedLibraryUrn="urn:adsk.eagle:library:254"
UsedLibraryUrn="urn:adsk.eagle:library:257"
UsedLibraryUrn="urn:adsk.eagle:library:268"
UsedLibraryUrn="urn:adsk.eagle:library:271"
UsedLibraryUrn="urn:adsk.eagle:library:277"
UsedLibraryUrn="urn:adsk.eagle:library:280"
UsedLibraryUrn="urn:adsk.eagle:library:282"
UsedLibraryUrn="urn:adsk.eagle:library:286"
UsedLibraryUrn="urn:adsk.eagle:library:292"
UsedLibraryUrn="urn:adsk.eagle:library:295"
UsedLibraryUrn="urn:adsk.eagle:library:100"
UsedLibraryUrn="urn:adsk.eagle:library:299"
UsedLibraryUrn="urn:adsk.eagle:library:301"
UsedLibraryUrn="urn:adsk.eagle:library:305"
UsedLibraryUrn="urn:adsk.eagle:library:306"
UsedLibraryUrn="urn:adsk.eagle:library:101"
UsedLibraryUrn="urn:adsk.eagle:library:308"
UsedLibraryUrn="urn:adsk.eagle:library:309"
UsedLibraryUrn="urn:adsk.eagle:library:310"
UsedLibraryUrn="urn:adsk.eagle:library:311"
UsedLibraryUrn="urn:adsk.eagle:library:316"
UsedLibraryUrn="urn:adsk.eagle:library:321"
UsedLibraryUrn="urn:adsk.eagle:library:326"
UsedLibraryUrn="urn:adsk.eagle:library:103"
UsedLibraryUrn="urn:adsk.eagle:library:329"
UsedLibraryUrn="urn:adsk.eagle:library:330"
UsedLibraryUrn="urn:adsk.eagle:library:333"
UsedLibraryUrn="urn:adsk.eagle:library:104"
UsedLibraryUrn="urn:adsk.eagle:library:340"
UsedLibraryUrn="urn:adsk.eagle:library:345"
UsedLibraryUrn="urn:adsk.eagle:library:348"
UsedLibraryUrn="urn:adsk.eagle:library:349"
UsedLibraryUrn="urn:adsk.eagle:library:352"
UsedLibraryUrn="urn:adsk.eagle:library:354"
UsedLibraryUrn="urn:adsk.eagle:library:355"
UsedLibraryUrn="urn:adsk.eagle:library:356"
UsedLibraryUrn="urn:adsk.eagle:library:357"
UsedLibraryUrn="urn:adsk.eagle:library:106"
UsedLibraryUrn="urn:adsk.eagle:library:359"
UsedLibraryUrn="urn:adsk.eagle:library:363"
UsedLibraryUrn="urn:adsk.eagle:library:365"
UsedLibraryUrn="urn:adsk.eagle:library:370"
UsedLibraryUrn="urn:adsk.eagle:library:108"
UsedLibraryUrn="urn:adsk.eagle:library:381"
UsedLibraryUrn="urn:adsk.eagle:library:384"
UsedLibraryUrn="urn:adsk.eagle:library:390"
UsedLibraryUrn="urn:adsk.eagle:library:395"
UsedLibraryUrn="urn:adsk.eagle:library:110"
UsedLibraryUrn="urn:adsk.eagle:library:405"
UsedLibraryUrn="urn:adsk.eagle:library:406"
UsedLibraryUrn="urn:adsk.eagle:library:413"
UsedLibraryUrn="urn:adsk.eagle:library:414"
UsedLibraryUrn="urn:adsk.eagle:library:415"
UsedLibraryUrn="urn:adsk.eagle:library:416"
UsedLibraryUrn="urn:adsk.eagle:library:1252642"
UsedLibraryUrn="urn:adsk.eagle:library:114"
UsedLibraryUrn="urn:adsk.eagle:library:115"
UsedLibraryUrn="urn:adsk.eagle:library:120"
UsedLibraryUrn="urn:adsk.eagle:library:131"
UsedLibraryUrn="urn:adsk.eagle:library:137"
UsedLibraryUrn="urn:adsk.eagle:library:142"
UsedLibraryUrn="urn:adsk.eagle:library:146"
UsedLibraryUrn="urn:adsk.eagle:library:168"
UsedLibrary="display.lbr"
[Win_1]
Type="Control Panel"
Number=0
[Desktop]
Screen="4864 1351"
Window="Win_1"

File diff suppressed because it is too large Load Diff

View File

@ -1,382 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="7.7.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="yes"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="yes"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="yes"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="yes"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="yes"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="yes"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="yes"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="yes"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="yes"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="yes"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="yes"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="yes"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="yes"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="24" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="yes" active="yes"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="yes" active="yes"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="yes" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
</layers>
<library>
<packages>
<package name="QFN45P300X300X85-21T170">
<description>20-QFN, 0.45 mm pitch, 3.00 X 3.00 X 0.85 mm body, 1.70 X 1.70 mm thermal pad
&lt;p&gt;20-pin QFN package with 0.45 mm pitch with body size 3.00 X 3.00 X 0.85 mm and thermal pad size 1.70 X 1.70 mm&lt;/p&gt;</description>
<circle x="-2.054" y="1.524" radius="0.25" width="0" layer="21"/>
<wire x1="-1.55" y1="1.274" x2="-1.55" y2="1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="1.55" x2="-1.274" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="1.274" x2="1.55" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="1.55" x2="1.274" y2="1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.274" x2="1.55" y2="-1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.55" x2="1.274" y2="-1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="-1.274" x2="-1.55" y2="-1.55" width="0.12" layer="21"/>
<wire x1="-1.55" y1="-1.55" x2="-1.274" y2="-1.55" width="0.12" layer="21"/>
<wire x1="1.55" y1="-1.55" x2="-1.55" y2="-1.55" width="0.12" layer="51"/>
<wire x1="-1.55" y1="-1.55" x2="-1.55" y2="1.55" width="0.12" layer="51"/>
<wire x1="-1.55" y1="1.55" x2="1.55" y2="1.55" width="0.12" layer="51"/>
<wire x1="1.55" y1="1.55" x2="1.55" y2="-1.55" width="0.12" layer="51"/>
<smd name="1" x="-1.5456" y="0.9" dx="0.818" dy="0.24" layer="1"/>
<smd name="2" x="-1.4456" y="0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="3" x="-1.4456" y="0" dx="0.838" dy="0.24" layer="1"/>
<smd name="4" x="-1.4456" y="-0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="5" x="-1.5456" y="-0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="6" x="-0.9" y="-1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="7" x="-0.45" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="8" x="0" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="9" x="0.45" y="-1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="10" x="0.9" y="-1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="11" x="1.5456" y="-0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="12" x="1.4456" y="-0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="13" x="1.4456" y="0" dx="0.838" dy="0.24" layer="1"/>
<smd name="14" x="1.4456" y="0.45" dx="0.838" dy="0.24" layer="1"/>
<smd name="15" x="1.5456" y="0.9" dx="0.838" dy="0.24" layer="1"/>
<smd name="16" x="0.9" y="1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="17" x="0.45" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="18" x="0" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="19" x="-0.45" y="1.4456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="20" x="-0.9" y="1.5456" dx="0.838" dy="0.24" layer="1" rot="R90"/>
<smd name="21" x="0" y="0" dx="1.7" dy="1.7" layer="1" thermals="no"/>
<text x="0" y="2.4996" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>
<text x="0" y="-2.4996" size="1.27" layer="27" align="top-center">&gt;VALUE</text>
</package>
<package name="DREHGEBER">
<pad name="A" x="-2.5" y="-7.5" drill="1" shape="square"/>
<pad name="C" x="0" y="-7.5" drill="1" shape="square"/>
<pad name="B" x="2.5" y="-7.5" drill="1" shape="square"/>
<pad name="S" x="-2.5" y="7" drill="1" shape="square"/>
<pad name="W" x="2.5" y="7" drill="1" shape="square"/>
<pad name="M2" x="-6" y="0" drill="3.2"/>
<pad name="M1" x="6" y="0" drill="3.2"/>
</package>
<package name="SLIDER">
<pad name="1" x="-36.75" y="1.75" drill="1.2" shape="octagon"/>
<pad name="2" x="-36.75" y="-1.75" drill="1.2" shape="octagon"/>
<pad name="3" x="36.75" y="1.75" drill="1.2" shape="octagon"/>
<pad name="G1" x="-31.4" y="4.2" drill="1.8"/>
<pad name="G3" x="31.4" y="4.2" drill="1.8"/>
<pad name="G2" x="-32.6" y="-4.2" drill="1.8"/>
<pad name="G4" x="32.6" y="-4.2" drill="1.8"/>
<wire x1="-37" y1="4.5" x2="37" y2="4.5" width="0.127" layer="21"/>
<wire x1="-37" y1="-4.5" x2="37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-37" y1="4.5" x2="-37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="37" y1="4.5" x2="37" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-30" y1="1" x2="30" y2="1" width="0.127" layer="21"/>
<wire x1="-30" y1="1" x2="-30" y2="-1" width="0.127" layer="21"/>
<wire x1="30" y1="1" x2="30" y2="-1" width="0.127" layer="21"/>
<text x="-38" y="0" size="1.27" layer="25" rot="R90" align="bottom-center">&gt;NAME</text>
<wire x1="-30" y1="-1" x2="30" y2="-1" width="0.127" layer="21"/>
</package>
<package name="POTI">
<pad name="2" x="-1.25" y="-11" drill="1"/>
<pad name="3" x="1.25" y="-11" drill="1"/>
<pad name="1" x="-3.75" y="-11" drill="1"/>
<pad name="4" x="3.75" y="-11" drill="1"/>
<pad name="M2" x="5.45" y="0" drill="2.5"/>
<pad name="M1" x="-5.45" y="0" drill="2.5"/>
<wire x1="-5.5" y1="-9.1" x2="5.5" y2="-9.1" width="0.127" layer="21"/>
<wire x1="-5.5" y1="6.6" x2="5.5" y2="6.6" width="0.127" layer="21"/>
<wire x1="5.5" y1="6.6" x2="5.5" y2="-9.1" width="0.127" layer="21"/>
<wire x1="-5.5" y1="6.6" x2="-5.5" y2="-9.1" width="0.127" layer="21"/>
<text x="0" y="6.6" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>
</package>
<package name="PROGPIN">
<smd name="VDD" x="0" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="MOSI" x="2.5" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="GND" x="5" y="0" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="!RST" x="5" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="CLK" x="2.5" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<smd name="MISO" x="0" y="-2.5" dx="2" dy="2" layer="1" roundness="100"/>
<pad name="P$7" x="-5" y="0" drill="2.5" diameter="3.81"/>
<pad name="P$8" x="10" y="-2.5" drill="2.5" diameter="3.81"/>
<wire x1="-10" y1="0" x2="-10" y2="-2.5" width="0.1524" layer="21"/>
<wire x1="-10" y1="-2.5" x2="-7.5" y2="-5" width="0.1524" layer="21"/>
<wire x1="-7.5" y1="-5" x2="12.5" y2="-5" width="0.1524" layer="21"/>
<wire x1="12.5" y1="-5" x2="15" y2="-2.5" width="0.1524" layer="21"/>
<wire x1="15" y1="-2.5" x2="15" y2="0" width="0.1524" layer="21"/>
<wire x1="15" y1="0" x2="12.5" y2="2.5" width="0.1524" layer="21"/>
<wire x1="12.5" y1="2.5" x2="-7.5" y2="2.5" width="0.1524" layer="21"/>
<wire x1="-7.5" y1="2.5" x2="-10" y2="0" width="0.1524" layer="21"/>
<text x="-5" y="2.5" size="1.778" layer="25">&gt;NAME</text>
</package>
<package name="12832_OLED">
<pad name="4" x="-3.81" y="0" drill="0.9" shape="octagon"/>
<pad name="3" x="-1.27" y="0" drill="0.9" shape="octagon"/>
<pad name="2" x="1.27" y="0" drill="0.9" shape="octagon"/>
<pad name="1" x="3.81" y="0" drill="0.9" shape="octagon"/>
<wire x1="-6" y1="-2.54" x2="6" y2="-2.54" width="0.1524" layer="21"/>
<wire x1="-6" y1="35.46" x2="6" y2="35.46" width="0.1524" layer="21"/>
<wire x1="-6" y1="35.46" x2="-6" y2="-2.54" width="0.1524" layer="21"/>
<wire x1="6" y1="35.46" x2="6" y2="-2.54" width="0.1524" layer="21"/>
</package>
</packages>
<symbols>
<symbol name="ATTINY84A">
<pin name="PA4" x="-17.78" y="5.08" length="middle"/>
<pin name="PA3" x="-17.78" y="2.54" length="middle"/>
<pin name="PA2" x="-17.78" y="0" length="middle"/>
<pin name="PA1" x="-17.78" y="-2.54" length="middle"/>
<pin name="PA0" x="-17.78" y="-5.08" length="middle"/>
<pin name="GND" x="0" y="-17.78" length="middle" rot="R90"/>
<pin name="PB1" x="17.78" y="-2.54" length="middle" rot="R180"/>
<pin name="PB3" x="17.78" y="0" length="middle" rot="R180"/>
<pin name="PB2" x="17.78" y="2.54" length="middle" rot="R180"/>
<pin name="PA7" x="17.78" y="5.08" length="middle" rot="R180"/>
<pin name="PA6" x="5.08" y="17.78" length="middle" rot="R270"/>
<pin name="PB0" x="17.78" y="-5.08" length="middle" rot="R180"/>
<pin name="VCC" x="2.54" y="-17.78" length="middle" rot="R90"/>
<wire x1="-12.7" y1="12.7" x2="-12.7" y2="-12.7" width="0.254" layer="94"/>
<wire x1="-12.7" y1="-12.7" x2="12.7" y2="-12.7" width="0.254" layer="94"/>
<wire x1="12.7" y1="-12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/>
<wire x1="12.7" y1="12.7" x2="-12.7" y2="12.7" width="0.254" layer="94"/>
<pin name="PA5" x="-5.08" y="17.78" length="middle" rot="R270"/>
</symbol>
<symbol name="DREHGEBER">
<circle x="0" y="0" radius="2.54" width="0.254" layer="94"/>
<pin name="A" x="-15.24" y="2.54" length="middle"/>
<pin name="B" x="-15.24" y="0" length="middle"/>
<pin name="COM" x="-15.24" y="-2.54" length="middle"/>
<pin name="SW+" x="15.24" y="2.54" length="middle" rot="R180"/>
<pin name="SW-" x="15.24" y="0" length="middle" rot="R180"/>
<wire x1="-10.16" y1="5.08" x2="10.16" y2="5.08" width="0.254" layer="94"/>
<wire x1="10.16" y1="5.08" x2="10.16" y2="-5.08" width="0.254" layer="94"/>
<wire x1="10.16" y1="-5.08" x2="-10.16" y2="-5.08" width="0.254" layer="94"/>
<wire x1="-10.16" y1="-5.08" x2="-10.16" y2="5.08" width="0.254" layer="94"/>
<pin name="GND" x="0" y="-10.16" length="middle" rot="R90"/>
</symbol>
<symbol name="SLIDER">
<pin name="1" x="0" y="17.78" length="middle" rot="R270"/>
<pin name="3" x="0" y="-17.78" length="middle" rot="R90"/>
<wire x1="-2.54" y1="12.7" x2="5.08" y2="12.7" width="0.254" layer="94"/>
<wire x1="5.08" y1="12.7" x2="5.08" y2="-12.7" width="0.254" layer="94"/>
<wire x1="5.08" y1="-12.7" x2="-2.54" y2="-12.7" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-12.7" x2="-2.54" y2="12.7" width="0.254" layer="94"/>
<pin name="2" x="-7.62" y="0" length="middle"/>
<pin name="GND" x="2.54" y="-17.78" length="middle" rot="R90"/>
<text x="5.08" y="12.7" size="1.27" layer="95" rot="R270">&gt;NAME</text>
</symbol>
<symbol name="POTI">
<pin name="1" x="0" y="15.24" length="middle" rot="R270"/>
<pin name="3" x="0" y="-15.24" length="middle" rot="R90"/>
<pin name="2" x="-10.16" y="0" length="middle"/>
<wire x1="-2.54" y1="7.62" x2="0" y2="7.62" width="0.254" layer="94"/>
<wire x1="0" y1="7.62" x2="2.54" y2="7.62" width="0.254" layer="94"/>
<wire x1="2.54" y1="7.62" x2="2.54" y2="-5.08" width="0.254" layer="94"/>
<wire x1="2.54" y1="-5.08" x2="2.54" y2="-7.62" width="0.254" layer="94"/>
<wire x1="2.54" y1="-7.62" x2="0" y2="-7.62" width="0.254" layer="94"/>
<wire x1="0" y1="-7.62" x2="-2.54" y2="-7.62" width="0.254" layer="94"/>
<wire x1="-2.54" y1="-7.62" x2="-2.54" y2="0" width="0.254" layer="94"/>
<wire x1="-2.54" y1="0" x2="-2.54" y2="7.62" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="7.62" y2="7.62" width="0.254" layer="94"/>
<wire x1="7.62" y1="7.62" x2="5.08" y2="7.62" width="0.254" layer="94"/>
<wire x1="5.08" y1="7.62" x2="7.62" y2="5.08" width="0.254" layer="94"/>
<wire x1="7.62" y1="5.08" x2="7.62" y2="7.62" width="0.254" layer="94"/>
<wire x1="-5.08" y1="0" x2="-2.54" y2="0" width="0.254" layer="94"/>
<wire x1="0" y1="10.16" x2="0" y2="7.62" width="0.254" layer="94"/>
<wire x1="0" y1="-10.16" x2="0" y2="-7.62" width="0.254" layer="94"/>
<pin name="GND" x="5.08" y="-15.24" length="middle" rot="R90"/>
<wire x1="5.08" y1="-10.16" x2="5.08" y2="-5.08" width="0.254" layer="94"/>
<wire x1="5.08" y1="-5.08" x2="2.54" y2="-5.08" width="0.254" layer="94"/>
<text x="-2.54" y="7.62" size="1.27" layer="95" rot="MR270">&gt;NAME</text>
</symbol>
<symbol name="PROGPIN">
<pin name="!RST" x="-7.62" y="5.08" length="middle"/>
<pin name="MISO" x="-7.62" y="2.54" length="middle"/>
<pin name="MOSI" x="-7.62" y="-2.54" length="middle"/>
<pin name="SCK" x="-7.62" y="-5.08" length="middle"/>
<pin name="VDD" x="5.08" y="12.7" length="middle" rot="R270"/>
<pin name="GND" x="5.08" y="-12.7" length="middle" rot="R90"/>
<wire x1="-2.54" y1="7.62" x2="7.62" y2="7.62" width="0.1524" layer="94"/>
<wire x1="7.62" y1="7.62" x2="7.62" y2="-7.62" width="0.1524" layer="94"/>
<wire x1="7.62" y1="-7.62" x2="-2.54" y2="-7.62" width="0.1524" layer="94"/>
<wire x1="-2.54" y1="-7.62" x2="-2.54" y2="7.62" width="0.1524" layer="94"/>
<text x="7.62" y="-7.62" size="1.778" layer="95" rot="MR90">&gt;NAME</text>
</symbol>
<symbol name="12832_OLED">
<pin name="SDA" x="-10.16" y="5.08" length="middle"/>
<pin name="SCL" x="-10.16" y="2.54" length="middle"/>
<pin name="VCC" x="-10.16" y="0" length="middle"/>
<pin name="GND" x="-10.16" y="-2.54" length="middle"/>
<wire x1="-5.08" y1="7.62" x2="-5.08" y2="-5.08" width="0.1524" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="58.42" y2="-5.08" width="0.1524" layer="94"/>
<wire x1="58.42" y1="-5.08" x2="58.42" y2="7.62" width="0.1524" layer="94"/>
<wire x1="58.42" y1="7.62" x2="-5.08" y2="7.62" width="0.1524" layer="94"/>
<wire x1="12.7" y1="5.08" x2="55.88" y2="5.08" width="0.1524" layer="94"/>
<wire x1="55.88" y1="5.08" x2="55.88" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="55.88" y1="-2.54" x2="12.7" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="12.7" y1="-2.54" x2="12.7" y2="5.08" width="0.1524" layer="94"/>
<text x="15.24" y="-2.54" size="1.778" layer="95">&gt;NAME</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="ATTINY84A">
<description>8-bit
Microcontroller
with 2K/4K/8K
Bytes In-System
Programmable
Flash</description>
<gates>
<gate name="G$1" symbol="ATTINY84A" x="0" y="0"/>
</gates>
<devices>
<device name="" package="QFN45P300X300X85-21T170">
<connects>
<connect gate="G$1" pin="GND" pad="8 21"/>
<connect gate="G$1" pin="PA0" pad="5"/>
<connect gate="G$1" pin="PA1" pad="4"/>
<connect gate="G$1" pin="PA2" pad="3"/>
<connect gate="G$1" pin="PA3" pad="2"/>
<connect gate="G$1" pin="PA4" pad="1"/>
<connect gate="G$1" pin="PA5" pad="20"/>
<connect gate="G$1" pin="PA6" pad="16"/>
<connect gate="G$1" pin="PA7" pad="15"/>
<connect gate="G$1" pin="PB0" pad="11"/>
<connect gate="G$1" pin="PB1" pad="12"/>
<connect gate="G$1" pin="PB2" pad="14"/>
<connect gate="G$1" pin="PB3" pad="13"/>
<connect gate="G$1" pin="VCC" pad="9"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="DREHGEBER">
<description>DREHGEBER</description>
<gates>
<gate name="G$1" symbol="DREHGEBER" x="0" y="0"/>
</gates>
<devices>
<device name="" package="DREHGEBER">
<connects>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="B" pad="B"/>
<connect gate="G$1" pin="COM" pad="C"/>
<connect gate="G$1" pin="GND" pad="M1 M2"/>
<connect gate="G$1" pin="SW+" pad="S"/>
<connect gate="G$1" pin="SW-" pad="W"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="PROGPIN" prefix="CON">
<description>Programming port</description>
<gates>
<gate name="G$1" symbol="PROGPIN" x="-2.54" y="0"/>
</gates>
<devices>
<device name="" package="PROGPIN">
<connects>
<connect gate="G$1" pin="!RST" pad="!RST"/>
<connect gate="G$1" pin="GND" pad="GND P$7 P$8"/>
<connect gate="G$1" pin="MISO" pad="MISO"/>
<connect gate="G$1" pin="MOSI" pad="MOSI"/>
<connect gate="G$1" pin="SCK" pad="CLK"/>
<connect gate="G$1" pin="VDD" pad="VDD"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="12832_OLED" prefix="DISP">
<gates>
<gate name="G$1" symbol="12832_OLED" x="0" y="0"/>
</gates>
<devices>
<device name="" package="12832_OLED">
<connects>
<connect gate="G$1" pin="GND" pad="1"/>
<connect gate="G$1" pin="SCL" pad="3"/>
<connect gate="G$1" pin="SDA" pad="4"/>
<connect gate="G$1" pin="VCC" pad="2"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</drawing>
</eagle>

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.0.0)
set(AVR_MCU attiny84a)
include(${CMAKE_CURRENT_SOURCE_DIR}/../avr-toolchain.cmake)
project(DSPLAB_display_firmware C)
add_subdirectory(SliderCommunication)
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-O3")
add_avr_executable(DSPLAB_display_firmware main.c)

File diff suppressed because one or more lines are too long

View File

@ -1,441 +0,0 @@
/*
* font.h
*
* Created on: 06.02.2019
* Author: julian
*/
#ifndef FONT_H_
#define FONT_H_
#include <avr/pgmspace.h>
#define FONT_WIDTH 0x0A // Width: 10
#define FONT_HEIGHT 0x0C // Height: 12
#define FONT_START 0x20 // First Char: 32
#define FONT_END 0xE0 // Numbers of Chars: 224
// Created by http://oleddisplay.squix.ch/ Consider a donation
// In case of problems make sure that you are using the font file with the correct version!
const char Fonttable[] PROGMEM = {
// Jump Table:
0xFF, 0xFF, 0x00, 0x03, // 32:65535
0x00, 0x00, 0x03, 0x02, // 33:0
0x00, 0x03, 0x03, 0x02, // 34:3
0x00, 0x06, 0x07, 0x04, // 35:6
0x00, 0x0D, 0x05, 0x03, // 36:13
0x00, 0x12, 0x05, 0x03, // 37:18
0x00, 0x17, 0x09, 0x05, // 38:23
0x00, 0x20, 0x01, 0x01, // 39:32
0x00, 0x21, 0x05, 0x03, // 40:33
0x00, 0x26, 0x03, 0x03, // 41:38
0x00, 0x29, 0x05, 0x03, // 42:41
0x00, 0x2E, 0x07, 0x04, // 43:46
0x00, 0x35, 0x01, 0x01, // 44:53
0x00, 0x36, 0x07, 0x04, // 45:54
0x00, 0x3D, 0x01, 0x01, // 46:61
0x00, 0x3E, 0x07, 0x04, // 47:62
0x00, 0x45, 0x07, 0x05, // 48:69
0x00, 0x4C, 0x04, 0x03, // 49:76
0x00, 0x50, 0x07, 0x04, // 50:80
0x00, 0x57, 0x07, 0x05, // 51:87
0x00, 0x5E, 0x09, 0x05, // 52:94
0x00, 0x67, 0x07, 0x04, // 53:103
0x00, 0x6E, 0x07, 0x04, // 54:110
0x00, 0x75, 0x09, 0x05, // 55:117
0x00, 0x7E, 0x07, 0x05, // 56:126
0x00, 0x85, 0x07, 0x04, // 57:133
0x00, 0x8C, 0x01, 0x01, // 58:140
0x00, 0x8D, 0x01, 0x01, // 59:141
0x00, 0x8E, 0x07, 0x04, // 60:142
0x00, 0x95, 0x07, 0x04, // 61:149
0x00, 0x9C, 0x07, 0x04, // 62:156
0x00, 0xA3, 0x05, 0x03, // 63:163
0x00, 0xA8, 0x09, 0x05, // 64:168
0x00, 0xB1, 0x0B, 0x06, // 65:177
0x00, 0xBC, 0x0B, 0x06, // 66:188
0x00, 0xC7, 0x0B, 0x06, // 67:199
0x00, 0xD2, 0x0B, 0x06, // 68:210
0x00, 0xDD, 0x07, 0x04, // 69:221
0x00, 0xE4, 0x07, 0x04, // 70:228
0x00, 0xEB, 0x0C, 0x07, // 71:235
0x00, 0xF7, 0x0B, 0x06, // 72:247
0x01, 0x02, 0x04, 0x02, // 73:258
0x01, 0x06, 0x07, 0x04, // 74:262
0x01, 0x0D, 0x09, 0x05, // 75:269
0x01, 0x16, 0x08, 0x04, // 76:278
0x01, 0x1E, 0x0F, 0x08, // 77:286
0x01, 0x2D, 0x0B, 0x06, // 78:301
0x01, 0x38, 0x0B, 0x06, // 79:312
0x01, 0x43, 0x09, 0x05, // 80:323
0x01, 0x4C, 0x0C, 0x07, // 81:332
0x01, 0x58, 0x0B, 0x06, // 82:344
0x01, 0x63, 0x08, 0x04, // 83:355
0x01, 0x6B, 0x07, 0x04, // 84:363
0x01, 0x72, 0x09, 0x05, // 85:370
0x01, 0x7B, 0x0B, 0x06, // 86:379
0x01, 0x86, 0x0F, 0x08, // 87:390
0x01, 0x95, 0x0C, 0x06, // 88:405
0x01, 0xA1, 0x0C, 0x06, // 89:417
0x01, 0xAD, 0x0A, 0x06, // 90:429
0x01, 0xB7, 0x04, 0x02, // 91:439
0x01, 0xBB, 0x08, 0x04, // 92:443
0x01, 0xC3, 0x04, 0x02, // 93:451
0x01, 0xC7, 0x05, 0x04, // 94:455
0x01, 0xCC, 0x0F, 0x08, // 95:460
0x01, 0xDB, 0x07, 0x06, // 96:475
0x01, 0xE2, 0x09, 0x05, // 97:482
0x01, 0xEB, 0x09, 0x05, // 98:491
0x01, 0xF4, 0x07, 0x05, // 99:500
0x01, 0xFB, 0x0C, 0x06, // 100:507
0x02, 0x07, 0x07, 0x05, // 101:519
0x02, 0x0E, 0x06, 0x03, // 102:526
0x02, 0x14, 0x08, 0x04, // 103:532
0x02, 0x1C, 0x07, 0x04, // 104:540
0x02, 0x23, 0x03, 0x02, // 105:547
0x02, 0x26, 0x02, 0x02, // 106:550
0x02, 0x28, 0x07, 0x04, // 107:552
0x02, 0x2F, 0x01, 0x02, // 108:559
0x02, 0x30, 0x0D, 0x07, // 109:560
0x02, 0x3D, 0x07, 0x05, // 110:573
0x02, 0x44, 0x09, 0x05, // 111:580
0x02, 0x4D, 0x09, 0x05, // 112:589
0x02, 0x56, 0x0A, 0x05, // 113:598
0x02, 0x60, 0x07, 0x04, // 114:608
0x02, 0x67, 0x07, 0x04, // 115:615
0x02, 0x6E, 0x06, 0x03, // 116:622
0x02, 0x74, 0x07, 0x05, // 117:628
0x02, 0x7B, 0x07, 0x04, // 118:635
0x02, 0x82, 0x0D, 0x07, // 119:642
0x02, 0x8F, 0x07, 0x04, // 120:655
0x02, 0x96, 0x0A, 0x05, // 121:662
0x02, 0xA0, 0x07, 0x04, // 122:672
0x02, 0xA7, 0x06, 0x03, // 123:679
0x02, 0xAD, 0x02, 0x01, // 124:685
0x02, 0xAF, 0x05, 0x03, // 125:687
0x02, 0xB4, 0x07, 0x04, // 126:692
0xFF, 0xFF, 0x00, 0x03, // 127:65535
0xFF, 0xFF, 0x00, 0x03, // 128:65535
0xFF, 0xFF, 0x00, 0x03, // 129:65535
0xFF, 0xFF, 0x00, 0x03, // 130:65535
0xFF, 0xFF, 0x00, 0x03, // 131:65535
0xFF, 0xFF, 0x00, 0x03, // 132:65535
0xFF, 0xFF, 0x00, 0x03, // 133:65535
0xFF, 0xFF, 0x00, 0x03, // 134:65535
0xFF, 0xFF, 0x00, 0x03, // 135:65535
0xFF, 0xFF, 0x00, 0x03, // 136:65535
0xFF, 0xFF, 0x00, 0x03, // 137:65535
0xFF, 0xFF, 0x00, 0x03, // 138:65535
0xFF, 0xFF, 0x00, 0x03, // 139:65535
0xFF, 0xFF, 0x00, 0x03, // 140:65535
0xFF, 0xFF, 0x00, 0x03, // 141:65535
0xFF, 0xFF, 0x00, 0x03, // 142:65535
0xFF, 0xFF, 0x00, 0x03, // 143:65535
0xFF, 0xFF, 0x00, 0x03, // 144:65535
0xFF, 0xFF, 0x00, 0x03, // 145:65535
0xFF, 0xFF, 0x00, 0x03, // 146:65535
0xFF, 0xFF, 0x00, 0x03, // 147:65535
0xFF, 0xFF, 0x00, 0x03, // 148:65535
0xFF, 0xFF, 0x00, 0x03, // 149:65535
0xFF, 0xFF, 0x00, 0x03, // 150:65535
0xFF, 0xFF, 0x00, 0x03, // 151:65535
0xFF, 0xFF, 0x00, 0x03, // 152:65535
0xFF, 0xFF, 0x00, 0x03, // 153:65535
0xFF, 0xFF, 0x00, 0x03, // 154:65535
0xFF, 0xFF, 0x00, 0x03, // 155:65535
0xFF, 0xFF, 0x00, 0x03, // 156:65535
0xFF, 0xFF, 0x00, 0x03, // 157:65535
0xFF, 0xFF, 0x00, 0x03, // 158:65535
0xFF, 0xFF, 0x00, 0x03, // 159:65535
0xFF, 0xFF, 0x00, 0x03, // 160:65535
0x02, 0xBB, 0x03, 0x02, // 161:699
0x02, 0xBE, 0x05, 0x03, // 162:702
0x02, 0xC3, 0x07, 0x04, // 163:707
0x02, 0xCA, 0x07, 0x04, // 164:714
0x02, 0xD1, 0x07, 0x04, // 165:721
0x02, 0xD8, 0x01, 0x01, // 166:728
0x02, 0xD9, 0x06, 0x03, // 167:729
0x02, 0xDF, 0x07, 0x06, // 168:735
0x02, 0xE6, 0x07, 0x04, // 169:742
0x02, 0xED, 0x03, 0x02, // 170:749
0x02, 0xF0, 0x05, 0x03, // 171:752
0x02, 0xF5, 0x07, 0x04, // 172:757
0x02, 0xFC, 0x07, 0x04, // 173:764
0x03, 0x03, 0x07, 0x04, // 174:771
0x03, 0x0A, 0x07, 0x06, // 175:778
0x03, 0x11, 0x01, 0x02, // 176:785
0x03, 0x12, 0x07, 0x04, // 177:786
0x03, 0x19, 0x05, 0x03, // 178:793
0x03, 0x1E, 0x03, 0x03, // 179:798
0x03, 0x21, 0x07, 0x06, // 180:801
0x03, 0x28, 0x07, 0x04, // 181:808
0x03, 0x2F, 0x09, 0x05, // 182:815
0x03, 0x38, 0x01, 0x01, // 183:824
0x03, 0x39, 0x08, 0x06, // 184:825
0x03, 0x41, 0x01, 0x02, // 185:833
0x03, 0x42, 0x05, 0x03, // 186:834
0x03, 0x47, 0x05, 0x03, // 187:839
0x03, 0x4C, 0x0A, 0x05, // 188:844
0x03, 0x56, 0x0A, 0x05, // 189:854
0x03, 0x60, 0x0C, 0x06, // 190:864
0x03, 0x6C, 0x05, 0x03, // 191:876
0x03, 0x71, 0x0B, 0x06, // 192:881
0x03, 0x7C, 0x0B, 0x06, // 193:892
0x03, 0x87, 0x0B, 0x06, // 194:903
0x03, 0x92, 0x0B, 0x06, // 195:914
0x03, 0x9D, 0x0B, 0x06, // 196:925
0x03, 0xA8, 0x0B, 0x06, // 197:936
0x03, 0xB3, 0x13, 0x0A, // 198:947
0x03, 0xC6, 0x0B, 0x06, // 199:966
0x03, 0xD1, 0x07, 0x04, // 200:977
0x03, 0xD8, 0x07, 0x04, // 201:984
0x03, 0xDF, 0x07, 0x04, // 202:991
0x03, 0xE6, 0x07, 0x04, // 203:998
0x03, 0xED, 0x04, 0x02, // 204:1005
0x03, 0xF1, 0x04, 0x02, // 205:1009
0x03, 0xF5, 0x04, 0x02, // 206:1013
0x03, 0xF9, 0x04, 0x02, // 207:1017
0x03, 0xFD, 0x0B, 0x06, // 208:1021
0x04, 0x08, 0x0B, 0x06, // 209:1032
0x04, 0x13, 0x0B, 0x06, // 210:1043
0x04, 0x1E, 0x0B, 0x06, // 211:1054
0x04, 0x29, 0x0B, 0x06, // 212:1065
0x04, 0x34, 0x0B, 0x06, // 213:1076
0x04, 0x3F, 0x0B, 0x06, // 214:1087
0x04, 0x4A, 0x05, 0x03, // 215:1098
0x04, 0x4F, 0x0B, 0x06, // 216:1103
0x04, 0x5A, 0x09, 0x05, // 217:1114
0x04, 0x63, 0x09, 0x05, // 218:1123
0x04, 0x6C, 0x09, 0x05, // 219:1132
0x04, 0x75, 0x09, 0x05, // 220:1141
0x04, 0x7E, 0x0C, 0x06, // 221:1150
0x04, 0x8A, 0x0B, 0x06, // 222:1162
0x04, 0x95, 0x09, 0x05, // 223:1173
0x04, 0x9E, 0x09, 0x05, // 224:1182
0x04, 0xA7, 0x09, 0x05, // 225:1191
0x04, 0xB0, 0x09, 0x05, // 226:1200
0x04, 0xB9, 0x09, 0x05, // 227:1209
0x04, 0xC2, 0x09, 0x05, // 228:1218
0x04, 0xCB, 0x09, 0x05, // 229:1227
0x04, 0xD4, 0x0F, 0x08, // 230:1236
0x04, 0xE3, 0x07, 0x04, // 231:1251
0x04, 0xEA, 0x07, 0x05, // 232:1258
0x04, 0xF1, 0x07, 0x05, // 233:1265
0x04, 0xF8, 0x07, 0x05, // 234:1272
0x04, 0xFF, 0x07, 0x05, // 235:1279
0x05, 0x06, 0x03, 0x02, // 236:1286
0x05, 0x09, 0x03, 0x02, // 237:1289
0x05, 0x0C, 0x03, 0x02, // 238:1292
0x05, 0x0F, 0x03, 0x02, // 239:1295
0x05, 0x12, 0x07, 0x04, // 240:1298
0x05, 0x19, 0x09, 0x05, // 241:1305
0x05, 0x22, 0x09, 0x05, // 242:1314
0x05, 0x2B, 0x09, 0x05, // 243:1323
0x05, 0x34, 0x09, 0x05, // 244:1332
0x05, 0x3D, 0x09, 0x05, // 245:1341
0x05, 0x46, 0x09, 0x05, // 246:1350
0x05, 0x4F, 0x07, 0x04, // 247:1359
0x05, 0x56, 0x09, 0x05, // 248:1366
0x05, 0x5F, 0x07, 0x05, // 249:1375
0x05, 0x66, 0x07, 0x05, // 250:1382
0x05, 0x6D, 0x07, 0x05, // 251:1389
0x05, 0x74, 0x07, 0x05, // 252:1396
0x05, 0x7B, 0x0A, 0x05, // 253:1403
0x05, 0x85, 0x0B, 0x06, // 254:1413
0x05, 0x90, 0x0A, 0x05, // 255:1424
// Font Data:
0x60,0x01,0x18, // 33
0x00,0x00,0x18, // 34
0x50,0x00,0xF8,0x00,0xF0,0x00,0x58, // 35
0x58,0x00,0xAC,0x01,0xF0, // 36
0x18,0x01,0xD8,0x00,0xB8, // 37
0xE0,0x00,0x38,0x01,0x34,0x01,0xE8,0x00,0x34, // 38
0x18, // 39
0xE0,0x00,0x18,0x03,0x04, // 40
0x88,0x01,0x70, // 41
0x30,0x00,0x18,0x00,0x30, // 42
0x20,0x00,0xF8,0x00,0x20,0x00,0x20, // 43
0x80, // 44
0x20,0x00,0x20,0x00,0x20,0x00,0x20, // 45
0x80, // 46
0x00,0x01,0xC0,0x00,0x30,0x00,0x0C, // 47
0x78,0x00,0x84,0x00,0x84,0x00,0x78, // 48
0x20,0x00,0xF8,0x01, // 49
0xB0,0x00,0xC8,0x00,0x48,0x00,0xB8, // 50
0x98,0x00,0x24,0x01,0x24,0x01,0xF8, // 51
0x40,0x00,0x38,0x00,0x20,0x00,0xFC,0x01,0x40, // 52
0x40,0x00,0xB8,0x00,0x98,0x00,0x78, // 53
0x70,0x00,0xA8,0x00,0xA8,0x00,0xF0, // 54
0x08,0x00,0x88,0x00,0x68,0x00,0x28,0x00,0x38, // 55
0x40,0x00,0xB8,0x00,0xA8,0x00,0x78, // 56
0xB0,0x00,0xA8,0x00,0x68,0x00,0x30, // 57
0xA0, // 58
0xA0, // 59
0x40,0x00,0x60,0x00,0x90,0x00,0x90, // 60
0xA0,0x00,0xA0,0x00,0xA0,0x00,0xA0, // 61
0x50,0x00,0x50,0x00,0x20,0x00,0x20, // 62
0x78,0x00,0x64,0x01,0x24, // 63
0x70,0x00,0xB8,0x00,0xB8,0x00,0xA8,0x00,0x70, // 64
0x40,0x00,0xB8,0x00,0x24,0x00,0xA4,0x00,0x78,0x00,0x20, // 65
0xF4,0x01,0xF8,0x01,0x84,0x00,0xE4,0x00,0x64,0x00,0x18, // 66
0x70,0x00,0x90,0x00,0x88,0x00,0x88,0x00,0x98,0x00,0x58, // 67
0x08,0x01,0xFC,0x01,0x08,0x01,0x08,0x01,0x90,0x00,0x70, // 68
0x60,0x00,0x98,0x00,0x98,0x00,0x50, // 69
0x04,0x00,0xFC,0x01,0x44,0x00,0x04, // 70
0x70,0x00,0xC8,0x00,0x84,0x00,0x84,0x01,0x84,0x02,0xF8,0x01, // 71
0x44,0x00,0xF8,0x01,0x40,0x00,0x40,0x00,0x40,0x00,0xFC, // 72
0x00,0x00,0xF8,0x01, // 73
0x80,0x01,0x40,0x01,0x04,0x01,0xF8, // 74
0x60,0x00,0xF8,0x01,0x20,0x00,0x70,0x00,0x8C, // 75
0x84,0x01,0xF8,0x00,0x80,0x00,0x00,0x01, // 76
0x00,0x00,0x70,0x00,0x88,0x00,0x78,0x00,0x70,0x00,0x08,0x00,0x88,0x00,0x70, // 77
0x00,0x00,0xF8,0x01,0x18,0x00,0x04,0x00,0xC4,0x01,0x3C, // 78
0x78,0x00,0x8C,0x00,0x84,0x00,0x84,0x00,0xCC,0x00,0x78, // 79
0x1C,0x00,0xFC,0x01,0x24,0x00,0x24,0x00,0x18, // 80
0x00,0x00,0x78,0x00,0x84,0x00,0x84,0x00,0xC4,0x00,0x78,0x01, // 81
0x18,0x00,0xFC,0x01,0x24,0x00,0x24,0x00,0xE4,0x01,0x18, // 82
0x80,0x00,0x58,0x01,0x28,0x01,0xD0,0x01, // 83
0x10,0x00,0x08,0x00,0xF8,0x01,0x08, // 84
0x00,0x00,0x78,0x00,0x80,0x00,0x80,0x00,0x78, // 85
0x0C,0x00,0x10,0x00,0xE0,0x03,0xA0,0x03,0x18,0x00,0x04, // 86
0x00,0x00,0xF0,0x00,0x88,0x00,0xE0,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0x78, // 87
0x00,0x00,0x8C,0x01,0x50,0x00,0x20,0x00,0xD0,0x00,0x0C,0x01, // 88
0x00,0x00,0xF0,0x00,0x88,0x0E,0x40,0x09,0xF8,0x07,0x00,0x02, // 89
0x10,0x01,0x10,0x01,0xC8,0x00,0xA8,0x00,0x38,0x01, // 90
0x00,0x00,0xFE,0x01, // 91
0x0C,0x00,0x10,0x00,0x60,0x00,0x80,0x01, // 92
0x04,0x01,0xFC,0x01, // 93
0x30,0x00,0x08,0x00,0x30, // 94
0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80, // 95
0x00,0x00,0x00,0x00,0x00,0x00,0x08, // 96
0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xF0, // 97
0xFC,0x01,0x20,0x01,0x10,0x01,0x10,0x01,0xE0, // 98
0xE0,0x00,0x10,0x01,0x10,0x01,0xA0, // 99
0xC0,0x00,0x20,0x01,0x20,0x01,0xA0,0x00,0xFC,0x00,0x00,0x01, // 100
0x60,0x00,0xD0,0x00,0xD0,0x00,0x70, // 101
0x10,0x00,0xF8,0x00,0x04,0x01, // 102
0x60,0x00,0x50,0x07,0xD0,0x05,0x70,0x03, // 103
0xFC,0x01,0x10,0x00,0x10,0x01,0xF0, // 104
0x00,0x00,0x78, // 105
0xF4,0x03, // 106
0xFC,0x00,0x60,0x00,0x60,0x00,0x90, // 107
0xFC, // 108
0x10,0x00,0xE0,0x00,0x10,0x00,0xF0,0x00,0x20,0x00,0x90,0x00,0x70, // 109
0xE0,0x00,0x10,0x00,0x90,0x00,0x70, // 110
0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x60, // 111
0xD0,0x03,0xE0,0x03,0x90,0x00,0x90,0x00,0x60, // 112
0xE0,0x00,0x90,0x00,0x90,0x00,0xF0,0x03,0x80,0x04, // 113
0x00,0x00,0xF0,0x01,0x10,0x00,0x30, // 114
0x30,0x00,0x50,0x00,0xD0,0x00,0xE0, // 115
0x10,0x00,0xF8,0x00,0x14,0x01, // 116
0x70,0x00,0x80,0x00,0x80,0x00,0x70, // 117
0x30,0x00,0xC0,0x00,0x40,0x00,0x30, // 118
0xF0,0x00,0x80,0x00,0x80,0x00,0xF0,0x00,0x80,0x00,0x90,0x00,0x70, // 119
0xA0,0x00,0x40,0x00,0xB0,0x00,0x80, // 120
0x70,0x00,0x40,0x0F,0xA0,0x08,0xF0,0x07,0x80,0x01, // 121
0xA0,0x00,0xD0,0x00,0xD0,0x00,0xF0, // 122
0x20,0x00,0x20,0x00,0xFC,0x01, // 123
0xF8,0x01, // 124
0x04,0x01,0xF8,0x00,0x20, // 125
0x60,0x00,0x20,0x00,0x20,0x00,0x20, // 126
0x00,0x00,0xF8, // 161
0x70,0x00,0xDC,0x00,0x78, // 162
0x20,0x00,0xF8,0x00,0xA8,0x00,0xB0, // 163
0x78,0x00,0x48,0x00,0x48,0x00,0x78, // 164
0x10,0x00,0xE0,0x00,0xB8,0x00,0xA0, // 165
0xD8, // 166
0x7C,0x00,0x94,0x01,0xE8,0x01, // 167
0x00,0x00,0x00,0x00,0x08,0x00,0x08, // 168
0x30,0x00,0x78,0x00,0x78,0x00,0x30, // 169
0x30,0x00,0x30, // 170
0x60,0x00,0xF0,0x00,0x90, // 171
0x20,0x00,0x20,0x00,0x20,0x00,0xE0, // 172
0x20,0x00,0x20,0x00,0x20,0x00,0x20, // 173
0x30,0x00,0x78,0x00,0x78,0x00,0x30, // 174
0x00,0x00,0x00,0x00,0x08,0x00,0x08, // 175
0x08, // 176
0xA0,0x00,0xB8,0x00,0x90,0x00,0x90, // 177
0x28,0x00,0x38,0x00,0x20, // 178
0x38,0x00,0x38, // 179
0x00,0x00,0x00,0x00,0x00,0x00,0x08, // 180
0xF0,0x03,0x80,0x00,0x80,0x00,0x70, // 181
0x30,0x00,0x48,0x00,0xF8,0x00,0x78,0x00,0x88, // 182
0x20, // 183
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01, // 184
0x38, // 185
0x30,0x00,0x30,0x00,0x30, // 186
0x90,0x00,0xF0,0x00,0x60, // 187
0x38,0x00,0xC0,0x00,0xB0,0x00,0xC8,0x00,0xE0,0x01, // 188
0x38,0x00,0xC0,0x00,0x70,0x01,0xA8,0x00,0x40,0x01, // 189
0x30,0x00,0x38,0x00,0xC0,0x00,0x30,0x00,0x88,0x00,0xE0,0x01, // 190
0xC0,0x01,0x54,0x01,0xF0, // 191
0x40,0x00,0xB8,0x00,0x24,0x00,0xA6,0x00,0x78,0x00,0x20, // 192
0x40,0x00,0xB8,0x00,0x24,0x00,0xA4,0x00,0x7A,0x00,0x20, // 193
0x40,0x00,0xB8,0x00,0x26,0x00,0xA4,0x00,0x78,0x00,0x20, // 194
0x40,0x00,0xB8,0x00,0x26,0x00,0xA6,0x00,0x7A,0x00,0x22, // 195
0x40,0x00,0xB8,0x00,0x26,0x00,0xA6,0x00,0x78,0x00,0x20, // 196
0x40,0x00,0xB0,0x00,0x28,0x00,0x26,0x00,0xF8,0x00,0x20, // 197
0x60,0x00,0xD8,0x00,0x44,0x00,0x44,0x00,0x4C,0x00,0xF8,0x00,0xC8,0x00,0xC8,0x00,0x44,0x00,0x20, // 198
0x70,0x00,0xC8,0x00,0x84,0x03,0x84,0x03,0x9C,0x00,0x58, // 199
0x60,0x00,0x98,0x00,0x9A,0x00,0x50, // 200
0x60,0x00,0x98,0x00,0x98,0x00,0x52, // 201
0x60,0x00,0x98,0x00,0x9A,0x00,0x52, // 202
0x60,0x00,0x9A,0x00,0x9A,0x00,0x50, // 203
0x02,0x00,0xF8,0x01, // 204
0x00,0x00,0xFA,0x01, // 205
0x02,0x00,0xFA,0x01, // 206
0x02,0x00,0xFA,0x01, // 207
0xA4,0x00,0xFC,0x00,0xA4,0x00,0x84,0x00,0x48,0x00,0x38, // 208
0x00,0x00,0xF8,0x01,0x1E,0x00,0x06,0x00,0xC6,0x01,0x3E, // 209
0x78,0x00,0x8C,0x00,0x84,0x00,0x86,0x00,0xCC,0x00,0x78, // 210
0x78,0x00,0x8C,0x00,0x84,0x00,0x86,0x00,0xCC,0x00,0x78, // 211
0x78,0x00,0x8C,0x00,0x86,0x00,0x84,0x00,0xCC,0x00,0x78, // 212
0x78,0x00,0x8C,0x00,0x86,0x00,0x86,0x00,0xCE,0x00,0x7A, // 213
0x78,0x00,0x8C,0x00,0x86,0x00,0x86,0x00,0xCC,0x00,0x78, // 214
0x50,0x00,0x20,0x00,0x50, // 215
0xF0,0x01,0x18,0x01,0xC8,0x00,0xB8,0x00,0x8C,0x00,0x70, // 216
0x00,0x00,0x78,0x00,0x82,0x00,0x80,0x00,0x78, // 217
0x00,0x00,0x78,0x00,0x80,0x00,0x82,0x00,0x78, // 218
0x00,0x00,0x78,0x00,0x82,0x00,0x82,0x00,0x78, // 219
0x00,0x00,0x78,0x00,0x82,0x00,0x82,0x00,0x78, // 220
0x00,0x00,0xF0,0x00,0x88,0x0E,0x42,0x09,0xF8,0x07,0x00,0x02, // 221
0x10,0x00,0x08,0x00,0xFC,0x01,0x48,0x00,0x48,0x00,0x30, // 222
0x00,0x00,0x78,0x00,0xA4,0x01,0x3C,0x01,0xC0, // 223
0x60,0x00,0x90,0x00,0x94,0x00,0x90,0x00,0xF0, // 224
0x60,0x00,0x90,0x00,0x90,0x00,0x94,0x00,0xF0, // 225
0x60,0x00,0x94,0x00,0x94,0x00,0x90,0x00,0xF0, // 226
0x60,0x00,0x98,0x00,0x98,0x00,0x98,0x00,0xF8, // 227
0x60,0x00,0x98,0x00,0x98,0x00,0x90,0x00,0xF0, // 228
0x60,0x00,0x98,0x00,0x98,0x00,0x90,0x00,0xF0, // 229
0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0xE0,0x00,0xD0,0x00,0xD0,0x00,0x70, // 230
0x60,0x00,0x90,0x03,0x90,0x03,0x60, // 231
0x60,0x00,0xD0,0x00,0xD8,0x00,0x70, // 232
0x60,0x00,0xD0,0x00,0xD0,0x00,0x78, // 233
0x60,0x00,0xD0,0x00,0xD4,0x00,0x74, // 234
0x60,0x00,0xD8,0x00,0xD8,0x00,0x70, // 235
0x08,0x00,0x70, // 236
0x00,0x00,0x74, // 237
0x08,0x00,0x70, // 238
0x08,0x00,0x78, // 239
0xD0,0x01,0x38,0x01,0x3C,0x01,0xE0, // 240
0xE0,0x00,0x18,0x00,0x98,0x00,0x78,0x00,0x08, // 241
0x60,0x00,0x90,0x00,0x94,0x00,0x90,0x00,0x60, // 242
0x60,0x00,0x90,0x00,0x90,0x00,0x94,0x00,0x60, // 243
0x60,0x00,0x90,0x00,0x94,0x00,0x94,0x00,0x60, // 244
0x60,0x00,0x90,0x00,0x98,0x00,0x98,0x00,0x68, // 245
0x60,0x00,0x98,0x00,0x98,0x00,0x90,0x00,0x60, // 246
0x40,0x00,0x40,0x00,0x50,0x01,0x40, // 247
0xE0,0x00,0xB0,0x00,0xD0,0x00,0xB0,0x00,0x70, // 248
0x70,0x00,0x80,0x00,0x88,0x00,0x70, // 249
0x70,0x00,0x80,0x00,0x80,0x00,0x78, // 250
0x70,0x00,0x88,0x00,0x88,0x00,0x70, // 251
0x70,0x00,0x88,0x00,0x88,0x00,0x70, // 252
0x70,0x00,0x40,0x0F,0xA0,0x08,0xF4,0x07,0x80,0x01, // 253
0xCC,0x03,0xF0,0x03,0x90,0x00,0x90,0x00,0x90,0x00,0x60, // 254
0x70,0x00,0x48,0x0F,0xA8,0x08,0xF0,0x07,0x80,0x01 // 255
};
#endif /* FONT_H_ */

View File

@ -1,403 +0,0 @@
/*
* DisplayBoardFirmware.c
*
* Created: 08.01.2019 19:46:33
* Author : julian
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stddef.h> // for size_t
#define DISPLAY_PORT PORTA
#define DISPLAY_PIN PINA
#define DISPLAY_DDR DDRA
#define DISPLAY_SCL (1<<PA3)
#define DISPLAY_SDA (1<<PA2)
#define DISPLAY_SET(pin) do { DISPLAY_PORT &= ~(pin); DISPLAY_DDR |= (pin); } while(0)
#define DISPLAY_PIN_CLEAR(pin) do { DISPLAY_DDR &= ~(pin); DISPLAY_PORT |= (pin); } while(0)
#define DISPLAY_HALFCLK 1
// display commands
enum {
DISPLAY_CMD_CLK_DIV = 0xD5,
DISPLAY_CMD_MULTIPLEX = 0xA8,
DISPLAY_CMD_CHARGEPUMP = 0x8D,
DISPLAY_CMD_COMM_VOLTAGE_DETECT = 0xDB,
DISPLAY_CMD_LINE_OFFSET = 0xD3,
DISPLAY_CMD_LINE_START = 0x40,
DISPLAY_CMD_ENABLE = 0xAE,
DISPLAY_CMD_INVERT = 0xA6,
DISPLAY_CMD_TEST = 0xA4,
DISPLAY_CMD_CONTRAST = 0x81,
DISPLAY_CMD_ADDR_MODE = 0x20,
DISPLAY_CMD_COLUMN_ADDR = 0x21,
DISPLAY_CMD_PAGE_ADDR = 0x22,
DISPLAY_CMD_SCANMODE_POS = 0xC8,
DISPLAY_CMD_SCANMODE_NEG = 0xC0,
};
/* Display driver */
typedef struct {
volatile uint8_t current_buffer:1;
} display_t;
display_t display;
static inline void display_start() {
DISPLAY_SET(DISPLAY_SDA);
_delay_us(DISPLAY_HALFCLK);
DISPLAY_SET(DISPLAY_SCL);
}
static inline void display_stop() {
DISPLAY_PIN_CLEAR(DISPLAY_SCL);
_delay_us(DISPLAY_HALFCLK);
DISPLAY_PIN_CLEAR(DISPLAY_SDA);
}
const uint8_t display_addr = 0x78;
//const uint8_t display_addr = 0x1E;
// returns 1 on NACK
int display_send(uint8_t b) {
int i = 0;
while(i < 8)
{
if (b&(0x80>>i))
DISPLAY_PIN_CLEAR(DISPLAY_SDA);
else
DISPLAY_SET(DISPLAY_SDA);
_delay_us(1);
DISPLAY_PIN_CLEAR(DISPLAY_SCL);
_delay_us(DISPLAY_HALFCLK);
DISPLAY_SET(DISPLAY_SCL);
_delay_us(DISPLAY_HALFCLK-2);
i++;
}
DISPLAY_PIN_CLEAR(DISPLAY_SDA);
_delay_us(DISPLAY_HALFCLK);
DISPLAY_PIN_CLEAR(DISPLAY_SCL);
_delay_us(DISPLAY_HALFCLK);
// look for ACK
int result = DISPLAY_PIN & DISPLAY_SDA;
DISPLAY_SET(DISPLAY_SCL);
// ack means 0 during clk period
return result != 0;
}
int display_ncmd(uint8_t *cmd, uint8_t len) {
int result = 1;
display_start();
if (display_send(display_addr)) goto fail;
uint8_t prefix = 0x80;
while(len--)
{
if (display_send(prefix) || display_send(*cmd))
goto fail;
if (len-1) {
prefix = 0x00;
}
++cmd;
}
result = 0;
fail:
display_stop();
return result;
}
int display_cmd(uint8_t cmd) {
return display_ncmd(&cmd, 1);
}
int display_data_chunk(uint8_t ** data, size_t *len) {
int result = 1;
uint8_t count = 16;
display_start();
if (display_send(display_addr)) {
goto fail;
}
if (display_send(0x40))
goto fail;
while(count && *len && !display_send(**data)) {
count--;
(*len)--;
(*data)++;
}
result = 0;
fail:
display_stop();
return result;
}
int display_data(uint8_t * data, size_t len) {
int result = 1;
while(len && !(result = display_data_chunk(&data, &len))) {}
return result;
}
void display_copy(int x, int y, int w, int h, uint8_t *data, size_t len) {
display_cmd(DISPLAY_CMD_COLUMN_ADDR);
display_cmd(y);
display_cmd(y + h);
display_cmd(DISPLAY_CMD_PAGE_ADDR);
display_cmd(x + 4*display.current_buffer);
display_cmd(x + w + 4*display.current_buffer -1);
display_data(data, len);
}
void display_clear() {
static uint8_t chunk[8] = {0xFF};
size_t len = 0;
size_t c = 8;
display_cmd(DISPLAY_CMD_COLUMN_ADDR);
display_cmd(0);
display_cmd(127);
display_cmd(DISPLAY_CMD_PAGE_ADDR);
display_cmd(display.current_buffer*4);
display_cmd(display.current_buffer*4+3);
uint8_t * current = chunk;
while(len < 128*4) {
display_start();
display_send(display_addr);
display_send(0x40);
for (uint8_t i = 0; i < 16; i++) {
display_send(0x00);
}
display_stop();
len += 16;
}
}
#include "font.h"
static inline void pgm_memcpy(uint8_t * dest, const uint8_t * src, size_t s) {
while(s--) {
*dest = pgm_read_byte(src);
++src;
++dest;
}
}
void display_font_copy(char c, int x, int y) {
static uint8_t buffer[FONT_HEIGHT*2];
if (c < FONT_START || c > FONT_START + FONT_END)
return;
int offset = c - FONT_START;
uint16_t index = pgm_read_word(Fonttable + offset);
uint8_t w = pgm_read_byte(Fonttable + offset +2);
uint8_t h = pgm_read_byte(Fonttable + offset +3);
const uint8_t * current = Fonttable + index + FONT_END;
uint8_t linebuffer = pgm_read_byte(current++);
uint8_t count = 8;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
count--;
if (!count) {
count = 8;
linebuffer = pgm_read_byte(current++);
}
}
}
// pgm_memcpy((uint8_t*)&glyph_buffer, (const uint8_t*)Glyphtable, sizeof(glyph_buffer));
// pgm_memcpy(buffer, Fonttable + glyph_buffer.index, glyph_buffer.w);
// display_copy(x, y, 1, FONT_HEIGHT, buffer, FONT_HEIGHT);
}
// initializes display
// setup parameters for normal operation
void display_init()
{
display.current_buffer = 1;
DISPLAY_PIN_CLEAR(DISPLAY_SCL | DISPLAY_SDA);
display_cmd(DISPLAY_CMD_ENABLE);
display_cmd(DISPLAY_CMD_CLK_DIV);
display_cmd(0x80);
display_cmd(DISPLAY_CMD_MULTIPLEX);
display_cmd(63);
display_cmd(DISPLAY_CMD_CHARGEPUMP);
display_cmd(0x14);
display_cmd(0xDA);
display_cmd(0x02);
display_cmd(DISPLAY_CMD_LINE_OFFSET);
display_cmd(0);
display_cmd(DISPLAY_CMD_LINE_START | 0);
display_cmd(DISPLAY_CMD_COMM_VOLTAGE_DETECT);
display_cmd(0x40);
display_cmd(DISPLAY_CMD_ADDR_MODE);
display_cmd(0x01);
display_cmd(DISPLAY_CMD_SCANMODE_POS);
display_cmd(DISPLAY_CMD_TEST); // no testing mode
display_clear();
display_cmd(DISPLAY_CMD_ENABLE|1);
}
void display_swap() {
display.current_buffer = !display.current_buffer;
display_cmd(DISPLAY_CMD_LINE_START | 32*display.current_buffer);
}
// TODO: find out what display is capable of
void display_write(const char * str)
{
}
// should be called after every change to display content is made
// TODO: check if this is possible to implement
void display_present() {
}
/* encoder driver */
typedef enum {
ENC_DIR_NONE,
ENC_DIR_CW,
ENC_DIR_CCW,
} encoder_dir_t;
struct encoder;
typedef void (*encoder_callback_t)(struct encoder * encoder);
typedef struct encoder {
encoder_dir_t dir;
uint16_t velo;
int16_t pos;
encoder_callback_t callback;
} encoder_t;
encoder_t encoder;
// encoder can only be at the INT0/INT1 lines
// maybe pushbutton on pinchange
void encoder_init(encoder_t * encoder) {
*encoder = (encoder_t){};
// TODO: configure PCINT0 interrupt for direction
// TODO: configure PCINT1 interrupt for push button
}
volatile encoder_dir_t first;
#include <avr/interrupt.h>
// turning interrupt
ISR(PCINT0_vect) {
// find edge type
if (first == ENC_DIR_NONE) {
first = ENC_DIR_CCW;
return;
}
encoder.dir = first;
encoder.pos -= 1;
if (encoder.callback)
encoder.callback(&encoder);
first = ENC_DIR_NONE;
}
// push interrupt
ISR(PCINT1_vect) {
// TODO
}
/* main application */
typedef struct menuitem {
struct menuitem * root;
const char * text;
struct menuitem * children;
uint8_t children_count;
} menuitem;
#include <stddef.h>
menuitem root = {.root = NULL,
.text = NULL,
};
int main(void)
{
//_delay_ms(100);
display_init();
uint8_t face[8] = {
0b11111111,
0b11111110,
0b11111100,
0b11111000,
0b11110000,
0b11100000,
0b11000000,
0b10000000,
};
for (int j = 0; j< 16; j++)
for (int i = 0; i<4; i++)
{
display_copy(i,j*8, 1,8, face, 8);
display_font_copy('a', i,j*8);
}
display_swap();
/* Replace with your application code */
while (1)
{
}
}

Binary file not shown.