diff --git a/Documentation/index.rst b/Documentation/index.rst
index 855d3cc01191dc150e11f61c57162a89b2de0bd0..a4715997a83251eb7ab2beaea51ff74a2d3f65be 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -3,9 +3,16 @@ card10 firmware docs
 
 This is the API documentation for card10's default firmware.
 
+Overview
+--------
+
+The design roughly looks like this:
+
+.. image:: static/overview.svg
+
 .. toctree::
    :maxdepth: 2
-   :caption: Contents:
+   :caption: Contents
 
    epicardium
    pycardium
diff --git a/Documentation/static/overview.svg b/Documentation/static/overview.svg
new file mode 100644
index 0000000000000000000000000000000000000000..761fe089dba13ab9a66a66c6699f6b1724df29a8
--- /dev/null
+++ b/Documentation/static/overview.svg
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="193.0201mm"
+   height="112.18587mm"
+   viewBox="0 0 193.0201 112.18587"
+   version="1.1"
+   id="svg1036"
+   sodipodi:docname="overview.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <defs
+     id="defs1030">
+    <marker
+       inkscape:stockid="TriangleOutS"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="TriangleOutS"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6970"
+         d="M 5.77,0 -2.88,5 V -5 Z"
+         style="fill:#b7b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#b7b7b7;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="scale(0.2)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="EmptyTriangleOutS"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="EmptyTriangleOutS"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6988"
+         d="M 5.77,0 -2.88,5 V -5 Z"
+         style="fill:#ffffff;fill-rule:evenodd;stroke:#6f6f6f;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.2,0,0,0.2,-0.6,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="StopS"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="StopS"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6997"
+         d="M 0,5.65 V -5.65"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#6f6f6f;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="scale(0.2)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutM"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="TriangleOutM"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6967"
+         d="M 5.77,0 -2.88,5 V -5 Z"
+         style="fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#6f6f6f;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="scale(0.4)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5075"
+         style="fill:#b7b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#b7b7b7;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5078"
+         style="fill:#b7b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#b7b7b7;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5075-3"
+         style="fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#6f6f6f;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5078-6"
+         style="fill:#6f6f6f;fill-opacity:1;fill-rule:evenodd;stroke:#6f6f6f;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#000000"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="374.3184"
+     inkscape:cy="190.35742"
+     inkscape:document-units="mm"
+     inkscape:current-layer="g6159"
+     showgrid="false"
+     inkscape:pagecheckerboard="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1020"
+     inkscape:window-x="1920"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata1033">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     style="display:inline"
+     transform="translate(-2.3373782,-73.326953)">
+    <g
+       id="g8661">
+      <rect
+         y="73.453064"
+         x="2.4634895"
+         height="111.93365"
+         width="192.76787"
+         id="rect6184"
+         style="fill:#fbfbfb;fill-opacity:1;stroke:#000000;stroke-width:0.25222266;stroke-opacity:1" />
+      <g
+         transform="translate(10.849283,-15.686012)"
+         id="g6159">
+        <path
+           style="fill:none;stroke:#b7b7b7;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Sstart);marker-end:url(#Arrow2Send)"
+           d="m 77.890264,138.22847 h 13.726774 l 6.041104,19.27028 h 11.583228"
+           id="path5043"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cccc" />
+        <g
+           id="g6071">
+          <rect
+             y="124.83184"
+             x="9.8597145"
+             height="45.194477"
+             width="60.977013"
+             id="rect1634"
+             style="fill:#f3f3f3;fill-opacity:1;stroke-width:0.26458332" />
+          <path
+             sodipodi:nodetypes="ccccccccccccccccccccc"
+             inkscape:connector-curvature="0"
+             d="m 39.240598,154.19854 v 7.49338 m 8.728558,-36.86008 v 29.3667 m -17.727077,-29.3667 v 29.3667 m -20.3823647,0 H 70.836722 v -2.40015 H 9.8597143 Z m 0,7.49338 H 70.836722 M 9.8597143,124.83184 v 45.19446 m 0,0 H 70.836722 m 0,0 v -45.19446 m 0,0 H 9.8597143"
+             style="fill:#000000;fill-opacity:0.98994978;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1593" />
+          <text
+             id="text1598"
+             y="167.09712"
+             x="40.138931"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="167.09712"
+               x="40.138931"
+               id="tspan1596"
+               sodipodi:role="line">HAL/SDK</tspan></text>
+          <text
+             id="text1602"
+             y="135.32553"
+             x="20.187912"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="135.32553"
+               x="20.187912"
+               id="tspan1600"
+               sodipodi:role="line">Bluetooth</tspan><tspan
+               id="tspan1604"
+               style="stroke-width:0.26458332"
+               y="139.73526"
+               x="20.187912"
+               sodipodi:role="line">Low</tspan><tspan
+               id="tspan1606"
+               style="stroke-width:0.26458332"
+               y="144.14497"
+               x="20.187912"
+               sodipodi:role="line">Energy</tspan></text>
+          <text
+             id="text1610"
+             y="140.07718"
+             x="39.025993"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               id="tspan1612"
+               style="stroke-width:0.26458332"
+               y="140.07718"
+               x="39.025993"
+               sodipodi:role="line">Services</tspan></text>
+          <text
+             id="text1618"
+             y="137.47614"
+             x="59.535229"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="137.47614"
+               x="59.535229"
+               id="tspan1616"
+               sodipodi:role="line">API</tspan><tspan
+               id="tspan1622"
+               style="stroke-width:0.26458332"
+               y="141.88586"
+               x="59.535229"
+               sodipodi:role="line">Dispatcher</tspan></text>
+          <text
+             id="text1628"
+             y="159.02721"
+             x="23.136122"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="159.02721"
+               x="23.136122"
+               id="tspan1626"
+               sodipodi:role="line">Drivers</tspan></text>
+          <text
+             id="text1632"
+             y="158.99622"
+             x="56.511425"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="158.99622"
+               x="56.511425"
+               id="tspan1630"
+               sodipodi:role="line">FreeRTOS</tspan></text>
+          <a
+             id="a973"
+             xlink:href="https://git.card10.badge.events.ccc.de/card10/firmware/tree/master/epicardium"
+             xlink:title="Epicardium">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#0000ee;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+               x="40.307911"
+               y="111.83552"
+               id="text6791"><tspan
+                 sodipodi:role="line"
+                 x="40.307911"
+                 y="111.83552"
+                 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.26458332;fill:#0000ee;fill-opacity:1;"
+                 id="tspan6793">epicardium</tspan><tspan
+                 sodipodi:role="line"
+                 x="40.307911"
+                 y="119.77302"
+                 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.26458332;fill:#0000ee;fill-opacity:1;"
+                 id="tspan1028">(core0)</tspan></text>
+          </a>
+        </g>
+        <g
+           id="g6032"
+           transform="translate(-0.52916667)">
+          <rect
+             style="fill:#f3f3f3;fill-opacity:1;stroke-width:0.26458332"
+             id="rect1981"
+             width="60.977013"
+             height="45.194477"
+             x="116.83902"
+             y="124.72414" />
+          <path
+             id="path1940"
+             style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 116.83902,154.09084 h 20.98065 v 7.49338 m -20.98065,0 h 60.97701 m -60.97701,-9.89353 h 60.97701 m -60.97701,-26.96655 v 45.19446 h 60.97701 v -45.19446 z"
+             inkscape:connector-curvature="0"
+             sodipodi:nodetypes="cccccccccccc" />
+          <text
+             xml:space="preserve"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             x="147.11824"
+             y="167.09712"
+             id="text1963"><tspan
+               sodipodi:role="line"
+               id="tspan1961"
+               x="147.11824"
+               y="167.09712"
+               style="stroke-width:0.26458332">HAL/SDK</tspan></text>
+          <text
+             xml:space="preserve"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             x="158.16139"
+             y="158.99622"
+             id="text1967"><tspan
+               sodipodi:role="line"
+               id="tspan1965"
+               x="158.16139"
+               y="158.99622"
+               style="stroke-width:0.26458332">MicroPython</tspan></text>
+          <text
+             id="text1971"
+             y="158.99622"
+             x="127.47013"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="158.99622"
+               x="127.47013"
+               id="tspan1969"
+               sodipodi:role="line">API Caller</tspan></text>
+          <text
+             id="text1975"
+             y="135.4599"
+             x="147.306"
+             style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+             xml:space="preserve"><tspan
+               style="stroke-width:0.26458332"
+               y="135.4599"
+               x="147.306"
+               id="tspan1973"
+               sodipodi:role="line">Python</tspan><tspan
+               style="stroke-width:0.26458332"
+               y="139.86963"
+               x="147.306"
+               sodipodi:role="line"
+               id="tspan1977">Script</tspan><tspan
+               style="stroke-width:0.26458332"
+               y="144.27934"
+               x="147.306"
+               sodipodi:role="line"
+               id="tspan1979">(User)</tspan></text>
+          <a
+             id="a4682"
+             xlink:href="https://git.card10.badge.events.ccc.de/card10/firmware/tree/master/pycardium"
+             xlink:title="Pycardium">
+            <text
+               xml:space="preserve"
+               style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#0000ee;fill-opacity:1;stroke:none;stroke-width:0.26458332;"
+               x="147.18329"
+               y="111.80997"
+               id="text6799"><tspan
+                 sodipodi:role="line"
+                 id="tspan6797"
+                 x="147.18329"
+                 y="111.80997"
+                 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.26458332;fill:#0000ee;fill-opacity:1;">pycardium</tspan><tspan
+                 sodipodi:role="line"
+                 x="147.18329"
+                 y="119.74747"
+                 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.26458332;fill:#0000ee;fill-opacity:1;"
+                 id="tspan1032">(core1)</tspan></text>
+          </a>
+        </g>
+      </g>
+      <text
+         id="text6791-3"
+         y="84.910851"
+         x="104.47012"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+         xml:space="preserve"><tspan
+           id="tspan1028-7"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.26458332"
+           y="84.910851"
+           x="104.47012"
+           sodipodi:role="line">max32665</tspan></text>
+      <path
+         style="display:inline;fill:none;stroke:#b7b7b7;stroke-width:3.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutS)"
+         d="M 19.222455,122.34974 H 10.72299 v 46.42197 h 23.044261"
+         id="path5043-2"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccc" />
+      <g
+         id="g8371"
+         transform="translate(-11.900687,-20.587525)"
+         style="stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none">
+        <rect
+           transform="scale(-1,1)"
+           style="display:inline;fill:#f3f3f3;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect1634-9"
+           width="20.587021"
+           height="20.587021"
+           x="-73.88205"
+           y="179.16779" />
+        <text
+           id="text8363"
+           y="188.57161"
+           x="63.567005"
+           style="font-style:normal;font-weight:normal;font-size:3.52777767px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
+           xml:space="preserve"><tspan
+             style="stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
+             y="188.57161"
+             x="63.567005"
+             id="tspan8361"
+             sodipodi:role="line">Bluetooth</tspan><tspan
+             id="tspan8365"
+             style="stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none"
+             y="192.98134"
+             x="63.567005"
+             sodipodi:role="line">Core</tspan></text>
+      </g>
+    </g>
+  </g>
+</svg>