Mercurial > espworkshop
changeset 0:5050298bb041
Initial commit
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Wed, 08 Jun 2016 23:02:27 +0200 |
| parents | |
| children | e558443c8d16 |
| files | .hgignore Makefile blink.rst board.rst conf.py connecting.rst fritzing/blink.fz fritzing/parts/NodeMCU V1.0.fzpz images/blink.png images/board.png images/board.svg index.rst make.bat prerequisites.rst |
| diffstat | 14 files changed, 2048 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,6 @@ +syntax: glob +*~ +.*.swp +*.DS_Store +_build/* +_static/*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,177 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make <target>' where <target> is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MicropythononESP8266Workshop.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MicropythononESP8266Workshop.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/MicropythononESP8266Workshop" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MicropythononESP8266Workshop" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/blink.rst Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,79 @@ +Blink +***** + +The traditional first program for hobby electronics is a blinking light. We +will try to build that. + +The boards you have actually have a light built-in, so we can use that. There +is a LED (light-emitting diode) near the antenna (the golden zig-zag). The plus +side of that LED is connected to the ``3v3`` pins internally, and the minus +side is connected to ``gpio2``. So we should be able to make that LED shine +with our program by making ``gpio2`` behave like the gnd pins. We need to +"bring the ``gpio2`` low", or in other words, make it connected to ``gnd``. +Let's try that:: + + from machine import Pin + + led = Pin(2, Pin.OUT) + led.low() + +The first line "imports" the "Pin" function from the "machine" module. In +Python, to use any libraries, you first have to import them. The "machine" +module contains most of the hardware-specific functions in Micropython. + +Once we have the "Pin" function imported, we use it to create a pin object, +with the first parameter telling it to use ``gpio2``, and the second parameter +telling it to switch it into output mode. Once created, the pin is assigned to +the variable we called "led". + +Finally, we bring the pin low, by calling the "low" method on the "led" +variable. At this point the LED should start shining. In fact, it may have +started shining a line earlier, because once we switched the pin into output +mode, its default state is "low". + +Now, how to make the LED stop shining? There are two ways. We could switch it +back into "input" mode, where the pin is not connected to anything. Or we could +bring it "high". If we do that, both ends of the LED will be connected to +"plus", and the current won't flow. We do that with:: + + led.high() + +Now, how can we make the LED blink 10 times? We could of course type +``led.low()`` and ``led.high()`` ten times quickly, but that's a lot of work +and we have computers to do that for us. We can repeat a command or a set of +commands using the "for" loop:: + + for i in range(10): + led.high() + led.low() + +Note, that when you are typing this, it will look more like:: + + >>> for i in range(10): + ... led.high() + ... led.low() + ... + ... + >>> + +That's because the console automatically understands that when you indent a +line, you mean it to be a block of code inside the "for" loop. You have to +un-indent the last line (by removing the spaces with backspace) to finish this +command. + +What happened? Nothing interesting, the LED just shines like it did. That's +because the program blinked that LED as fast as it could -- so fast, that we +didn't even see it. We need to make it wait a little before the blinks, and for +that we are going to use the "time" module. First we need to import it:: + + import time + +And then we will repeat our program, but with the waiting included:: + + for i in range(10): + led.high() + time.sleep(0.5) + led.low() + time.sleep(0.5) + +Now the LED should turn on and off every half second.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/board.rst Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,50 @@ +Development Board +***************** + +The board we are using is called "NodeMCU AMICA" and has an ESP8266 module +on it, which we will be programming. It comes with the latest version of +Micropython already setup on it, together with all the drivers we are going +to use. + +.. note:: + The D0, D1, D2, ... numbers printed on the board are different from what + Micropython uses -- because originally those boards were made for a + different software. Make sure to refer to the image below to determine + which pins are which. + +.. image:: ./images/board.png + :width: 512px + + +On top it has a micro-USB socket, for connecting to the computer. Next to it +are two buttons, one for reset and one for flashing. Then on both sides of the +board are two rows of pins, to which we will be connecting cables. + +The symbols meaning is as follows: + + * ``3v3`` - this is a fancy way to write 3.3V, which is the voltage that the + board runs on internally. You can think about this pin like the plus side + of a battery. There are several pins like this, they are all connected + inside. + * ``gnd`` - this is the ground. Think about it like the minus side of the + battery. They are also all connected. + * ``gpioXX`` - "gpio" stands for "general purpose input output". Those are + the pins we will be using for sending and receiving signals to and from + various devices that we will connect to them. They can act as output -- + pretty much like a switch that you can connect to plus or to minus with + your program. Or they can act as input, telling your program whether they + are connected to plus or minus. + * ``a0`` - this is the analog pin. It can measure the voltage that is applied + to it, but it can only handle up to 1V. + * ``vin`` - this pin is connected with the 5V from your computer. You can + also use it to power your board with a battery when it's not connected to + the computer. The voltage applied here will be internally converted to the + 3.3V that the board needs. + * ``rst`` - this is a reset button (and a corresponding pin, to which you can + connect external button). + * ``flash`` - hold down this button while resetting to bring the board into + programming mode (also known as flashing mode). + +The other pins are used internally by the board, and we will not be connecting +anything to them. +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf.py Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,331 @@ +# -*- coding: utf-8 -*- +# +# Micropython on ESP8266 Workshop documentation build configuration file, created by +# sphinx-quickstart on Wed Jun 8 21:43:59 2016. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.pngmath', + 'sphinx.ext.viewcode', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'Micropython on ESP8266 Workshop' +copyright = u'2016, Radomir Dopieralski' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '1.0' +# The full version, including alpha/beta/rc tags. +release = '1.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# "<project> v<release> documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a <link> tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MicropythononESP8266Workshopdoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ('index', 'MicropythononESP8266Workshop.tex', u'Micropython on ESP8266 Workshop Documentation', + u'Radomir Dopieralski', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'micropythononesp8266workshop', u'Micropython on ESP8266 Workshop Documentation', + [u'Radomir Dopieralski'], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'MicropythononESP8266Workshop', u'Micropython on ESP8266 Workshop Documentation', + u'Radomir Dopieralski', 'MicropythononESP8266Workshop', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False + + +# -- Options for Epub output ---------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = u'Micropython on ESP8266 Workshop' +epub_author = u'Radomir Dopieralski' +epub_publisher = u'Radomir Dopieralski' +epub_copyright = u'2016, Radomir Dopieralski' + +# The basename for the epub file. It defaults to the project name. +#epub_basename = u'Micropython on ESP8266 Workshop' + +# The HTML theme for the epub output. Since the default themes are not optimized +# for small screen space, using the same theme for HTML and epub output is +# usually not wise. This defaults to 'epub', a theme designed to save visual +# space. +#epub_theme = 'epub' + +# The language of the text. It defaults to the language option +# or en if the language is not set. +#epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +#epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +#epub_identifier = '' + +# A unique identification for the text. +#epub_uid = '' + +# A tuple containing the cover image and cover page html template filenames. +#epub_cover = () + +# A sequence of (type, uri, title) tuples for the guide element of content.opf. +#epub_guide = () + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_pre_files = [] + +# HTML files shat should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_post_files = [] + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + +# The depth of the table of contents in toc.ncx. +#epub_tocdepth = 3 + +# Allow duplicate toc entries. +#epub_tocdup = True + +# Choose between 'default' and 'includehidden'. +#epub_tocscope = 'default' + +# Fix unsupported image types using the PIL. +#epub_fix_images = False + +# Scale large images. +#epub_max_image_width = 0 + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#epub_show_urls = 'inline' + +# If false, no index is generated. +#epub_use_index = True
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connecting.rst Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,37 @@ +Connecting +********** + +The board you got should already have Micropython with all the needed libraries +flashed on it. In order to access its console, you will need to connect it to +your computer with the micro-USB cable, and access the serial interface that +appears with a terminal program. + +Linux and MacOS +=============== + +Simply open a terminal and run the following command:: + + screen /dev/ttyUSB0 115200 + +Windows +======= + +For the serial interface to appear in your system, you will need to install the drivers_ for CP2102. Once you have that, you can use either Hyper Terminal or PuTTy to connect to it, following this guide_. + +The parameters for the connection are: 115200 baud rate, 8 data bits, no parity, 1 stop bit, no flow control. + +Hello world! +============ + +Once you are connected, press "enter" and you should see the Micropython prompt, that looks like this:: + + >>> + +It's traditional to start with a "Hello world!" program, so type this and press "enter":: + + print("Hello world!") + +If you see "Hello world!" displayed in the next line, then congratulations, you got it working. + +.. _drivers: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx +.. _guide: https://techawarey.wordpress.com/tag/serial-port-communication-in-windows-7-using-hyper-terminal-and-putty/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fritzing/blink.fz Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,362 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module fritzingVersion="0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806" icon=".png"> + <boards> + <board moduleId="TwoLayerRectanglePCBModuleID" title="Rectangular PCB - Resizable" instance="PCB1" width="5cm" height="5cm"/> + </boards> + <views> + <view name="breadboardView" backgroundColor="#ffffff" gridSize="0.1in" showGrid="1" alignToGrid="1" viewFromBelow="0"/> + <view name="schematicView" backgroundColor="#ffffff" gridSize="0.1in" showGrid="1" alignToGrid="1" viewFromBelow="0"/> + <view name="pcbView" backgroundColor="#333333" gridSize="0.025in" showGrid="1" alignToGrid="1" viewFromBelow="0" autorouteViaRingThickness="" autorouteViaHoleSize="" DRC_Keepout="" GPG_Keepout="" autorouteTraceWidth="24"/> + </views> + <instances> + <instance moduleIdRef="TwoLayerRectanglePCBModuleID" modelIndex="5736" path=":/resources/parts/core/rectangle_pcb_two_layers.fzp"> + <property name="layers" value="2"/> + <property name="width" value="50"/> + <property name="height" value="50"/> + <title>PCB1</title> + <views> + <breadboardView layer="icon"> + <geometry z="0.5" x="0" y="0"/> + </breadboardView> + <pcbView layer="board"> + <geometry z="1.50001" x="0.052118" y="0"/> + </pcbView> + <schematicView layer="icon"> + <geometry z="0.50001" x="0" y="0"/> + </schematicView> + </views> + </instance> + <instance moduleIdRef="WireModuleID" modelIndex="5749" path=":/resources/parts/core/wire.fzp"> + <views/> + </instance> + <instance moduleIdRef="NodeMCU v1_ec83652eb5f35f6ec40972b5e32f3bd9_1" modelIndex="5800" path="/home/sheep/Stuff/xxx/Fritzing/parts/user/NodeMCU v1_ec83652eb5f35f6ec40972b5e32f3bd9_1.fzp" flippedSMD="true"> + <title>U1</title> + <views> + <breadboardView layer="breadboard"> + <geometry z="3.00002" x="238.667" y="39.9613"/> + <connectors> + <connector connectorId="connector6" layer="breadboard"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5816" layer="breadboardWire"/> + </connects> + </connector> + <connector connectorId="connector7" layer="breadboard"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5809" layer="breadboardWire"/> + </connects> + </connector> + </connectors> + </breadboardView> + <schematicView layer="schematic"> + <geometry z="3.00002" x="-201.546" y="-306.172"> + <transform m11="0" m12="1" m13="0" m21="-1" m22="0" m23="0" m31="121.875" m32="40.6252" m33="1"/> + </geometry> + <titleGeometry visible="true" x="-120.296" y="-313.172" z="7.00002" xOffset="81.25" yOffset="-7" textColor="#000000" fontSize="5"> + <displayKey key=""/> + <displayKey key="part number"/> + </titleGeometry> + <connectors> + <connector connectorId="connector14" layer="schematic"> + <geometry x="0" y="0"/> + <connects/> + </connector> + <connector connectorId="connector6" layer="schematic"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5816" layer="schematicTrace"/> + </connects> + </connector> + <connector connectorId="connector7" layer="schematic"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5809" layer="schematicTrace"/> + </connects> + </connector> + </connectors> + </schematicView> + <pcbView layer="copper1"> + <geometry z="9.00002" x="250.02" y="211.23"/> + <titleGeometry visible="true" x="373.77" y="204.23" z="13" xOffset="123.75" yOffset="-7" textColor="#000000" fontSize="5"> + <displayKey key=""/> + </titleGeometry> + <connectors> + <connector connectorId="connector1" layer="copper1"> + <geometry x="0" y="0"/> + <connects/> + </connector> + <connector connectorId="connector6" layer="copper1"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5816" layer="copper1trace"/> + </connects> + </connector> + <connector connectorId="connector7" layer="copper1"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector1" modelIndex="5809" layer="copper1trace"/> + </connects> + </connector> + </connectors> + </pcbView> + </views> + </instance> + <instance moduleIdRef="5mmColorLEDModuleID" modelIndex="5803" path="/home/sheep/Stuff/Fritzing/fritzing-parts/core/LED-generic-5mm.fzp"> + <property name="color" value="Red (633nm)"/> + <title>LED1</title> + <views> + <breadboardView layer="breadboard"> + <geometry z="3.00003" x="309.339" y="-85.2786"/> + <connectors> + <connector connectorId="connector1" layer="breadboard"> + <geometry x="14.661" y="36.5085"/> + <leg> + <point x="0" y="0"/> + <bezier/> + <point x="0" y="41.949"/> + <bezier/> + </leg> + </connector> + <connector connectorId="connector0" layer="breadboard"> + <geometry x="5.6583" y="36.5085"/> + <leg> + <point x="0" y="0"/> + <bezier/> + <point x="0" y="30.7701"/> + <bezier/> + </leg> + <connects> + <connect connectorId="connector0" modelIndex="5816" layer="breadboardWire"/> + </connects> + </connector> + </connectors> + </breadboardView> + <schematicView layer="schematic"> + <geometry z="3.00002" x="-246.376" y="-171.27"/> + <titleGeometry visible="true" x="-229.276" y="-185.27" z="7.00003" xOffset="17.1" yOffset="-14" textColor="#000000" fontSize="5"> + <displayKey key=""/> + <displayKey key="part number"/> + <displayKey key="color"/> + <displayKey key="current"/> + </titleGeometry> + <connectors> + <connector connectorId="connector0" layer="schematic"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5816" layer="schematicTrace"/> + </connects> + </connector> + </connectors> + </schematicView> + <pcbView layer="copper0"> + <geometry z="6.00002" x="0.2655" y="0.208"/> + <titleGeometry visible="true" x="22.2345" y="-6.792" z="13" xOffset="21.969" yOffset="-7" textColor="#000000" fontSize="5"> + <displayKey key=""/> + </titleGeometry> + <connectors> + <connector connectorId="connector0" layer="copper0"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5816" layer="copper1trace"/> + </connects> + </connector> + </connectors> + </pcbView> + </views> + </instance> + <instance moduleIdRef="ResistorModuleID" modelIndex="5806" path="/home/sheep/Stuff/Fritzing/fritzing-parts/core/resistor.fzp"> + <property name="tolerance" value="±5%"/> + <property name="resistance" value="220"/> + <property name="pin spacing" value="400 mil"/> + <title>R1</title> + <views> + <breadboardView layer="breadboard"> + <geometry z="3.00004" x="304.516" y="4.63365"> + <transform m11="0" m12="-1" m13="0" m21="1" m22="0" m23="0" m31="14.9432" m32="23.6822" m33="1"/> + </geometry> + <connectors> + <connector connectorId="connector1" layer="breadboard"> + <geometry x="36.0063" y="4.5405"/> + <leg> + <point x="0" y="0"/> + <bezier/> + <point x="1.3095" y="0"/> + <bezier/> + </leg> + </connector> + <connector connectorId="connector0" layer="breadboard"> + <geometry x="2.619" y="4.5405"/> + <leg> + <point x="0" y="0"/> + <bezier/> + <point x="-1.3095" y="0"/> + <bezier/> + </leg> + <connects> + <connect connectorId="connector0" modelIndex="5809" layer="breadboardWire"/> + </connects> + </connector> + </connectors> + </breadboardView> + <schematicView layer="schematic"> + <geometry z="3.00003" x="-243.437" y="-129.87"> + <transform m11="0" m12="1" m13="0" m21="-1" m22="0" m23="0" m31="22.3075" m32="-14.5675" m33="1"/> + </geometry> + <titleGeometry visible="true" x="-206.562" y="-143.87" z="7.00004" xOffset="36.875" yOffset="-14" textColor="#000000" fontSize="5"> + <displayKey key=""/> + <displayKey key="part number"/> + <displayKey key="resistance"/> + <displayKey key="power"/> + </titleGeometry> + <connectors> + <connector connectorId="connector0" layer="schematic"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5809" layer="schematicTrace"/> + </connects> + </connector> + </connectors> + </schematicView> + <pcbView layer="copper0"> + <geometry z="6.00003" x="32.625" y="0.63"/> + <titleGeometry visible="true" x="75.375" y="-6.37" z="13" xOffset="42.75" yOffset="-7" textColor="#000000" fontSize="5"> + <displayKey key=""/> + </titleGeometry> + <connectors> + <connector connectorId="connector0" layer="copper0"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5809" layer="copper1trace"/> + </connects> + </connector> + </connectors> + </pcbView> + </views> + </instance> + <instance moduleIdRef="WireModuleID" modelIndex="5809" path=":/resources/parts/core/wire.fzp"> + <views/> + </instance> + <instance moduleIdRef="WireModuleID" modelIndex="5809" path=":/resources/parts/core/wire.fzp"> + <title>Wire1</title> + <views> + <breadboardView layer="breadboardWire"> + <geometry z="4.00003" x="324" y="27.0063" x1="0" y1="0" x2="0.00117965" y2="17.9937" wireFlags="64"/> + <wireExtras mils="22.2222" color="#418dd9" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="breadboardWire"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector7" modelIndex="5800" layer="breadboard"/> + </connects> + </connector> + <connector connectorId="connector0" layer="breadboardWire"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5806" layer="breadboard"/> + </connects> + </connector> + </connectors> + </breadboardView> + <schematicView layer="schematicTrace"> + <geometry z="6.00002" x="325.678" y="28.3198" x1="0" y1="0" x2="-1.11789" y2="16.3957" wireFlags="64"/> + <wireExtras mils="9.7222" color="#404040" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="schematicTrace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector7" modelIndex="5800" layer="schematic"/> + </connects> + </connector> + <connector connectorId="connector0" layer="schematicTrace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5806" layer="schematic"/> + </connects> + </connector> + </connectors> + </schematicView> + <pcbView layer="copper1trace"> + <geometry z="10" x="325.678" y="28.3198" x1="0" y1="0" x2="-1.11789" y2="16.3957" wireFlags="64"/> + <wireExtras mils="11.1111" color="#f2c600" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="copper1trace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector7" modelIndex="5800" layer="copper1"/> + </connects> + </connector> + <connector connectorId="connector0" layer="copper1trace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5806" layer="copper0"/> + </connects> + </connector> + </connectors> + </pcbView> + </views> + </instance> + <instance moduleIdRef="WireModuleID" modelIndex="5816" path=":/resources/parts/core/wire.fzp"> + <views/> + </instance> + <instance moduleIdRef="WireModuleID" modelIndex="5816" path=":/resources/parts/core/wire.fzp"> + <title>Wire4</title> + <views> + <breadboardView layer="breadboardWire"> + <geometry z="4.00004" x="314.997" y="-18" x1="0" y1="0" x2="0.00514372" y2="63" wireFlags="64"/> + <wireExtras mils="22.2222" color="#418dd9" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="breadboardWire"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector6" modelIndex="5800" layer="breadboard"/> + </connects> + </connector> + <connector connectorId="connector0" layer="breadboardWire"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5803" layer="breadboard"/> + </connects> + </connector> + </connectors> + </breadboardView> + <schematicView layer="schematicTrace"> + <geometry z="6.00003" x="316.362" y="-18.6315" x1="0" y1="0" x2="-0.372629" y2="62.9744" wireFlags="64"/> + <wireExtras mils="9.7222" color="#404040" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="schematicTrace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector6" modelIndex="5800" layer="schematic"/> + </connects> + </connector> + <connector connectorId="connector0" layer="schematicTrace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5803" layer="schematic"/> + </connects> + </connector> + </connectors> + </schematicView> + <pcbView layer="copper1trace"> + <geometry z="10" x="316.362" y="-18.6315" x1="0" y1="0" x2="-0.372629" y2="62.9744" wireFlags="64"/> + <wireExtras mils="11.1111" color="#f2c600" opacity="1" banded="0"/> + <connectors> + <connector connectorId="connector1" layer="copper1trace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector6" modelIndex="5800" layer="copper1"/> + </connects> + </connector> + <connector connectorId="connector0" layer="copper1trace"> + <geometry x="0" y="0"/> + <connects> + <connect connectorId="connector0" modelIndex="5803" layer="copper0"/> + </connects> + </connector> + </connectors> + </pcbView> + </views> + </instance> + </instances> +</module>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/board.svg Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,710 @@ +<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="97.866676mm" + height="122.63343mm" + viewBox="0 0 346.77169 434.5279" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="board.svg" + inkscape:export-filename="/home/sheep/dev/hardware/espworkshop/board.svg.png" + inkscape:export-xdpi="300.05914" + inkscape:export-ydpi="300.05914"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.90509668" + inkscape:cx="160.12535" + inkscape:cy="164.53471" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:snap-center="false" + inkscape:snap-object-midpoints="false" + inkscape:snap-global="true" + inkscape:window-width="1197" + inkscape:window-height="999" + inkscape:window-x="395" + inkscape:window-y="58" + inkscape:window-maximized="0" + fit-margin-top="5" + fit-margin-left="5" + fit-margin-right="5" + fit-margin-bottom="5"> + <inkscape:grid + type="xygrid" + id="grid4136" + spacingx="4.5" + spacingy="4.5000001" + empspacing="4" + originx="-188.3564" + originy="-578.62707" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-188.3564,-39.207247)"> + <path + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 298.56505,77.51861 c -9.972,0 -18,8.02799 -18,18 l 0,342 c 0,9.972 8.028,18 18,18 l 162,0 c 9.972,0 18,-8.028 18,-18 l 0,-342 c 0,-9.97201 -8.028,-18 -18,-18 l -162,0 z m 0,4.5 a 13.5,13.5 0 0 1 13.5,13.5 13.5,13.5 0 0 1 -13.5,13.5 13.5,13.5 0 0 1 -13.5,-13.5 13.5,13.5 0 0 1 13.5,-13.5 z m 162,0 a 13.5,13.5 0 0 1 13.5,13.5 13.5,13.5 0 0 1 -13.5,13.5 13.5,13.5 0 0 1 -13.5,-13.5 13.5,13.5 0 0 1 13.5,-13.5 z m -162,342 a 13.5,13.5 0 0 1 13.5,13.5 13.5,13.5 0 0 1 -13.5,13.5 13.5,13.5 0 0 1 -13.5,-13.5 13.5,13.5 0 0 1 13.5,-13.5 z m 162,0 a 13.5,13.5 0 0 1 13.5,13.5 13.5,13.5 0 0 1 -13.5,13.5 13.5,13.5 0 0 1 -13.5,-13.5 13.5,13.5 0 0 1 13.5,-13.5 z" + id="rect4149" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,118.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4165" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:#75507b;fill-opacity:1;stroke:#5c3566;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4171" + width="126" + height="193.49998" + x="316.5625" + y="260.36221" /> + <rect + style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4173" + width="96.119728" + height="117.98438" + x="331.50262" + y="271.12003" + ry="4.3697829" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#edd400;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 357.0625,399.8622 58.5,0 0,45 -9,0 0,-31.5 -9,0 0,31.5 -9,0 0,-31.5 -9,0 0,31.5 -9,0 0,-31.5 -9,0 0,31.5 -31.5,0 0,0" + id="path4175" + inkscape:connector-curvature="0" /> + <rect + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#5c3566;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4177" + width="18" + height="9" + x="321.0625" + y="395.36221" /> + <path + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 316.5625,269.36133 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + id="rect4179" + inkscape:connector-curvature="0" /> + <path + id="path4196" + d="m 316.42439,285.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 316.42439,301.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + id="path4198" /> + <path + id="path4200" + d="m 316.42439,317.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 316.42439,333.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + id="path4202" /> + <path + id="path4204" + d="m 316.42439,349.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 316.42439,365.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + id="path4206" /> + <path + id="path4208" + d="m 316.42439,381.1055 0,2.25 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 l 0,2.25976 11.04883,0 0,-9.00976 -11.04883,0 z m 6.76758,2.27539 a 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 442.61023,390.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + id="path4210" /> + <path + id="path4212" + d="m 442.61023,374.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 442.61023,358.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + id="path4214" /> + <path + id="path4216" + d="m 442.61023,342.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 442.61023,326.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + id="path4218" /> + <path + id="path4220" + d="m 442.61023,310.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 442.61023,294.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + id="path4222" /> + <path + id="path4224" + d="m 442.61023,278.11526 0,-2.25 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 l 0,-2.25976 -11.04883,0 0,9.00976 11.04883,0 z m -6.76758,-2.27539 a 2.25,2.25 0 0 1 -2.25,-2.25 2.25,2.25 0 0 1 2.25,-2.25 2.25,2.25 0 0 1 2.25,2.25 2.25,2.25 0 0 1 -2.25,2.25 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <rect + ry="4.49999" + rx="4.49999" + y="236.36221" + x="424.5625" + height="13.5" + width="18" + id="rect4244" + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4242" + width="18" + height="13.5" + x="424.5625" + y="208.36221" + rx="4.49999" + ry="4.49999" /> + <rect + style="opacity:1;fill:#fcaf3e;fill-opacity:1;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4226" + width="22.5" + height="27" + x="422.5625" + y="215.36221" /> + <rect + ry="2.6000977" + rx="2.6000977" + y="220.36221" + x="405.73654" + height="9" + width="6.5831313" + id="rect4250" + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4248" + width="6.5831313" + height="9" + x="405.73654" + y="205.8125" + rx="2.6000977" + ry="2.6000977" /> + <rect + style="opacity:1;fill:#fcaf3e;fill-opacity:1;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4228" + width="9" + height="13.5" + x="404.5625" + y="210.86221" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4232" + width="18" + height="31.5" + x="337.0625" + y="210.86221" + rx="4.4999905" + ry="4.4999905" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4240" + width="13.5" + height="9" + x="373.0625" + y="221.86221" + rx="4.49999" + ry="4.49999" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4238" + width="13.5" + height="9" + x="373.0625" + y="206.36221" + rx="4.4999905" + ry="4.4999905" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4234" + width="13.5" + height="9" + x="373.0625" + y="237.86221" + rx="4.49999" + ry="4.49999" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4230" + width="27" + height="49.5" + x="350.5625" + y="201.86221" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4254" + width="40.5" + height="40.5" + x="346.0625" + y="129.8622" /> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4256" + width="22.5" + height="31.5" + x="316.5625" + y="80.362198" + rx="4.5000057" + ry="4.5000057" /> + <circle + style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path4258" + cx="327.8125" + cy="96.112198" + r="6.75" /> + <path + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 354.5625,62.36133 c -2.49301,0 -4.5,2.00699 -4.5,4.5 l 0,13.51758 a 9,9 0 0 0 -8.5,8.98242 9,9 0 0 0 8.5,8.97461 l 0,4.52539 c 0,2.493 2.00699,4.5 4.5,4.5 l 49.5,0 c 2.49301,0 4.5,-2.007 4.5,-4.5 l 0,-4.73633 a 9,9 0 0 0 7,-8.76367 9,9 0 0 0 -7,-8.76563 l 0,-13.73437 c 0,-2.49301 -2.00699,-4.5 -4.5,-4.5 l -49.5,0 z" + id="rect4260" + inkscape:connector-curvature="0" /> + <rect + ry="4.5000057" + rx="4.5000057" + y="80.362198" + x="419.56381" + height="31.5" + width="22.5" + id="rect4262" + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <circle + r="6.75" + cy="96.112198" + cx="430.81381" + id="circle4264" + style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4271" + width="22.5" + height="9" + x="305.5625" + y="152.36221" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4273" + width="9" + height="13.5" + x="431.5625" + y="143.3622" /> + <rect + y="210.94815" + x="305.5625" + height="9" + width="22.5" + id="rect4275" + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + id="path4277" + d="m 467.0625,138.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,158.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4279" /> + <path + id="path4281" + d="m 467.0625,178.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,198.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4283" /> + <path + id="path4285" + d="m 467.0625,218.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,238.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4287" /> + <path + id="path4289" + d="m 467.0625,258.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,278.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4291" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,298.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4295" /> + <path + id="path4297" + d="m 467.0625,318.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,338.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4299" /> + <path + id="path4301" + d="m 467.0625,358.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 467.0625,378.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4303" /> + <path + id="path4305" + d="m 467.0625,398.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4309" + d="m 291.0625,118.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 285.15625,137.70898 c -0.70332,0 -1.26953,0.56622 -1.26953,1.26954 l 0,11.71875 c 0,0.70332 0.56621,1.26953 1.26953,1.26953 l 11.71875,0 c 0.70332,0 1.26953,-0.56621 1.26953,-1.26953 l 0,-11.71875 c 0,-0.70332 -0.56621,-1.26954 -1.26953,-1.26954 l -11.71875,0 z m 5.90625,3.72657 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="rect4725" + inkscape:connector-curvature="0" /> + <path + id="path4313" + d="m 291.0625,158.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,178.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4315" /> + <path + id="path4317" + d="m 291.0625,198.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,218.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4319" /> + <path + id="path4321" + d="m 291.0625,238.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,258.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4323" /> + <path + id="path4325" + d="m 291.0625,278.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + id="path4327" + d="m 291.0625,298.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,318.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4329" /> + <path + id="path4331" + d="m 291.0625,338.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,358.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4333" /> + <path + id="path4335" + d="m 291.0625,378.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 291.0625,398.11133 a 6.75,6.75 0 0 0 -6.75,6.75 6.75,6.75 0 0 0 6.75,6.75 6.75,6.75 0 0 0 6.75,-6.75 6.75,6.75 0 0 0 -6.75,-6.75 z m 0,3.32422 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4337" /> + <rect + y="161.36221" + x="397.0625" + height="9" + width="18" + id="rect4339" + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#babdb6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.9375px;line-height:125%;font-family:Chicago;-inkscape-font-specification:'Chicago, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="482.86734" + y="131.79428" + id="text4341" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4343" + x="482.86734" + y="131.79428">vin</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="151.71616" + id="tspan4345">gnd</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="171.63803" + id="tspan4347">rst</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="191.55991" + id="tspan4349">en</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="211.48178" + id="tspan4351">3v3</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="231.40366" + id="tspan4371">gnd</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="251.32553" + id="tspan4353">clk</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="271.24741" + id="tspan4355">sd0</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="291.16928" + id="tspan4357">cmd</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="311.09116" + id="tspan4359">sd1</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="331.01303" + id="tspan4361">sd2</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="350.93491" + id="tspan4363">sd3</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="370.85678" + id="tspan4365">rsv</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="390.77866" + id="tspan4367">rsv</tspan><tspan + sodipodi:role="line" + x="482.86734" + y="410.70053" + id="tspan4369">a0</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4373" + y="132.57552" + x="276.42984" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.9375px;line-height:125%;font-family:Chicago;-inkscape-font-specification:'Chicago, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan4403" + y="132.57552" + x="276.42984" + sodipodi:role="line">3v3</tspan><tspan + y="152.49739" + x="276.42984" + sodipodi:role="line" + id="tspan4524">gnd</tspan><tspan + y="172.41927" + x="276.42984" + sodipodi:role="line" + id="tspan4526">tx gpio1</tspan><tspan + y="192.34114" + x="276.42984" + sodipodi:role="line" + id="tspan4528">rx gpio3</tspan><tspan + y="212.26302" + x="276.42984" + sodipodi:role="line" + id="tspan4530">gpio15</tspan><tspan + y="232.18489" + x="276.42984" + sodipodi:role="line" + id="tspan4532">gpio13</tspan><tspan + y="252.10677" + x="276.42984" + sodipodi:role="line" + id="tspan4534">gpio12</tspan><tspan + y="272.02863" + x="276.42984" + sodipodi:role="line" + id="tspan4536">gpio14</tspan><tspan + y="291.9505" + x="276.42984" + sodipodi:role="line" + id="tspan4538">gnd</tspan><tspan + y="311.87238" + x="276.42984" + sodipodi:role="line" + id="tspan4540">3v3</tspan><tspan + y="331.79425" + x="276.42984" + sodipodi:role="line" + id="tspan4542">gpio2</tspan><tspan + y="351.71613" + x="276.42984" + sodipodi:role="line" + id="tspan4544">gpio0</tspan><tspan + y="371.638" + x="276.42984" + sodipodi:role="line" + id="tspan4546">gpio4</tspan><tspan + y="391.55988" + x="276.42984" + sodipodi:role="line" + id="tspan4548">gpio5</tspan><tspan + y="411.48175" + x="276.42984" + sodipodi:role="line" + id="tspan4550">gpio16</tspan></text> + <rect + style="opacity:1;fill:#d3d7cf;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4552" + width="4.9357934" + height="7.9862847" + x="358.05484" + y="70.977493" /> + <rect + y="70.977493" + x="358.05484" + height="7.9862847" + width="4.9357934" + id="rect4554" + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4556" + width="4.9357934" + height="7.9862847" + x="396.05484" + y="70.977493" /> + <rect + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect4558" + width="13.810679" + height="3.4526699" + x="360.22852" + y="101.13965" /> + <path + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 369.10352,96.66602 0,4.4746 -8.875,0 0,3.45118 8.875,0 0,0.0605 4.93554,0 0,-0.0605 0,-3.45118 0,-4.4746 -4.93554,0 z" + id="rect4560" + inkscape:connector-curvature="0" /> + <path + style="opacity:1;fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 384.70898,96.52734 0,7.98633 4.93555,0 0,-0.0586 9.39258,0 0,-3.45313 -9.39258,0 0,-4.47461 -4.93555,0 z" + id="rect4562" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.9375px;line-height:125%;font-family:Chicago;-inkscape-font-specification:'Chicago, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="344.14859" + y="69.981766" + id="text4570" + sodipodi:linespacing="125%"><tspan + id="tspan4600" + sodipodi:role="line" + x="344.14859" + y="69.981766">flash</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4721" + y="68.876907" + x="444.2146" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.9375px;line-height:125%;font-family:Chicago;-inkscape-font-specification:'Chicago, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="68.876907" + x="444.2146" + sodipodi:role="line" + id="tspan4723">rst</tspan></text> + <path + id="path4732" + d="m 285.19349,277.6829 c -0.70332,0 -1.26953,0.56622 -1.26953,1.26954 l 0,11.71875 c 0,0.70332 0.56621,1.26953 1.26953,1.26953 l 11.71875,0 c 0.70332,0 1.26953,-0.56621 1.26953,-1.26953 l 0,-11.71875 c 0,-0.70332 -0.56621,-1.26954 -1.26953,-1.26954 l -11.71875,0 z m 5.90625,3.72657 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 461.18189,217.7338 c -0.70332,0 -1.26953,0.56622 -1.26953,1.26954 l 0,11.71875 c 0,0.70332 0.56621,1.26953 1.26953,1.26953 l 11.71875,0 c 0.70332,0 1.26953,-0.56621 1.26953,-1.26953 l 0,-11.71875 c 0,-0.70332 -0.56621,-1.26954 -1.26953,-1.26954 l -11.71875,0 z m 5.90625,3.72657 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + id="path4734" /> + <path + id="path4736" + d="m 461.18189,137.75332 c -0.70332,0 -1.26953,0.56622 -1.26953,1.26954 l 0,11.71875 c 0,0.70332 0.56621,1.26953 1.26953,1.26953 l 11.71875,0 c 0.70332,0 1.26953,-0.56621 1.26953,-1.26953 l 0,-11.71875 c 0,-0.70332 -0.56621,-1.26954 -1.26953,-1.26954 l -11.71875,0 z m 5.90625,3.72657 a 3.4257812,3.4257812 0 0 1 3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,3.42578 3.4257812,3.4257812 0 0 1 -3.42578,-3.42578 3.4257812,3.4257812 0 0 1 3.42578,-3.42578 z" + style="opacity:1;fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.rst Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,26 @@ +.. Micropython on ESP8266 Workshop documentation master file, created by + sphinx-quickstart on Wed Jun 8 21:43:59 2016. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Micropython on ESP8266 Workshop's documentation! +=========================================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + prerequisites.rst + board.rst + connecting.rst + blink.rst + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make.bat Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,242 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set I18NSPHINXOPTS=%SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^<target^>` where ^<target^> is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\MicropythononESP8266Workshop.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\MicropythononESP8266Workshop.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +:end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prerequisites.rst Wed Jun 08 23:02:27 2016 +0200 @@ -0,0 +1,28 @@ +Prerequisites +************* + +To participate in the workshop, you will need the following: + + * A laptop with Linux, Mac OS or Windows and at least one free USB port. + * If it's Windows or Mac OS, make sure to install `drivers`_ for the CP2102 UBS2TTL chip. MacOS El Capitan requires `disabling kext signing`_ to install it. + * A micro-USB cable with data lines that fits your USB port. + * You will need a terminal application installed. For Linux and Mac you can + use ``screen``, which is installed by default. For Windows we recommend `PuTTy`_ + * Please note that the workshop will be in English. + +.. _drivers: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx +.. _disabling kext signing: http://farazmemon.com/2016/02/07/flashing-latest-firmware-on-nodemcu-devkit-v0-9-osx-el-capitan/ +.. _PuTTy: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html + +In addition, at the workshop, you will receive: + * "NodeMCU AMICA" development board with ESP8266 on it, + * Red LED, + * 100Ω resistor, + * SG90 microservo, + * Female-female and Male-female dupont cables, + * Piezoelectric speaker. + +You will take all that home with you. + +There will be also some additional hardware available for experimenting, +which you won't take home.
