<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.openhardwareconf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nicola</id>
	<title>Open Hardware Miniconf - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.openhardwareconf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nicola"/>
	<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/wiki/Special:Contributions/Nicola"/>
	<updated>2026-04-11T07:38:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.1</generator>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_GettingStarted&amp;diff=1469</id>
		<title>Swagbadge2021 GettingStarted</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_GettingStarted&amp;diff=1469"/>
		<updated>2022-01-15T02:20:08Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting started with the Swagbadge =&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
* The [https://spectrum.chat/lca2021-swagbadge Swag Badge Spectrum chat] is a place where the badge team hangs out, ready to answer your questions.&lt;br /&gt;
&lt;br /&gt;
== My package arrived in the mail, first steps. ==&lt;br /&gt;
* Your package should contain your badge, and some other goodies! &lt;br /&gt;
** [[File:swagbadgepackage.jpg|400px|alt=Image showing the contents of the swagbag package]]&lt;br /&gt;
** Badge&lt;br /&gt;
** SAO headers (x 4)&lt;br /&gt;
** SAO proto boards (x 2)&lt;br /&gt;
** SAO tux board&lt;br /&gt;
** Lanyard&lt;br /&gt;
** Stickers&lt;br /&gt;
** Instructions&lt;br /&gt;
* Take off the protective cases to reveal the screens.&lt;br /&gt;
* Powering it up&lt;br /&gt;
** Insert a micro USB cable into the badge and connect the other end to a USB port on your computer or USB power source.&lt;br /&gt;
** A green light should glow on the rear of the board, and a title appear across the two screens.&lt;br /&gt;
* Turning it on and off again&lt;br /&gt;
** Plugging/unplugging it is fine. Usually the badge isn&#039;t running anything intensely enough that just unpowering it would cause a problem.&lt;br /&gt;
* On bootup, you should see:&lt;br /&gt;
** The OLED screens will display &amp;quot;Aiko&amp;quot; and a version number as a title&lt;br /&gt;
** It will also display something else to tell you to set up your wifi.&lt;br /&gt;
&lt;br /&gt;
== Getting it on your network ==&lt;br /&gt;
&lt;br /&gt;
=== Getting the device on your wifi - wireless ===&lt;br /&gt;
&lt;br /&gt;
The first time you boot your badge, it won&#039;t know how to talk to your wifi network, so it creates its own temporary wifi network for you to connect to, so you can configure it.&lt;br /&gt;
&lt;br /&gt;
* Start your badge by plugging it in.&lt;br /&gt;
* The screens on your badge will say &amp;lt;code&amp;gt;Configure WiFi:&amp;lt;/code&amp;gt; &lt;br /&gt;
   [[File:configurewifi-1.png|300px]]&lt;br /&gt;
* Use your phone (or computer) to change wifi networks to use the badge. The badge wifi name starts with &amp;lt;code&amp;gt;aiko&amp;lt;/code&amp;gt; followed by some numbers/letters. &lt;br /&gt;
   [[File:configurewifi-2.png|200px]] -&amp;gt; [[File:configurewifi-3.png|200px]]&lt;br /&gt;
* Once you&#039;re connected to the badge wifi, open a web browser on that device to the IP address shown on the screens. Something like &amp;lt;code&amp;gt;http://192.168.4.1&amp;lt;/code&amp;gt; &lt;br /&gt;
   [[File:configurewifi-5.png|300px]]&lt;br /&gt;
* You&#039;ll be prompted to enter your wifi SSID and wifi password. &#039;&#039;&#039;Note: Your device can only use a 2.4GHz network&#039;&#039;&#039;: it is not compatible with 5GHz WiFi.&lt;br /&gt;
* The badge will restart using the credentials you&#039;ve provided and it will shut down its wifi access point. &lt;br /&gt;
   [[File:configurewifi-4.png|300px]]&lt;br /&gt;
* Your phone/computer will go back to using its usual wifi network and badge is now online!&lt;br /&gt;
&lt;br /&gt;
Note: If you are using an Android device to link the badge to your WiFi, it will pop up a dialog to say you are switching to a network that doesn&#039;t have Internet access and ask if you want to switch back. Select &amp;quot;Keep&amp;quot; to stay on the badge&#039;s temporary access point.&lt;br /&gt;
&lt;br /&gt;
=== Getting the device on your wifi - commandline with mpfshell ===&lt;br /&gt;
&lt;br /&gt;
If the above guide to setting up via the wifi AP (access point) doesn&#039;t work, you can put a configuration file onto the badge. You&#039;ll need a Python environment to do so, which you&#039;ll need anyway if you plan on writing your own badge software applications.&lt;br /&gt;
&lt;br /&gt;
* Start by getting [[Swagbadge2021_UpdatingSoftware|a copy of the aiko firmware, and installing mpfshell]]&lt;br /&gt;
* &#039;&#039;Note: Your device can only talk to a 2.4GHz network: it is not compatible with 5GHz.&#039;&#039;&lt;br /&gt;
* Edit aiko_engine_mp/configuration/net.py and insert the details of your SSID and password.&lt;br /&gt;
* use mpfshell: &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; (substitute the com port/tty of your badge)&lt;br /&gt;
* &amp;lt;code&amp;gt;put configuration/net.py configuration/net.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* fire up repl to view the console log &lt;br /&gt;
* You can now restart your device&lt;br /&gt;
* On bootup it should now talk to your network and you can see it on the console log.&lt;br /&gt;
&lt;br /&gt;
Your badge will display its connection status on the screens.&lt;br /&gt;
&lt;br /&gt;
= Running pre-installed applications =&lt;br /&gt;
&lt;br /&gt;
== Aiko&#039;s minimal Swagbadge application ==&lt;br /&gt;
At the moment the badge by default a basic &amp;quot;Swagbadge&amp;quot; application within the Aiko framework. This application&lt;br /&gt;
* has a thread to keep wifi running, &lt;br /&gt;
* has a thread to stay connected to (our Australian, private) mqtt server&lt;br /&gt;
* has a thread to display a rotating header across the two oleds.&lt;br /&gt;
&lt;br /&gt;
You can now talk to your badge [[Swagbadge2021_MQTT|using MQTT messages]].&lt;br /&gt;
&lt;br /&gt;
== Running other applications ==&lt;br /&gt;
At the moment, &amp;quot;swagbadge&amp;quot; is the only application that&#039;s for use with the badge. &lt;br /&gt;
&lt;br /&gt;
There are [https://github.com/geekscape/aiko_engine_mp/tree/master/applications other applications] in the repo which are for other places the Aiko framework has been used.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve written an application of your own and want to run that by default on badge startup, &lt;br /&gt;
# edit your local copy of configuration/main.py and change the value of the &amp;quot;application&amp;quot; to point to your new application.&lt;br /&gt;
# using mpfshell, &#039;put&#039; configuration/main.py and applications/your_application.py onto the badge&lt;br /&gt;
# Restart the badge&lt;br /&gt;
&lt;br /&gt;
== Running example code ==&lt;br /&gt;
There is [https://github.com/geekscape/aiko_engine_mp/tree/master/examples example code] which has a number of examples in it, including a snake game and a demo of how to use various badge functions.&lt;br /&gt;
&lt;br /&gt;
# From your commandline on your computer, use mpfshell to put whatever example code you want onto the badge.&lt;br /&gt;
# To run example code, you can use the &amp;quot;emergency stop&amp;quot; function to halt any other applications and put you in the repl.&lt;br /&gt;
## Touch both of the bottom spots on the sliders&lt;br /&gt;
## Reboot the badge&lt;br /&gt;
# Now at the repl prompt, type (replace the name of the module as appropriate for the code you want to run): &lt;br /&gt;
&lt;br /&gt;
Use examples.game_snake as example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
from examples.game_snake import run&lt;br /&gt;
run()&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use ctrl-c to halt operation and return to the repl prompt.&lt;br /&gt;
&lt;br /&gt;
= Hardware pinout =&lt;br /&gt;
&lt;br /&gt;
You can get the schematic and pin mapping on this page: https://github.com/CCHS-Melbourne/Swag-Badge/blob/master/Swag-Badge-2021/swag-badge-schematic.pdf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- GPIO0 : left breakout pin4 (can be VSPI CS/SS#1 if 2 SPI devices, otherwise wire CS to GND)&lt;br /&gt;
- GPIO2 : left breakout pin3 (can be VSPI CS/SS#2 if 2 SPI devices, otherwise wire CS to GND)&lt;br /&gt;
&lt;br /&gt;
- GPIO4 : SCL (shared across all SAO connectors and the screens)&lt;br /&gt;
- GPIO5 : SDA (shared across all SAO connectors and the screens)&lt;br /&gt;
- GPIO12/15: slider #1&lt;br /&gt;
- GPIO13: left breakout pin3 (can be used for TFT backlight)&lt;br /&gt;
- GPIO14/27: slider #2&lt;br /&gt;
- GPIO16: left switch  (under screen #1)&lt;br /&gt;
- GPIO17: right switch (under screen #2)&lt;br /&gt;
&lt;br /&gt;
- GPIO18: SAO3 pin3 + LB pin7  (also VSPI SCL/SCK/CLK/D0)&lt;br /&gt;
- GPIO23: SAO3 pin4            (also VSPI SDA/SDI/MOSI/D1)&lt;br /&gt;
&lt;br /&gt;
- GPIO19: SAO1 pin4&lt;br /&gt;
- GPIO22: SAO1 pin3 (also onboard blue LED in the back)&lt;br /&gt;
&lt;br /&gt;
- GPIO21: unused but not wired on this chip&lt;br /&gt;
&lt;br /&gt;
- GPIO25: SAO4 pin4 + RB pin6  (also VSPI DC/A0/RS)&lt;br /&gt;
- GPIO26: SAO4 pin3 + RB pin7  (also VSPI RES/RST or RST can be wired to EN for auto)&lt;br /&gt;
&lt;br /&gt;
- GPIO32: SAO2 pin3 + RB pin4 (touch pin, can be used with SAO tux foot or nose touchpad) &lt;br /&gt;
- GPIO33: SAO2 pin4 + RB pin5 (touch pin, can be used with SAO tux foot or nose touchpad)&lt;br /&gt;
&lt;br /&gt;
- GPIO34: right breakout pin2 (input only)&lt;br /&gt;
- GPIO35: right breakout pin3 (input only)&lt;br /&gt;
&lt;br /&gt;
- GPIO36: unused but not wired on this chip (input only)&lt;br /&gt;
- GPIO39: unused but not wired on this chip (input only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using Hardware SPI for a device like SSD1331 ==&lt;br /&gt;
ESP32 has 2 DMA capable hardware SPI busses usable by the user: SPI2/HSPI and SPI3/VSPI (see https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_master.html and https://github.com/espressif/arduino-esp32/blob/master/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino for how to use them at the same time ). The important note in the espressif doc is that if you do not use the dedicated default HWSPI pins, they get routed through a hardware MUX and your maximum SPI speed is lowered from 80Mhz to 40Mhz.&lt;br /&gt;
&lt;br /&gt;
If you would like to connect an SPI device like an SSD1331 96x64 color TFT, here are default hardware pin numbers, and pins you can use for non SPI signals (RES/RST, DC/A0/RS, and CS/SS):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  SD1331 Pin	        ESP32	ESP32&lt;br /&gt;
1 GND                   VSPI    HSPI &lt;br /&gt;
2 VCC&lt;br /&gt;
3 SCL/SCK/CLK/D0	18	14   &lt;br /&gt;
4 SDA/SDI/MOSI/D1	23	13   &lt;br /&gt;
---- 2 pins above and MISO are HWSPI, pins below are anything&lt;br /&gt;
---- RST is not part of SPI, it&#039;s an out of band signal to reset a TFT&lt;br /&gt;
---- This could be wired to the ESP32 EN(reset) pin&lt;br /&gt;
5 RES/RST		26	26   &lt;br /&gt;
---- Data/Command pin is not part of SPI but used to tell the TFT if incoming SPI&lt;br /&gt;
---- data is actually a command, or pixel data.&lt;br /&gt;
6 DC/A0/RS (data)	25	25   &lt;br /&gt;
---- Cable select chooses which SPI device we&#039;re talking to, if there is only&lt;br /&gt;
---- one, it can be tied to ground. Any pin is fine&lt;br /&gt;
7 CS/SS =&amp;gt; GND	        0	2   &lt;br /&gt;
&lt;br /&gt;
---- MISO is not used to talk to TFTs, and is a hardware pin, but unused here&lt;br /&gt;
  MISO		        19	12    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
pins 12/13/14 are already used by the badge, but 18/19/23 are usable (SAO3 and SAO1), and since MISO is unused, you could also assign it to GPIO21 which isn&#039;t wired at all on the lolin lite chip.  &lt;br /&gt;
If you&#039;d also like to keep SAO4 usable (25/26), you can wire CS/SS to ground to free up pin 27, move DC/AO/RS to pin 27, and free up pin 26 (RST) by wiring RST to the ESP32 ENA pin, which should issue a TFT reset every time the ESP32 is reset.&lt;br /&gt;
&lt;br /&gt;
End result: https://youtu.be/TYItVAa4tJY&lt;br /&gt;
&lt;br /&gt;
= Extensions: Adding a SAO =&lt;br /&gt;
* provided by others: look at [https://www.tindie.com/search/?q=SAO Tindie]&lt;br /&gt;
* [[Swagbadge2021_SAO|Build your own]]&lt;br /&gt;
&lt;br /&gt;
= Extensions: Writing your own applications =&lt;br /&gt;
&lt;br /&gt;
Between when we ship the board and when it arrives, there might be some changes to the software framework (Aiko). Here&#039;s how to update it. Or perhaps you&#039;re interested in writing your own applications? &lt;br /&gt;
&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Updating the Software]]&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|Writing your own badge programs]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge_Reinstall&amp;diff=1468</id>
		<title>Swagbadge Reinstall</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge_Reinstall&amp;diff=1468"/>
		<updated>2022-01-14T02:26:28Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Linux: connecting to the badge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
# Install the OS utilities you&#039;ll need&lt;br /&gt;
# Locate the USB port your badge is on&lt;br /&gt;
# Make a backup of your encryption key (and any other settings you want to keep such as your wifi config)&lt;br /&gt;
# Flash the microprocessor with the firmware&lt;br /&gt;
# Send through a copy of the new code&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file as listed below...&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: installing utilities == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fetch the firmware&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
== Erase and reinstall firmware ==&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. It comes with [https://github.com/thonny/thonny/wiki/MicroPython instructions for using Thonny with micropython].&lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Project_Status&amp;diff=1467</id>
		<title>OHMC2022 Project Status</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Project_Status&amp;diff=1467"/>
		<updated>2022-01-09T06:19:47Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project Status}}&lt;br /&gt;
Last updated on: &#039;&#039;&#039;2022-01-08 19:00&#039;&#039;&#039; --- Status: &#039;&#039;&#039;Testing all hardware and completing Rockling FPGA audio SAO assembly&#039;&#039;&#039;&lt;br /&gt;
== Summary ==&lt;br /&gt;
Disappointingly for all concerned, due to delays and development problems we won&#039;t be delivering the hardware to you in time for LCA2022 on 2022-01-14 😱 We are in the final stages of hardware production manufacturing and testing, and we estimate we&#039;ll start shipping in late January.&lt;br /&gt;
&lt;br /&gt;
On Friday 2022-01-14, all the talks will go ahead [https://linux.conf.au/schedule/#friday as scheduled].  Our presentations will also include some details about the hardware challenges we&#039;ve faced! &lt;br /&gt;
&lt;br /&gt;
We sincerely apologise for missing our deadline: we&#039;re sorry that we let you down 😢  Producing a satisfying quality result where the hardware has been thoroughly tested so you have a kit that works as advertised is paramount... and we hope you agree too.  We are looking forward to delivering them, collaborating on developing software, along with building fun and interesting applications with you.&lt;br /&gt;
&lt;br /&gt;
== Hardware components ==&lt;br /&gt;
The project consists of three pieces of hardware that can be used together or individually ...&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Rockling FPGA audio SAO:&#039;&#039;&#039; A Lattice iCE40 UP5K based development board (same FPGA as the [https://tomu.im/fomu.html FOMU] used in [https://workshop.fomu.im Tim Ansell&#039;s workshop]) with an Audio codec and amplifier with headphone and speaker connectors.  Also includes a Theremin front-end with volume and pitch controls connected to the FPGA.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SwagBadge 2022:&#039;&#039;&#039; An ESP32 based development board with a 320x240 colour TFT LED screen, 2x touch sliders and 3x SAO connectors.  Also intended to be a primary user interface for the Rockling FPGA SAO.  Compatible with last year&#039;s SwagBadge 2021&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;The Party Button SAO:&#039;&#039;&#039; A beautiful D.I.Y soldering kit with a button and LEDs that can operate either standalone or connected to a SwagBadge&lt;br /&gt;
&lt;br /&gt;
== Rockling FPGA audio SAO details ==&lt;br /&gt;
[[File:test_rockling.jpg|400px|right|Rockling FPGA audio SAO]]&lt;br /&gt;
&lt;br /&gt;
Note: These boards are being assembled using Jon&#039;s open-source pick-and-place machine.&lt;br /&gt;
&lt;br /&gt;
* We made a mistake when ordering the production solder-paste mask.  Fortunately, the reorder time delay was avoided with an inspired idea by Jon, which involved hacking the prototype solder-paste mask to match the minimal production changes.&lt;br /&gt;
&lt;br /&gt;
* 43 out of 50 Rocking PCBs have been fully assembled, but...&lt;br /&gt;
&lt;br /&gt;
* Unfortunately, we are only achieving around 50% yield after testing due to the misplacement of a very tight tolerance 48 MHz oscillator.  That is a terribly low yield.  Fortunately, carefully reseating that oscillator works half the time, bringing our yield up to around 75%.  Better, but not good enough.  We are still performing diagnosis to completely understand the problem ... so that our yield will exceed 90%, preferably get to 95% or more (which is two or three failed boards out of 50).  &#039;&#039;&#039;It&#039;ll take around a day or so (estimated) to figure out this problem.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Right now, we have 11 mostly tested Rockling PCBs, with another 16 that look promising ... for a total of 27 good out of 43 total made.  Leaving 16 failed Rockling PCBs that need some rework.&lt;br /&gt;
&lt;br /&gt;
* The Rockling FPGA gateware and firmware development to fully test out the boards is mostly done.  Only the I2C commands for the Audio codec IC (SGTL5000) needs to be completed.  At which point we&#039;ll be able to take the good Rockling PCBs from &amp;quot;mostly tested&amp;quot; to &amp;quot;fully tested&amp;quot;.  &#039;&#039;&#039;It&#039;ll take around 2 to 3 days to complete the testing firmware and then a couple of days to test and perform any failure diagnosis and rework.&#039;&#039;&#039;  This is based on the experiences of the first dozen we made and is hopefully a reasonable predictor for the remaining boards.&lt;br /&gt;
&lt;br /&gt;
* We&#039;ll need to assemble a minimum of another 7 and perhaps around 16 more Rockling boards (to account for failures).&lt;br /&gt;
&lt;br /&gt;
== SwagBadge 2022 details ==&lt;br /&gt;
[[File:test_swagbadge_2022.jpg|400px|right|SwagBadge 2022]]&lt;br /&gt;
&lt;br /&gt;
* We made a mistake and for the production PCB run sent the wrong Gerber files.  Another production run was ordered and delivered.&lt;br /&gt;
&lt;br /&gt;
* All ESP32 Lolin32-Lite and colour TFT LED screens have been tested prior to assembly.  We never get 100% working parts when larger quantities are ordered.  So we only solder them to the PCB after the components pass individual tests.  Those individual component tests have been completed&lt;br /&gt;
&lt;br /&gt;
* All 50 SwagBadges have been assembled and await final testing.  &#039;&#039;&#039;There is a couple of days required to complete the test firmware development and final testing of every SwagBadge.&#039;&#039;&#039;  We anticipate close to 100% yield.&lt;br /&gt;
&lt;br /&gt;
== The Party Button SAO details ==&lt;br /&gt;
[[File:test_party_button.jpg|300px|right|The Party Button SAO]]&lt;br /&gt;
&lt;br /&gt;
* There was a small design mistake in the production PCBs.  Fortunately, we can fix this by cutting a track and adding a bodge wire, which takes approximately 5 minutes per PCB.  &#039;&#039;&#039;For 50 kits, this will take half-a-day to perform the repair&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* All 50 kits have been packaged up with documentation for D.I.Y assembly (simple soldering)&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
When will there be more precise shipping date ?&lt;br /&gt;
&lt;br /&gt;
* Right now we are ensuring that our presentations and logistics for the OHMC on 2022-01-14 are complete.  On-going manufacture and testing will ramp up again after that date and we&#039;ll re-estimate again at that point.  We will continue to update this status page as we make progress.&lt;br /&gt;
&lt;br /&gt;
What if receiving the OHMC hardware kit after LCA2022 is unacceptable ?&lt;br /&gt;
&lt;br /&gt;
* We will organise a full refund.  We are aiming for this project to have value, longevity and support well beyond LCA2022 and hope that you&#039;ll remain as keen as we are.&lt;br /&gt;
&lt;br /&gt;
What if I missed registering for a hardware kit and would like one ?&lt;br /&gt;
&lt;br /&gt;
* We acquired additional hardware parts and will manufacture a limited number after LCA2022.  After the original batch has been delivered, we will announce further details. Stay tuned to our twitter account or keep an eye on this here wiki.&lt;br /&gt;
&lt;br /&gt;
Will we ship to international addresses ?&lt;br /&gt;
&lt;br /&gt;
* Yes, for post-LCA2022 orders. However, we ask that you cover the cost of the additional shipping charges.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Swagbadge&amp;diff=1454</id>
		<title>OHMC2022 Swagbadge</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Swagbadge&amp;diff=1454"/>
		<updated>2021-12-29T06:31:13Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* What changed in the badge? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What&#039;s new in 2022 from 2021? ==&lt;br /&gt;
&lt;br /&gt;
* Badge has been upgraded&lt;br /&gt;
* We&#039;re also shipping a dedicated SAO - the Rockling&lt;br /&gt;
* We&#039;re also shipping a party button SAO&lt;br /&gt;
&lt;br /&gt;
=== What changed in the badge? ===&lt;br /&gt;
&lt;br /&gt;
* New form factor. 2022 is a tux. 2021 badge was a rectangle.&lt;br /&gt;
* Eyeball upgrade. 2022 has a single large display. 2021 had two smaller screens.&lt;br /&gt;
* Screens are no longer push button. 2021 screens doubled as push buttons, but this was mechanically fragile and a bit dodgy, so we removed that for 2022.&lt;br /&gt;
* Reset belly button. 2021 had only the reset button on the ESP32 which was hard to get to.&lt;br /&gt;
&lt;br /&gt;
=== What is the Rockling SAO? ===&lt;br /&gt;
&lt;br /&gt;
The Swagbadge supports the SAO (Simple Add-On) connector format, allowing you to chain PCBs together. We are supplying the Rockling, (called so because it&#039;s in the shape of a fish (for Tux to eat) and because it really rocks 🎵) which has sound processing on board, and an FPGA.&lt;br /&gt;
&lt;br /&gt;
Whether you&#039;re into FPGAs, or theremins or some other audio work, the Rockling is for you.&lt;br /&gt;
&lt;br /&gt;
=== What is the party button SAO? ===&lt;br /&gt;
&lt;br /&gt;
Designed by [https://twitter.com/sjpiper145 Steph Piper], it&#039;s a DIY assembly party button to practice soldering with, that can be run standalone or powered by the Swagbadge. And it is delightful.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1453</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1453"/>
		<updated>2021-12-29T06:28:05Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support. Multiplatform support.&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch: Optional ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). &lt;br /&gt;
&lt;br /&gt;
If you choose to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
=== Windows 10: connecting to the badge ===&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
=== Mac OS: connecting the badge ===&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
=== Linux: connecting to the badge ===&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: install utilities for commandline ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download Swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the Swagbadge software to live, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download Swagbadge firmware for a local copy of what&#039;s on the badge:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Communicating with the badge ==&lt;br /&gt;
&lt;br /&gt;
=== Using mpfshell to communicate ===&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
Test that your machine can talk to the badge using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Thonny, rshell or pyboard.py to communicate ===&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is a (fabulous) IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Get the file: `configuration/keys.db` from the badge to your computer, via mpfshell, Thonny, or your other chosen mechanism.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1452</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1452"/>
		<updated>2021-12-29T06:22:31Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Download #swagbadge (Aiko Engine) firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support. Multiplatform support.&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch: Optional ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). &lt;br /&gt;
&lt;br /&gt;
If you choose to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: install utilities for commandline ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download Swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the Swagbadge software to live, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download Swagbadge firmware for a local copy of what&#039;s on the badge:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test that your machine can talk to the badge using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1451</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1451"/>
		<updated>2021-12-29T06:21:00Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Starting from scratch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support. Multiplatform support.&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch: Optional ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). &lt;br /&gt;
&lt;br /&gt;
If you choose to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: install utilities for commandline ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to live, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware for a local copy of what&#039;s on the badge:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test that your machine can talk to the badge using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Swagbadge&amp;diff=1450</id>
		<title>OHMC2022 Swagbadge</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Swagbadge&amp;diff=1450"/>
		<updated>2021-12-29T06:17:37Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot;== What&amp;#039;s new in 2022 from 2021? ==  * Badge has been upgraded * We&amp;#039;re also shipping a dedicated SAO - the Rockling * We&amp;#039;re also shipping a party button SAO  === What changed...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What&#039;s new in 2022 from 2021? ==&lt;br /&gt;
&lt;br /&gt;
* Badge has been upgraded&lt;br /&gt;
* We&#039;re also shipping a dedicated SAO - the Rockling&lt;br /&gt;
* We&#039;re also shipping a party button SAO&lt;br /&gt;
&lt;br /&gt;
=== What changed in the badge? ===&lt;br /&gt;
&lt;br /&gt;
* New form factor. 2022 is a tux. 2021 badge was a rectangle.&lt;br /&gt;
* Eyeball upgrade. 2022 has a single large display. 2021 had two smaller screens.&lt;br /&gt;
* Reset belly button. 2021 had only the reset button on the ESP32 which was hard to get to.&lt;br /&gt;
&lt;br /&gt;
=== What is the Rockling SAO? ===&lt;br /&gt;
&lt;br /&gt;
The Swagbadge supports the SAO (Simple Add-On) connector format, allowing you to chain PCBs together. We are supplying the Rockling, (called so because it&#039;s in the shape of a fish (for Tux to eat) and because it really rocks 🎵) which has sound processing on board, and an FPGA.&lt;br /&gt;
&lt;br /&gt;
Whether you&#039;re into FPGAs, or theremins or some other audio work, the Rockling is for you.&lt;br /&gt;
&lt;br /&gt;
=== What is the party button SAO? ===&lt;br /&gt;
&lt;br /&gt;
Designed by [https://twitter.com/sjpiper145 Steph Piper], it&#039;s a DIY assembly party button to practice soldering with, that can be run standalone or powered by the Swagbadge. And it is delightful.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2022_community&amp;diff=1449</id>
		<title>Swagbadge2022 community</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2022_community&amp;diff=1449"/>
		<updated>2021-12-29T06:09:17Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot;= Badge community =  We love to showcase what you&amp;#039;ve done with the badge. Let us know so we can share your work with the world!  == Connective and reactive applications on the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Badge community =&lt;br /&gt;
&lt;br /&gt;
We love to showcase what you&#039;ve done with the badge. Let us know so we can share your work with the world!&lt;br /&gt;
&lt;br /&gt;
== Connective and reactive applications on the badge ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SAO specific ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supporting software ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Last year&#039;s works: [[Swagbadge2021_community|Swagbadge 2021 community]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1448</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1448"/>
		<updated>2021-12-29T06:07:01Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]: find out what we&#039;re doing this year&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 speakers are announced, schedule is on the LCA website.&lt;br /&gt;
&lt;br /&gt;
* Twitter [https://twitter.com/openhwconf @OpenHWConf]: follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]: the open hardware miniconf is really a conference for all, &#039;&#039;no matter your current level of experience&#039;&#039;. Newcomers VERY welcome!&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history. Didn&#039;t do this this year.&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do while waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We use the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. How to plug it in and turn it on.&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own applications&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Development Environment]]: Set up your computer so you can update the code on the badge&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking over MQTT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own hardware SAOs&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]: for your own extension boards&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub discussions]: Forums for hardware participants to talk with each other and the OHMC team&lt;br /&gt;
* [[Swagbadge2022_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
* [[SwagBadge2022 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=SwagBadge2022_FAQ&amp;diff=1447</id>
		<title>SwagBadge2022 FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=SwagBadge2022_FAQ&amp;diff=1447"/>
		<updated>2021-12-29T06:05:09Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot;= Frequently Asked Questions =  === I need more help! ===  Head over to https://github.com/OpenHardwareConf/LCA2022/discussions. All sorts of helpful and knowledgeable folk ha...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
=== I need more help! ===&lt;br /&gt;
&lt;br /&gt;
Head over to https://github.com/OpenHardwareConf/LCA2022/discussions. All sorts of helpful and knowledgeable folk hang out there.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m outside of Australia, how can I acquire #swagbadge hardware? ===&lt;br /&gt;
&lt;br /&gt;
Check out [http://www.openhardwareconf.org/wiki/Swagbadge2021_Dagbadge Dagbadge] which is the D.I.Y option of a Swagbadge with a parts list and instructions.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve deliberately chosen readily available parts, i.e ESP32 Lolin32, 0.96&amp;quot; OLED screens and buttons, so that it is inexpensive and easy for anyone to acquire parts for participating in the development process along with us.  This also means that for those people we can&#039;t ship to, due to cost and time constraints, there is still an option for you to not miss out.  &lt;br /&gt;
&lt;br /&gt;
=== What powers the badge? Can I run it off a battery? ===&lt;br /&gt;
&lt;br /&gt;
You can plug a micro USB cable into the badge to provide power. We haven&#039;t provided one in the kits on the basis that everyone probably has plenty lying around at home already, and if not, they&#039;re easy and cheap to get hold of.&lt;br /&gt;
&lt;br /&gt;
It is possible to power the badge using a battery: the LOLIN32 has a JST header where a small 1S LiPo can be plugged in, but you&#039;ll need to provide the battery (and connect it to the badge) yourself. (Places like [https://hobbyking.com/en_us Hobby King] sell them, but the shipping isn&#039;t cheap.)&lt;br /&gt;
&lt;br /&gt;
=== Who is the team behind the Swagbadge? ===&lt;br /&gt;
&lt;br /&gt;
The core team this year for OHMC is:&lt;br /&gt;
* [https://twitter.com/jonoxer Jon Oxer]&lt;br /&gt;
* [https://twitter.com/geekscape Andy Gelme]&lt;br /&gt;
* [https://twitter.com/nye_nicola Nicola Nye]&lt;br /&gt;
* [https://twitter.com/auastro Andy Kitchen]&lt;br /&gt;
* Andrew Nielsen&lt;br /&gt;
* [https://twitter.com/mage0r John Spencer]&lt;br /&gt;
* [https://twitter.com/rd_powers Bob Powers]&lt;br /&gt;
* [https://twitter.com/sjpiper145 Steph Piper]&lt;br /&gt;
with help in all sorts of ways from many other individuals.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m done and want to pass my badge on ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re done with your badge and would like to pass it on to a new home, please let us know.&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions/categories/general-chat Tell us on the Discussions boards] if you want to pass it on.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like a spare badge (got a friend who&#039;s keen to join in, or you want to help your kiddo learn electronics), or you&#039;re part of a makerspace or a school who&#039;d like a set of badges, let us know that too!&lt;br /&gt;
&lt;br /&gt;
Hopefully we can put column A in touch with column B.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1446</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1446"/>
		<updated>2021-12-29T05:58:36Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]: find out what we&#039;re doing this year&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 speakers are announced, schedule is on the LCA website.&lt;br /&gt;
&lt;br /&gt;
* Twitter [https://twitter.com/openhwconf @OpenHWConf]: follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]: the open hardware miniconf is really a conference for all, &#039;&#039;no matter your current level of experience&#039;&#039;. Newcomers VERY welcome!&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history. Didn&#039;t do this this year.&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do while waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We use the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. How to plug it in and turn it on.&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own applications&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Development Environment]]: Set up your computer so you can update the code on the badge&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking over MQTT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own hardware SAOs&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]: for your own extension boards&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub discussions]: Forums for hardware participants to talk with each other and the OHMC team&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
* [[SwagBadge2022 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1445</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1445"/>
		<updated>2021-12-29T05:57:34Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* What to do while waiting for OHMC2022 hardware ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]: find out what we&#039;re doing this year&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 speakers are announced, schedule is on the LCA website.&lt;br /&gt;
&lt;br /&gt;
* Twitter [https://twitter.com/openhwconf @OpenHWConf]: follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]: the open hardware miniconf is really a conference for all, &#039;&#039;no matter your current level of experience&#039;&#039;. Newcomers VERY welcome!&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history. Didn&#039;t do this this year.&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do while waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We use the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. How to plug it in and turn it on.&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own applications&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Development Environment]]: Set up your computer so you can update the code on the badge&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking over MQTT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own hardware SAOs&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]: for your own extension boards&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub discussions]: Forums for hardware participants to talk with each other and the OHMC team&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1444</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1444"/>
		<updated>2021-12-29T05:56:58Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project status -- Stay up-to-date -- About the OHMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]: find out what we&#039;re doing this year&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 speakers are announced, schedule is on the LCA website.&lt;br /&gt;
&lt;br /&gt;
* Twitter [https://twitter.com/openhwconf @OpenHWConf]: follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]: the open hardware miniconf is really a conference for all, &#039;&#039;no matter your current level of experience&#039;&#039;. Newcomers VERY welcome!&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history. Didn&#039;t do this this year.&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. How to plug it in and turn it on.&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own applications&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Development Environment]]: Set up your computer so you can update the code on the badge&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking over MQTT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own hardware SAOs&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]: for your own extension boards&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub discussions]: Forums for hardware participants to talk with each other and the OHMC team&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1443</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1443"/>
		<updated>2021-12-19T07:25:01Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support. Multiplatform support.&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). If you would like to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: install utilities for commandline ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to live, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware for a local copy of what&#039;s on the badge:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test that your machine can talk to the badge using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1442</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1442"/>
		<updated>2021-12-19T07:24:22Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating the software framework =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). If you would like to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: install utilities for commandline ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to live, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware for a local copy of what&#039;s on the badge:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test that your machine can talk to the badge using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge_Reinstall&amp;diff=1441</id>
		<title>Swagbadge Reinstall</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge_Reinstall&amp;diff=1441"/>
		<updated>2021-12-19T07:14:32Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot;== Overview ==  # Install the OS utilities you&amp;#039;ll need # Locate the USB port your badge is on # Make a backup of your encryption key (and any other settings you want to keep s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
# Install the OS utilities you&#039;ll need&lt;br /&gt;
# Locate the USB port your badge is on&lt;br /&gt;
# Make a backup of your encryption key (and any other settings you want to keep such as your wifi config)&lt;br /&gt;
# Flash the microprocessor with the firmware&lt;br /&gt;
# Send through a copy of the new code&lt;br /&gt;
&lt;br /&gt;
== Windows 10: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Mac OS: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Linux: connecting to the badge ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows 10: installing utilities == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fetch the firmware&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
== Erase and reinstall firmware ==&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
[https://thonny.org Thonny] is an IDE for python, with micropython support. It comes with [https://github.com/thonny/thonny/wiki/MicroPython instructions for using Thonny with micropython].&lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1440</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1440"/>
		<updated>2021-12-19T07:07:34Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating the software framework =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing software development, you need an environment on your computer to let you do that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Starting from scratch ==&lt;br /&gt;
&lt;br /&gt;
All Swagbadges come with the operating system, basic firmware and aiko preinstalled (this is how you get your assigned encryption key). If you would like to wipe your board and start again to ensure you know exactly what&#039;s on there, you can do so. Instructions for performing a [[Swagbadge_Reinstall|complete reinstall]] are provided here.&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for connecting to badge hardware ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Setting up your Mac OS system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Setting up your Linux system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for installing #swagbadge firmware == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
Thonny is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1439</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1439"/>
		<updated>2021-12-19T07:02:22Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Putting the Aiko framework onto the device, using mpfshell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating the software framework =&lt;br /&gt;
&lt;br /&gt;
Swagbadge owners might want to update the software framework (Aiko). Dagbadge owners will need to put the framework onto their badge before they can use it.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to do that!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for connecting to badge hardware ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Setting up your Mac OS system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Setting up your Linux system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for installing #swagbadge firmware == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
Thonny is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell used to need a patch applied to let it run a script under Windows. This is no longer required, but recorded here for archival purposes.&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1438</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1438"/>
		<updated>2021-12-19T07:01:08Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Alternatives to mpfshell: rshell and pyboard.py */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating the software framework =&lt;br /&gt;
&lt;br /&gt;
Swagbadge owners might want to update the software framework (Aiko). Dagbadge owners will need to put the framework onto their badge before they can use it.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to do that!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for connecting to badge hardware ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Setting up your Mac OS system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Setting up your Linux system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for installing #swagbadge firmware == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: Thonny, rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
Thonny is an IDE for python, with micropython support. &lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell needs a patch applied to let it run a script under Windows. (the patch is included upstream, it&#039;s just not in a released distribution yet)&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1437</id>
		<title>Swagbadge2021 UpdatingSoftware</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_UpdatingSoftware&amp;diff=1437"/>
		<updated>2021-12-19T06:59:05Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Updating the software framework =&lt;br /&gt;
&lt;br /&gt;
Swagbadge owners might want to update the software framework (Aiko). Dagbadge owners will need to put the framework onto their badge before they can use it.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to do that!&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* #swagbadge or #dagbadge or any ESP32 with an OLED screen&lt;br /&gt;
* Micro-USB cable&lt;br /&gt;
* Linux (including WSL), Mac OS or Windows system running Python 3&lt;br /&gt;
* Command line tools: git&lt;br /&gt;
* Optional, but very useful: [https://thonny.org/ Thonny] - Python IDE with micropython support&lt;br /&gt;
** Edit files directly on the badge&lt;br /&gt;
** Run files directly on the badge&lt;br /&gt;
** GUI instead of command line.&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for connecting to badge hardware ==&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on Windows: &lt;br /&gt;
* Use the Device Manager. &lt;br /&gt;
* Under the &amp;quot;Ports&amp;quot; category, you&#039;ll see one or more entries. Hopefully one of which is your badge! It will tell you what Port it is on. &lt;br /&gt;
* If you can&#039;t see your badge, you might need to go up to the View menu and use &amp;quot;Show hidden devices&amp;quot; and see if that helps.&lt;br /&gt;
&lt;br /&gt;
Windows 10 may automatically discover your #swagbadge USB hardware and automatically install the correct USB serial hardware driver, or if nothing still shows up, you might need to update your USB drivers for supporting the USB hardware CP210x on your #swagbadge, please follow these instructions:&lt;br /&gt;
* Download the CP210x drivers from [https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers Silicon Labs Windows Universal Driver]&lt;br /&gt;
* Unpack the zip file&lt;br /&gt;
* Follow the Silicon Labs instructions for [https://www.silabs.com/documents/public/application-notes/AN335.pdf INF only install] (Section 5 on page 9)&lt;br /&gt;
&lt;br /&gt;
By this point, you have know the serial COM port that your #swagbadge is connected to, e.g COM4&lt;br /&gt;
&lt;br /&gt;
== Setting up your Mac OS system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to find your serial COM port on OS X: &lt;br /&gt;
&lt;br /&gt;
    $ ls /dev/tty.usb*&lt;br /&gt;
&lt;br /&gt;
Unless you have lot of dev boards (or maybe a phone) plugged in you should just see a single filename there.&lt;br /&gt;
Use this (without the &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; prefix) when using the open command in mpfshell&lt;br /&gt;
&lt;br /&gt;
To get a working `mpfshell` install a recent version of Python (Python3.8 is known to work) using a installed DMG.&lt;br /&gt;
Then create a *venv* and install the necessary tools using pip.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
    $ mkdir swag&lt;br /&gt;
    $ cd swag&lt;br /&gt;
    $ python3.8 -m venv env&lt;br /&gt;
    $ ./env/bin/pip install esptool mpfshell&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;lt;code&amp;gt;scripts/mpf.sh&amp;lt;/code&amp;gt; to connect (do not include the leading &amp;lt;code&amp;gt;/dev/&amp;lt;/code&amp;gt; when setting AMPY_PORT):&lt;br /&gt;
&lt;br /&gt;
    $ export AMPY_PORT=&amp;lt;your device node&amp;gt; # for bash, adjust to suit for your shell of choice&lt;br /&gt;
    $ scripts/mpf.sh&lt;br /&gt;
    mpfs [/]&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|Mac users beware: If you Ctrl-C mpfshell, (or disconnect USB cable while the badge connected to mpfshell), you could crash your desktop, due to the poor kernel drivers the Lolin32 Lite uses.}}&lt;br /&gt;
&lt;br /&gt;
== Setting up your Linux system for connecting to #swagbadge hardware ==&lt;br /&gt;
&lt;br /&gt;
# install the virtualwrapper https://virtualenvwrapper.readthedocs.io/en/latest/install.html&lt;br /&gt;
# Add the below code to your .bashrc&lt;br /&gt;
   export WORKON_HOME=$HOME/.virtualenvs&lt;br /&gt;
   export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
   export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv&lt;br /&gt;
   export PROJECT_HOME=$HOME/Programming&lt;br /&gt;
   source /usr/local/bin/virtualenvwrapper.sh&lt;br /&gt;
   export AMPY_PORT=ttyUSB0   # note: no leading /dev/&lt;br /&gt;
# Create a firmware folder&lt;br /&gt;
# Download the bin file per listed above!&lt;br /&gt;
# Run &amp;lt;code&amp;gt;./scripts/flash_micropython.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up your Windows 10 system for installing #swagbadge firmware == &lt;br /&gt;
&lt;br /&gt;
* Install [https://docs.conda.io/en/latest/miniconda.html Miniconda3] to create a specific Python development environment. (Note we are using Python3 not Python2)&lt;br /&gt;
* Create specific Python 3 environment for playing around with your #swagbadge&lt;br /&gt;
** Start an Anaconda Powershell Prompt (aka Windows Terminal)&lt;br /&gt;
** &amp;lt;code&amp;gt;conda create --yes -n swagbadge python=3&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;conda activate swagbadge&amp;lt;/code&amp;gt;&lt;br /&gt;
* Your command prompt should now look like: &amp;lt;code&amp;gt;(swagbadge) C:\Users\[Username]&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install some python tools to let us prepare and communicate with the badge&lt;br /&gt;
** &amp;lt;code&amp;gt;pip install esptool mpfshell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To test that the required tools are installed, trying running the following commands&lt;br /&gt;
** &amp;lt;code&amp;gt;esptool&amp;lt;/code&amp;gt;  # Should show you help on running the esptool&lt;br /&gt;
** &amp;lt;code&amp;gt;mpfshell&amp;lt;/code&amp;gt;  # Should show three lines of output&lt;br /&gt;
*** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;  #  To exit mpfshell&lt;br /&gt;
&lt;br /&gt;
== Download #swagbadge (Aiko Engine) firmware ==&lt;br /&gt;
&lt;br /&gt;
Within your Anaconda Prompt session, change directory to where you’d like the #swagbadge software to be downloaded, for example:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd $HOME/software&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download #swagbadge firmware:&lt;br /&gt;
* &amp;lt;code&amp;gt;git clone https://github.com/geekscape/aiko_engine_mp.git&amp;lt;/code&amp;gt; # NOTE: this URL will change once we&#039;re live&lt;br /&gt;
* &amp;lt;code&amp;gt;cd aiko_engine_mp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install MicroPython&lt;br /&gt;
* Create a directory to hold the MicroPython firmware, such as aiko_engine_mp/firmware/&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir firmware&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using your web browser, download: [http://micropython.org/resources/firmware/esp32-idf4-20200902-v1.13.bin esp32-idf4-20200902-v1.13.bin] (mouse right button click → [Save As …]  saving the MicroPython firmware in the firmware directory you just made.&lt;br /&gt;
** The [http://micropython.org/download/ MicroPython download list] has a link to a bunch of firmware drivers, we are using the one for the esp32 device, with the latest 1.4 generic&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;STOP&#039;&#039;&#039;! Make a copy of your badge&#039;s encryption key and network settings before proceeding. Use mpfshell to get configuration/net.py and configuration/keys.db}}&lt;br /&gt;
&lt;br /&gt;
Erase #swagbadge LoLin-Lite ESP32 flash memory&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 erase_flash&amp;lt;/code&amp;gt; # adjust the port to suit.&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
You may get this error, if so, try esptool.py instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ esptool --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.8&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
Crystal is 40MHz&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Enabling default SPI flash mode...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
&lt;br /&gt;
A fatal error occurred: ESP32 ROM does not support function erase_flash.&lt;br /&gt;
sauron [mc]$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash&lt;br /&gt;
esptool.py v2.6&lt;br /&gt;
Serial port /dev/ttyUSB0&lt;br /&gt;
Connecting....&lt;br /&gt;
Chip is ESP32D0WDQ6 (revision 1)&lt;br /&gt;
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None&lt;br /&gt;
MAC: 7c:9e:bd:ed:79:24&lt;br /&gt;
Uploading stub...&lt;br /&gt;
Running stub...&lt;br /&gt;
Stub running...&lt;br /&gt;
Erasing flash (this may take a while)...&lt;br /&gt;
Chip erase completed successfully in 11.8s&lt;br /&gt;
Hard resetting via RTS pin...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install microPython on the badge&lt;br /&gt;
* &amp;lt;code&amp;gt;esptool --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 firmware\esp32-idf4-20200902-v1.13.bin&amp;lt;/code&amp;gt; #adjust port and firmware location if necessary&lt;br /&gt;
* You’ll know it’s worked, if the output finishes with “Hard resetting via RTS pin…”&lt;br /&gt;
&lt;br /&gt;
Test that the software is installed correctly by using mpfshell&lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell -o COM3&amp;lt;/code&amp;gt; # Adjust port to suit&lt;br /&gt;
* If it has made a connection to your badge, you will see it say&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Connected to esp32&lt;br /&gt;
** Micropython File Shell v0.9.1, sw@kaltpost.de **&lt;br /&gt;
-- Running on Python 3.8 using PySerial 3.4 --&lt;br /&gt;
mpfs [/]&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using mpfshell ==&lt;br /&gt;
&lt;br /&gt;
mpfshell has two functions: it lets you put files on/off the device, and it can give you a python shell to execute code on the device.&lt;br /&gt;
* Getting files on/off the device is a bit like commandline ftp&lt;br /&gt;
** ls - looks at the files on your micropython device&lt;br /&gt;
** lls - looks at the files on your local computer in the current directory&lt;br /&gt;
** put - puts a file to the device&lt;br /&gt;
** cat - shows you the contents of the file&lt;br /&gt;
** help() - gives you more information on the commands&lt;br /&gt;
** repl - opens up the python shell on the badge&lt;br /&gt;
&lt;br /&gt;
Note: To get out of repl, use Ctrl-Q (on Windows) which drops you back into mpfshell&lt;br /&gt;
&lt;br /&gt;
A little program to say hello world!&lt;br /&gt;
* &amp;lt;code&amp;gt; &amp;gt;&amp;gt;&amp;gt; print(&amp;quot;hello world&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Output: &amp;lt;code&amp;gt;hello world&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A little program to turn the blue light on the board on and off (this is on the underside of the Swagbadge, visible through a circular cutout)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;gt;&amp;gt;&amp;gt; import machine&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22=machine.Pin(22, machine.Pin.OUT, machine.Pin.PULL_UP)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(0) &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; pin22.value(1)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternatives to mpfshell: rshell and pyboard.py ==&lt;br /&gt;
&lt;br /&gt;
rshell is an option, but it may not be reliable in all cases. However &#039;pip install rshell&#039; also installs pyboard.&lt;br /&gt;
&lt;br /&gt;
pyboard.py is the official tool that ships with micropython and is more flexible and reliable: http://docs.micropython.org/en/latest/reference/pyboard.py.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sauron [mc]$ pyboard.py --device /dev/ttyUSB0 -c &#039;import os; print(os.statvfs(&amp;quot;/&amp;quot;)[0]*os.statvfs(&amp;quot;/&amp;quot;)[3], &amp;quot;bytes free out of&amp;quot;,os.statvfs(&amp;quot;/&amp;quot;)[1]*os.statvfs(&amp;quot;/&amp;quot;)[2])&#039;&lt;br /&gt;
1699840 bytes free out of 2097152&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving your private key ==&lt;br /&gt;
&lt;br /&gt;
Use mpfshell to get the file: `configuration/keys.db`.&lt;br /&gt;
&lt;br /&gt;
== Putting the Aiko framework onto the device, using mpfshell == &lt;br /&gt;
* &amp;lt;code&amp;gt;mpfshell COM5 -s scripts\aiko.mpf&amp;lt;/code&amp;gt; #run from within the aiko_framework_mp directory&lt;br /&gt;
&lt;br /&gt;
=== Windows only: Patch mpfshell ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note!&#039;&#039; mpfshell needs a patch applied to let it run a script under Windows. (the patch is included upstream, it&#039;s just not in a released distribution yet)&lt;br /&gt;
&lt;br /&gt;
* Inside &amp;lt;code&amp;gt;C:/users/USERNAME/Miniconda2/envs/swagbadge/Lib/site-packages/mp&amp;lt;/code&amp;gt;&lt;br /&gt;
* edit &amp;lt;code&amp;gt;mpfshell.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Search for &amp;lt;code&amp;gt;elif args.script is not None:&amp;lt;/code&amp;gt;, around line 796&lt;br /&gt;
* between that line and the next, insert two lines. It should look like:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
    elif args.script is not None:&lt;br /&gt;
&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:  #INSERT THIS LINE&lt;br /&gt;
            mpfs.use_rawinput = True        #INSERT THIS LINE&lt;br /&gt;
&lt;br /&gt;
        f = open(args.script, &amp;quot;r&amp;quot;)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Python is very particular about spacing. The rest of the code uses 4 spaces for indents so follow suit.&lt;br /&gt;
&lt;br /&gt;
= Software development =&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_SoftwareDev]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1436</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1436"/>
		<updated>2021-12-19T06:16:01Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhwconf Twitter @OpenHWConf] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. How to plug it in and turn it on.&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own applications&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_UpdatingSoftware|Development Environment]]: Set up your computer so you can update the code on the badge&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking over MQTT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Build your own hardware SAOs&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]: for your own extension boards&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub discussions]: Forums for hardware participants to talk with each other and the OHMC team&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1435</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1435"/>
		<updated>2021-12-19T05:18:35Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project status -- Stay up-to-date -- About the OHMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhwconf Twitter @OpenHWConf] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/OpenHardwareConf/LCA2022/discussions Discussions on GitHub for OHMC2022]: talk to the team, get help! &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1434</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1434"/>
		<updated>2021-12-19T05:16:28Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
This year, we have an updated version of last year&#039;s SwagBadge, with a custom addon we&#039;re calling a Rockling, that can act as a Theremin. But that&#039;s not all! We also have the Party Button addon too.&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;History and Aims&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA on-line mini-conference and opening up our development efforts prior to the day of the mini-conference.  This year we aim to build on the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Who can join in?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
YOU!&lt;br /&gt;
&lt;br /&gt;
Our overarching goal every year, is to help introduce open hardware to conference goers who have had no experience with hardware before, as well as support those who want to take their knowledge further. &lt;br /&gt;
&lt;br /&gt;
This year is no different. Whether you want to get involved just to hold a custom made microcomputer in your hand and take a look at the code that drives it, or if you want to solder your own doodads and twiddle the frobnitz on the FPGA, [[Youbelong|you are welcome]].&lt;br /&gt;
&lt;br /&gt;
We are working on building up a community of hardware folx who are able to help each other during the conference and throughout the year, hosted on [https://github.com/OpenHardwareConf/LCA2022/discussions GitHub Discussions].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What&#039;s in the kit for 2022&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee which covers the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a belly-button reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have the usual suite of brilliant talks about projects and ideas in the open hardware space by people who are experts in their field.&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
== Safety precautions ==&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1433</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1433"/>
		<updated>2021-12-19T05:14:45Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
This year, we have an updated version of last year&#039;s SwagBadge, with a custom addon we&#039;re calling a Rockling, that can act as a Theremin. But that&#039;s not all! We also have the Party Button addon too.&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;History and Aims&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA on-line mini-conference and opening up our development efforts prior to the day of the mini-conference.  This year we aim to build on the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Who can join in?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
YOU!&lt;br /&gt;
&lt;br /&gt;
Our overarching goal every year, is to help introduce open hardware to conference goers who have had no experience with hardware before, as well as support those who want to take their knowledge further. &lt;br /&gt;
&lt;br /&gt;
This year is no different. Whether you want to get involved just to hold a custom made microcomputer in your hand and take a look at the code that drives it, or if you want to solder your own doodads and twiddle the frobnitz on the FPGA, [[Youbelong|you are welcome]].&lt;br /&gt;
&lt;br /&gt;
We are working on building up a community of hardware folx who are able to help each other during the conference and throughout the year, hosted on [[https://github.com/OpenHardwareConf/LCA2022/discussions|GitHub Discussions]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What&#039;s in the kit for 2022&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee which covers the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a belly-button reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have the usual suite of brilliant talks about projects and ideas in the open hardware space by people who are experts in their field.&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
== Safety precautions ==&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1432</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1432"/>
		<updated>2021-12-02T10:46:35Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA &#039;&#039;&#039;on-line&#039;&#039;&#039; mini-conference and opening up our development efforts prior to the day of the mini-conference.  We aim to do better again this year, in part helped by building upon the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  Also, by reaching out to HackerSpaces / MakerSpaces and individuals who&#039;d like to be more closely involved in the process, especially around designing and building custom D.I.Y SAO hardware and firmware.&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee (TBA) to cover the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a belly-button reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have the usual suite of brilliant talks about projects and ideas in the open hardware space by people who are experts in their field.&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
== Safety precautions ==&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;br /&gt;
&lt;br /&gt;
== More information ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[[OHMC2022|More info about OHMC2022]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1431</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1431"/>
		<updated>2021-12-02T10:37:24Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA &#039;&#039;&#039;on-line&#039;&#039;&#039; mini-conference and opening up our development efforts prior to the day of the mini-conference.  We aim to do better again this year, in part helped by building upon the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  Also, by reaching out to HackerSpaces / MakerSpaces and individuals who&#039;d like to be more closely involved in the process, especially around designing and building custom D.I.Y SAO hardware and firmware.&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee (TBA) to cover the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a belly-button reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also have the usual suite of brilliant talks about projects and ideas in the open hardware space by people who are experts in their field.&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
== Safety precautions ==&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1430</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1430"/>
		<updated>2021-12-02T10:32:32Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Additional images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA &#039;&#039;&#039;on-line&#039;&#039;&#039; mini-conference and opening up our development efforts prior to the day of the mini-conference.  We aim to do better again this year, in part helped by building upon the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  Also, by reaching out to HackerSpaces / MakerSpaces and individuals who&#039;d like to be more closely involved in the process, especially around designing and building custom D.I.Y SAO hardware and firmware.&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee to cover the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* four SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
== Safety precautions ==&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1429</id>
		<title>OHMC2022 Announcement</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022_Announcement&amp;diff=1429"/>
		<updated>2021-12-02T10:30:45Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022 Project announcement}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_render_front.jpg|300px]]  [[File:swagbadge_render_front_lcd.jpg|300px]]  [[File:rockling_render_front.jpg|420px]]&lt;br /&gt;
&lt;br /&gt;
[[File:ohmc2022_diagram.jpg|960px|SwagBadge2022 + Rockling + Party Button]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The OHMC2022 aims are to &lt;br /&gt;
# build upon last year&#039;s efforts, &lt;br /&gt;
# focus on Simple Add Ons (SAO), &lt;br /&gt;
# deliver our first OHMC FPGA project and&lt;br /&gt;
# align with [https://lca2022.linux.org.au LCA2022&#039;s] theme of community engagement.&lt;br /&gt;
&lt;br /&gt;
[[OHMC2021|OHMC2021]] was our first LCA &#039;&#039;&#039;on-line&#039;&#039;&#039; mini-conference and opening up our development efforts prior to the day of the mini-conference.  We aim to do better again this year, in part helped by building upon the 300 [[Swagbadge2021|SwagBadge 2021]] already out there.  Also, by reaching out to HackerSpaces / MakerSpaces and individuals who&#039;d like to be more closely involved in the process, especially around designing and building custom D.I.Y SAO hardware and firmware.&lt;br /&gt;
&lt;br /&gt;
The OHMC for 2022 will have a hardware kit posted out to participants in the workshop, for a fee to cover the cost of the boards and postage.&lt;br /&gt;
&lt;br /&gt;
What does the hardware kit look like? It&#039;s a Swagbadge again, now in a more penguin shaped form factor. It has:&lt;br /&gt;
* a LolinLite ESP32 microprocessor, giving you Wi-Fi and Bluetooth&lt;br /&gt;
* runs micropython (no special IDE required)&lt;br /&gt;
* four SAO connection points&lt;br /&gt;
* a single large LCD screen (a change from last year&#039;s double screens)&lt;br /&gt;
* two capacitive touch sliders&lt;br /&gt;
* a reset button (no more fumbling around to find the somewhat obscured location of last year)&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more: we&#039;re also aiming to supply the &amp;quot;Rockling&amp;quot;:&lt;br /&gt;
* a fish-shaped PCB SAO for the Tux Swagbadge to hold&lt;br /&gt;
* which has an FPGA on board&lt;br /&gt;
* and audio connectors to connect to a speaker/headphones&lt;br /&gt;
* and hopefully software to let it act as a Theremin&lt;br /&gt;
&lt;br /&gt;
== Building upon OHMC 2021 ==&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge_pcb_flat.png|330px]]  [[File:swagbadge_pcb_flat_back.png|300px]]&lt;br /&gt;
&lt;br /&gt;
We have some unfinished business with [[OHMC2021|OHMC 2021]] ... we didn&#039;t get to seriously build or help anyone else to design and build any Simple Add Ons (SAOs).&lt;br /&gt;
&lt;br /&gt;
== Additional images ==&lt;br /&gt;
[[File:rockling_render_back.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:rockling_pcb_flat.png|400px]]  [[File:rockling_pcb_flat_render.png|400px]]&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|SwagBadge2022 + Rockling SAO]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1428</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1428"/>
		<updated>2021-11-25T09:50:52Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project status -- Stay up-to-date -- About the OHMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhwconf Twitter @OpenHWConf] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
* [[Youbelong|A note on imposter syndrome]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1427</id>
		<title>Youbelong</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1427"/>
		<updated>2021-11-25T09:49:57Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:You belong}}&lt;br /&gt;
== A note on Imposter Syndrome ==&lt;br /&gt;
&lt;br /&gt;
The LCA hardware miniconf workshop is specifically designed to help people (like you) who&#039;ve never worked with hardware or electronics before and give them an idea of what is possible. But once you leave the supportive environment of the workshop, it&#039;s all too easy to lose confidence.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t! You&#039;re a hardware hacker now and nobody can take that away from you.&lt;br /&gt;
&lt;br /&gt;
The hackerspace community is incredibly welcoming of anyone who is keen to learn (that&#039;s you!) and happy to help foster the enjoyment of building and learning.&lt;br /&gt;
&lt;br /&gt;
Nobody is an expert on your first day, and the OHMC team want to ensure you can make the most out of your new skills and your hardware kit. The possibilities are endless and we are here to help you build out your dreams.&lt;br /&gt;
&lt;br /&gt;
Talk to us. We&#039;re here for you and always happy to help.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1426</id>
		<title>Youbelong</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1426"/>
		<updated>2021-11-25T09:49:31Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:You belong}}&lt;br /&gt;
&lt;br /&gt;
== A note on Imposter Syndrome ==&lt;br /&gt;
&lt;br /&gt;
The LCA hardware miniconf workshop is specifically designed to help people (like you) who&#039;ve never worked with hardware or electronics before and give them an idea of what is possible. But once you leave the supportive environment of the workshop, it&#039;s all too easy to lose confidence.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t! You&#039;re a hardware hacker now and nobody can take that away from you.&lt;br /&gt;
&lt;br /&gt;
The hackerspace community is incredibly welcoming of anyone who is keen to learn (that&#039;s you!) and happy to help foster the enjoyment of building and learning.&lt;br /&gt;
&lt;br /&gt;
Nobody is an expert on your first day, and the OHMC team want to ensure you can make the most out of your new skills and your hardware kit. The possibilities are endless and we are here to help you build out your dreams.&lt;br /&gt;
&lt;br /&gt;
Talk to us. We&#039;re here for you and always happy to help.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1425</id>
		<title>Youbelong</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Youbelong&amp;diff=1425"/>
		<updated>2021-11-25T09:45:44Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot; == A note on Imposter Syndrome ==  The LCA hardware miniconf workshop is specifically designed to help people (like you) who&amp;#039;ve never worked with hardware or electronics befo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== A note on Imposter Syndrome ==&lt;br /&gt;
&lt;br /&gt;
The LCA hardware miniconf workshop is specifically designed to help people (like you) who&#039;ve never worked with hardware or electronics before and give them an idea of what is possible. But once you leave the supportive environment of the workshop, it&#039;s all too easy to lose confidence.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t! You&#039;re a hardware hacker now and nobody can take that away from you.&lt;br /&gt;
&lt;br /&gt;
The hackerspace community is incredibly welcoming of anyone who is keen to learn (that&#039;s you!) and happy to help foster the enjoyment of building and learning.&lt;br /&gt;
&lt;br /&gt;
Nobody is an expert on your first day, and the OHMC team want to ensure you can make the most out of your new skills and your hardware kit. The possibilities are endless and we are here to help you build out your dreams.&lt;br /&gt;
&lt;br /&gt;
Talk to us. We&#039;re here for you and always happy to help.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1424</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1424"/>
		<updated>2021-11-25T09:20:50Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project announcements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhwconf Twitter @OpenHWConf] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHWConf Twitter @OpenHWConf]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1423</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1423"/>
		<updated>2021-11-25T09:19:21Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project status -- Stay up-to-date -- About the OHMC */  twitter handle update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhwconf Twitter @OpenHWConf] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_MC Twitter @OpenHardware_MC]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1422</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1422"/>
		<updated>2021-11-07T03:58:49Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_MC] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[OHMC2022_Swagbadge|Swagbadge 2022]]: What&#039;s different between Swagbadge 2021 and Swagbadge 2022?&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_MC Twitter @OpenHardware_MC]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1421</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1421"/>
		<updated>2021-11-07T03:55:46Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_MC] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide from 2021 if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge --&amp;gt;&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_MC Twitter @OpenHardware_MC]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1420</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1420"/>
		<updated>2021-11-07T02:24:19Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Project status -- Stay up-to-date -- About the OHMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC2022}}&lt;br /&gt;
&lt;br /&gt;
[[File:swagbadge2022_rockling.jpg|400px|right|SwagBadge2022 + Rockling SAO]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project status -- Stay up-to-date -- About the OHMC ==&lt;br /&gt;
&lt;br /&gt;
* [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&lt;br /&gt;
&lt;br /&gt;
* OHMC2022 talk submissions are closed, speakers will be contacted soon. &lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_MC] ... follow us for project notifications using hash tags: &#039;&#039;#ohmc2022, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* For the previous twelve years, the OHMC team has hosted the Open Hardware Mini Conference for the [https://linux.conf.au Linux Conference Australia].  Those projects are linked on the left-hand sidebar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2022 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What to do whilst waiting for OHMC2022 hardware ? ==&lt;br /&gt;
&lt;br /&gt;
This year&#039;s project will be backward compatible with [[Swagbadge2021|last year&#039;s SwagBadge]], so you may like to dust off your SwagBadge 2021 and get up-to-speed with [https://en.wikipedia.org/wiki/ESP32 ESP32] development using [http://micropython.org microPython].&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a SwagBadge from LCA2021, you can build your own [[Swagbadge2021_Dagbadge|DagBadge]] from scratch&lt;br /&gt;
&lt;br /&gt;
We will be offering an updated SwagBadge 2022, fully assembled and delivered prior to LCA2022 ... &#039;&#039;&#039;with a focus on the Simple Add On (SAO) devices&#039;&#039;&#039; and how to design and build your own.  So we recommend getting up to speed with the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO connector de-facto standard] (the name has been changed to be more family friendly !).  Note: We utilize the more recent 6-pin version (power, I2C and two GPIO pins).&lt;br /&gt;
&lt;br /&gt;
We will also be offering a SAO FPGA + Audio + Theremin that is significantly influenced by Tim Ansell&#039;s FOMU project, which has great [https://workshop.fomu.im/en/latest on-line workshop materials].&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Project announcements ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2021-09-12: [[OHMC2022_Announcement|OHMC2022 Project announcement and details]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2021-08-06: Open Hardware Mini Conference is accepted&#039;&#039;&#039; for LCA2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_MC Twitter @OpenHardware_MC]&lt;br /&gt;
&lt;br /&gt;
== OHMC2022 submission to LCA2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs ... and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1380</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1380"/>
		<updated>2021-08-12T10:30:25Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC for LCA2022: Welcome!}}&lt;br /&gt;
&lt;br /&gt;
== Status, About us, Contact us ==&lt;br /&gt;
* OHMC talk submissions are open. [https://linux.conf.au/programme/miniconfs/open-hardware/ Submit your talk proposals today]. Deadline: September 5 2021&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2021 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_mc]: Follow for project notifications.  HashTags: &#039;&#039;#ohmc22, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
We are looking to make the most out of [[Swagbadge2021|last year&#039;s Swagbadge]], with even more deliciousness in the form of a fabulous SAO (or two). We&#039;re looking at sound, we&#039;re looking at lights. We&#039;re looking at a DIY disco!&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Announcements ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-08-06: Open Hardware mini conference is accepted&#039;&#039;&#039; for LCA 2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_mc Twitter @OpenHardware_MC]&lt;br /&gt;
* Want to join in on the fun? You can build your own [[Swagbadge2021_Dagbadge|Dagbadge]]&lt;br /&gt;
&lt;br /&gt;
== About OHMC 2022 ==&lt;br /&gt;
&lt;br /&gt;
One of the drivers of the popularity of the Open Hardware community is easy access to inexpensive and capable microcontrollers and development boards such as the Arduino and ESP32.&lt;br /&gt;
&lt;br /&gt;
In 2022, for the first time at OHMC, we’re diving into the wonderful world of FPGAs… and fully embracing the LCA2022 theme of community.&lt;br /&gt;
&lt;br /&gt;
Not only do FPGAs open up new capabilities for your projects, but they also help bring Open Source further down the stack closer to the silicon. It is easier than ever to run Open Source software on an Open Source processor core (RISC-V) that you can hack yourself, and install directly onto an FPGA using an Open Source FPGA development tool chain.&lt;br /&gt;
&lt;br /&gt;
If you’ve never used an FPGA before, or don’t even know what it stands for, don’t worry. We’ll take you through the basics and get you started with a Simple Add-On (SAO) that can be used standalone or plugged into many different electronic conference badges. If you have an LCA2021 SwagBadge you can combine it with the LCA2022 SAO to build a musical project that will demonstrate the unique capabilities of FPGAs.&lt;br /&gt;
&lt;br /&gt;
We’ll also have an updated LCA2022 SwagBadge available in case you didn’t get one last year. There will be opportunities in the months leading up to LCA2022 for you to participate in online workshops and local community events to learn about skills such as soldering, PCB design (your own SAO) and developing applications for your SwagBadge / SAOs (both 2021 and 2022 variants).&lt;br /&gt;
&lt;br /&gt;
The mini-conference day will run in two distinct halves. The morning sessions will discuss the design of the LCA2022 FPGA SAO and SwagBadge applications, explaining how to use the hardware and firmware that runs on them. The afternoon sessions will be presentations about more general Open Hardware topics, with contributions by both LCA2022 attendees and the OHMC team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1379</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1379"/>
		<updated>2021-08-12T10:28:08Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC for LCA2022: Welcome!}}&lt;br /&gt;
&lt;br /&gt;
== Status, About us, Contact us ==&lt;br /&gt;
* OHMC talk submissions are open. [https://linux.conf.au/programme/miniconfs/open-hardware/ Submit your talk proposals today]. Deadline: September 5 2021&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2021 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_mc]: Follow for project notifications.  HashTags: &#039;&#039;#ohmc22, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
We are looking to make the most out of [[Swagbadge2021|last year&#039;s Swagbadge]], with even more deliciousness in the form of a fabulous SAO (or two). We&#039;re looking at sound, we&#039;re looking at lights. We&#039;re looking at a DIY disco!&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Announcements ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-08-06: Open Hardware mini conference is accepted&#039;&#039;&#039; for LCA 2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_mc Twitter @OpenHardware_MC]&lt;br /&gt;
* Want to join in on the fun? You can build your own [[Swagbadge2021_Dagbadge|Dagbadge]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1378</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1378"/>
		<updated>2021-08-09T10:00:14Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:OHMC for LCA2022: Welcome!}}&lt;br /&gt;
&lt;br /&gt;
== Status, About us, Contact us ==&lt;br /&gt;
&amp;lt;!-- * [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;[[SwagBadge2021 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
* [https://twitter.com/openhardware_mc Twitter @OpenHardware_mc]: Follow for project notifications.  HashTags: &#039;&#039;#ohmc22, #lca2022&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
We are looking to make the most out of [[Swagbadge2021|last year&#039;s Swagbadge]], with even more deliciousness in the form of a fabulous SAO (or two). We&#039;re looking at sound, we&#039;re looking at lights. We&#039;re looking at a DIY disco!&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]&lt;br /&gt;
&lt;br /&gt;
== Announcements ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-08-06: Open Hardware mini conference is accepted&#039;&#039;&#039; for LCA 2022.&lt;br /&gt;
* We&#039;ll be listening for questions and feedback sent to [https://twitter.com/OpenHardware_mc Twitter @OpenHardware_MC]&lt;br /&gt;
* Want to join in on the fun? You can build your own [[Swagbadge2021_Dagbadge|Dagbadge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- OHMC talk submissions: [https://linux.conf.au/programme/miniconfs/open-hardware/ Submit your talk proposals today]. Deadline is Dec 18th.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow along and join in with the OHMC team as we prepare, plan, design and build.  We&#039;ll be posting regular updates here on this Wiki.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1377</id>
		<title>OHMC2022</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=OHMC2022&amp;diff=1377"/>
		<updated>2021-08-05T10:34:12Z</updated>

		<summary type="html">&lt;p&gt;Nicola: Created page with &amp;quot;Nothing to see here.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nothing to see here.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_Newcomers&amp;diff=1359</id>
		<title>Swagbadge2021 Newcomers</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_Newcomers&amp;diff=1359"/>
		<updated>2021-02-05T01:46:23Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* All about SAOs: Simple Add Ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Swagbadge for newcomers to electronics =&lt;br /&gt;
&lt;br /&gt;
Welcome! 👋&lt;br /&gt;
&lt;br /&gt;
This guide is for everyone who likes the sound of what the swagbadge can do, or have an interest in learning about some hardware and electronics but just doesn&#039;t know where to start, or wants to learn as part of a community. We are here for you! This guide is intended to help you learn, through the development of the [[Swagbadge2021|Swagbadge]] or [[Swagbadge2021_Dagbadge|Dagbadge]]. It (will) have lots of pointers out to resources on the internet you can use for further reference and learning.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
* What is a Swagbadge or a Dagbadge?&lt;br /&gt;
* The components on the badge&lt;br /&gt;
* Some electronics fundamentals&lt;br /&gt;
* Software makes the hardware go&lt;br /&gt;
* The Aiko framework&lt;br /&gt;
* Applications&lt;br /&gt;
* All about SAO - Simple Add Ons&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== What is a Swagbadge or a Dagbadge? ==&lt;br /&gt;
&lt;br /&gt;
A swagbadge is the officially branded, fully pre-assembled electronic badge provided to early registrants to LCA 2021. Designed to work alongside the standard paper badge normally provided to participants, it provides a talking point, an access to hardware and electronics, and their corresponding software, and is extensible both now and into the future.&lt;br /&gt;
&lt;br /&gt;
For those who can&#039;t get hold of a swagbadge (you registered too late to LCA 2021, you&#039;re attending LCA but don&#039;t live in Australia, or you&#039;re just interested in the process and want to be part of our wider community), there&#039;s the dagbadge. This is a list of parts that you acquire yourself (without the LCA branding), designed to be readily obtained from your local or online electronic store. You need to assemble it yourself. &lt;br /&gt;
&lt;br /&gt;
== The components on the badge ==&lt;br /&gt;
&lt;br /&gt;
The swagbadge contains:&lt;br /&gt;
* a PCB&lt;br /&gt;
* a Lolin32 ESP32 microprocessor&lt;br /&gt;
* two OLED screens&lt;br /&gt;
* two switches&lt;br /&gt;
* two capacitive touch slider controls&lt;br /&gt;
* four SAO headers&lt;br /&gt;
&lt;br /&gt;
For the list of parts on a dagbadge, see [[Swagbadge2021_Dagbadge|Dagbadge BOM]], but it is essentially the same, but with a breadboard instead of a PCB.&lt;br /&gt;
&lt;br /&gt;
What do all those elements mean?&lt;br /&gt;
&lt;br /&gt;
Imagine that the badge is a creature.&lt;br /&gt;
* the &#039;&#039;&#039;Lolin32 ESP32 microprocessor&#039;&#039;&#039; is the brain. It is a tiny computer, designed for embedded/IoT applications, of a type called a [https://www.espressif.com/en/products/socs/esp32/overview ESP32], manufactured to the Lolin32 standard (first built by the WEMOS company but frequently copied). It has:&lt;br /&gt;
** Wifi&lt;br /&gt;
** Bluetooth&lt;br /&gt;
** 4Mb (?) of flash memory&lt;br /&gt;
** Low power consumption for long life when battery powered&lt;br /&gt;
** Powered by microUSB - USB, but is capable of handling an external battery if you know how to connect it.&lt;br /&gt;
* the &#039;&#039;&#039;PCB&#039;&#039;&#039; is a Printed Circuit Board. It is combination skeleton and nervous system. Like a skeleton, it holds the other parts in place. Like the nervous system, it contains circuitry printed on it to let the microprocessor (the brain) communicate with all its senses, and talk to other devices.&lt;br /&gt;
* the two &#039;&#039;&#039;OLED screens&#039;&#039;&#039; are like inverse eyes. They are tiny computer screens, supporting black and white text, pixel and lines display, at a resolution of 128x64 (?). We have provided two so you can use them as one super wide screen, or as two separate screens.&lt;br /&gt;
* the two &#039;&#039;&#039;switches&#039;&#039;&#039; are underneath the screens on the swagbadge. Push the screen and it pushes the switch. The software can read the hardware to detect which switch is being pressed, and whether it&#039;s a single press or a long press.&lt;br /&gt;
* the two &#039;&#039;&#039;capacitive touch slider controls&#039;&#039;&#039; are sensors. As you move your finger up and down the lines, the software can read the hardware to find out (roughly) where your finger is on which slider. They&#039;re called &amp;quot;capacitive&amp;quot; because that is the mechanism by which the component works: it uses the capacitance in the circuit, affected by your finger, to tell where you&#039;re touching. Your smartphone&#039;s screen operates via [https://www.allaboutcircuits.com/technical-articles/introduction-to-capacitive-touch-sensing/ capacitive touch.].&lt;br /&gt;
* the four &#039;&#039;&#039;SAO headers&#039;&#039;&#039; are Simple Add On headers, which let you extend the capability of your badge with other components and boards using the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO standard] - there&#039;ll be a dedicated Swagbadge SAO wiki page soon(tm).&lt;br /&gt;
&lt;br /&gt;
== Some electronics fundamentals ==&lt;br /&gt;
&lt;br /&gt;
* Extra pins on the board.&lt;br /&gt;
* Do not immerse in water/tea&lt;br /&gt;
* ... I&#039;m sure I had more to add here.&lt;br /&gt;
&lt;br /&gt;
== Software makes the hardware go ==&lt;br /&gt;
&lt;br /&gt;
The hardware on its own is inert. It doesn&#039;t do anything without something to read the sensors, or display information on the screen. So what drives the badge?&lt;br /&gt;
&lt;br /&gt;
* Operating system: the Swagbadge uses [http://micropython.org/ MicroPython], a special version of the Python programming language designed for use on small internet of things/embedded devices, just like the badge.&lt;br /&gt;
* A framework. This is Aiko for MicroPython, written by Andy Gelme of the Open Hardware team. It provides a whole bunch of convenience functions for writing to the screens, or reading the value of switches. It&#039;s also designed to make communicating to a badge over a network a lot easier by providing access to the badge&#039;s capabilities via sending simple messages to the badge via an MQTT server. We are using a dedicated MQTT server for the badges, based in Australia so it&#039;s nice and fast!&lt;br /&gt;
* Applications. Written in MicroPython, these are programs to make your badge do things! Several are provided, to demonstrate some capabilities to help you learn how to use the badge and copy as required to make your own code work.&lt;br /&gt;
&lt;br /&gt;
== The Aiko Framework ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== All about SAOs: Simple Add Ons ==&lt;br /&gt;
&lt;br /&gt;
The swagbadge came with several SAO protoboards. Our SAO prototyping boards come with standard sized holes in them to make it easier to mount components such as LEDs if you didn&#039;t have a custom SAO from Tindie or that you&#039;d built yourself, and they have labelling on them so you can see which holes are for power or ground or are connected to the GPIO pin (this being the pin that controls a component).&lt;br /&gt;
&lt;br /&gt;
Why use a protoboard instead of wiring things directly onto the badge?&lt;br /&gt;
* You can remove the board, if you want to reposition your SAO, or swap it for something else&lt;br /&gt;
* It&#039;s an easier base for adding multiple components&lt;br /&gt;
&lt;br /&gt;
=== Electronic circuits ===&lt;br /&gt;
&lt;br /&gt;
Itching to add some blinky lights to a SAO, whip out that soldering iron and get to work? Let&#039;s first talk about circuitry.&lt;br /&gt;
&lt;br /&gt;
In order for components to work, they need a power source (in our case, that&#039;s a 5 Volt DC feed off the badge, coming through the SAO headers and onto our protoboard), they need a ground (also on the board), and the component(s) sits between the power and the ground. But you can&#039;t just plug in any old component into any old power source. Things can go wrong:&lt;br /&gt;
* Too much power for a component can fry it and let out the [https://en.wikipedia.org/wiki/Magic_smoke magic smoke].&lt;br /&gt;
* Not enough power and your component just won&#039;t work. In an attempt to get enough power, it may even fry your badge&#039;s power source - if it&#039;s powered via USB to your laptop, this may mean doing Bad Things to your USB port or your laptop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Getting the power requirements right&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# work out what the power consumption requirements are for your components&lt;br /&gt;
# If it&#039;s more than what your power source provides, you&#039;d better get a bigger power source/battery and hook up the power to that, and not to the badge.&lt;br /&gt;
# If it&#039;s less than what your power source provides, you&#039;ll need some resistors to reduce the load going through your components.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;It&#039;s just maths&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law/all Ohm&#039;s Law] is our guide. V = I x R. Voltage (V) = Current in amps (I) x Resistance in ohms (R).&lt;br /&gt;
&lt;br /&gt;
We know our badge gives you 5V.&lt;br /&gt;
&lt;br /&gt;
You can determine the current requirements of your components by looking at their data sheets. Some will have a maximum current rating (you must stay below this!) and a recommended current rating (what you&#039;re aiming to meet). &lt;br /&gt;
&lt;br /&gt;
Quick example:&lt;br /&gt;
* Let&#039;s say you have an eThingy that has a recommended current rating of 5 milliamps.&lt;br /&gt;
* Voltage off the badge is 5V&lt;br /&gt;
* We use Ohm&#039;s law to calculate the resistance (R = V / I), in our case, V=5, I = 0.05. So R=  5 / 0.05 = 100&lt;br /&gt;
* We need to use a 100 ohm resistor.&lt;br /&gt;
&lt;br /&gt;
The resistor always goes between the power source and the component. (don&#039;t put it between component and ground: it&#039;s too late by then!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LEDs are special.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LEDs break Ohm&#039;s law, so we have to do a bit more to get the values right. For LEDs the important thing is the voltage drop across the LED. This can also be known as the forward voltage.&lt;br /&gt;
* It&#039;s still R = V / I, but allowing for how we calculate the voltage requirements for a led: R = (battery source voltage - LED voltage drop) / current&lt;br /&gt;
&lt;br /&gt;
Quick example:&lt;br /&gt;
* If you have a LED with a voltage drop/forward voltage of 2V, and current requirement of 20mA (milliamps)&lt;br /&gt;
* Voltage off the badge is 5V&lt;br /&gt;
* R = (5 - 2) / .02 = 150&lt;br /&gt;
* We need a 150 ohm resistor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More about resistors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Resistors come in certain set values. If you can&#039;t get the exact value you need, just use the next highest one (don&#039;t go lower, or your resistor won&#039;t do the job and you&#039;ll fry your electronics). You can join them together in series if you have to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Series vs parallel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Up until now, this tutorial has assumed you&#039;ve just been powering a single thing. But what if you want to do multiple? More lights are better lights, after all! There&#039;s two different ways to connect components together: in series, or in parallel.&lt;br /&gt;
; series: they&#039;re chained together, one after the other on a single loop from power, through the components and onto ground.&lt;br /&gt;
; parallel: there&#039;s multiple circuits, each one connected separately to the battery&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_Newcomers&amp;diff=1358</id>
		<title>Swagbadge2021 Newcomers</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_Newcomers&amp;diff=1358"/>
		<updated>2021-02-04T07:24:25Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* All about SAOs: Simple Add Ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Swagbadge for newcomers to electronics =&lt;br /&gt;
&lt;br /&gt;
Welcome! 👋&lt;br /&gt;
&lt;br /&gt;
This guide is for everyone who likes the sound of what the swagbadge can do, or have an interest in learning about some hardware and electronics but just doesn&#039;t know where to start, or wants to learn as part of a community. We are here for you! This guide is intended to help you learn, through the development of the [[Swagbadge2021|Swagbadge]] or [[Swagbadge2021_Dagbadge|Dagbadge]]. It (will) have lots of pointers out to resources on the internet you can use for further reference and learning.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
* What is a Swagbadge or a Dagbadge?&lt;br /&gt;
* The components on the badge&lt;br /&gt;
* Some electronics fundamentals&lt;br /&gt;
* Software makes the hardware go&lt;br /&gt;
* The Aiko framework&lt;br /&gt;
* Applications&lt;br /&gt;
* All about SAO - Simple Add Ons&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== What is a Swagbadge or a Dagbadge? ==&lt;br /&gt;
&lt;br /&gt;
A swagbadge is the officially branded, fully pre-assembled electronic badge provided to early registrants to LCA 2021. Designed to work alongside the standard paper badge normally provided to participants, it provides a talking point, an access to hardware and electronics, and their corresponding software, and is extensible both now and into the future.&lt;br /&gt;
&lt;br /&gt;
For those who can&#039;t get hold of a swagbadge (you registered too late to LCA 2021, you&#039;re attending LCA but don&#039;t live in Australia, or you&#039;re just interested in the process and want to be part of our wider community), there&#039;s the dagbadge. This is a list of parts that you acquire yourself (without the LCA branding), designed to be readily obtained from your local or online electronic store. You need to assemble it yourself. &lt;br /&gt;
&lt;br /&gt;
== The components on the badge ==&lt;br /&gt;
&lt;br /&gt;
The swagbadge contains:&lt;br /&gt;
* a PCB&lt;br /&gt;
* a Lolin32 ESP32 microprocessor&lt;br /&gt;
* two OLED screens&lt;br /&gt;
* two switches&lt;br /&gt;
* two capacitive touch slider controls&lt;br /&gt;
* four SAO headers&lt;br /&gt;
&lt;br /&gt;
For the list of parts on a dagbadge, see [[Swagbadge2021_Dagbadge|Dagbadge BOM]], but it is essentially the same, but with a breadboard instead of a PCB.&lt;br /&gt;
&lt;br /&gt;
What do all those elements mean?&lt;br /&gt;
&lt;br /&gt;
Imagine that the badge is a creature.&lt;br /&gt;
* the &#039;&#039;&#039;Lolin32 ESP32 microprocessor&#039;&#039;&#039; is the brain. It is a tiny computer, designed for embedded/IoT applications, of a type called a [https://www.espressif.com/en/products/socs/esp32/overview ESP32], manufactured to the Lolin32 standard (first built by the WEMOS company but frequently copied). It has:&lt;br /&gt;
** Wifi&lt;br /&gt;
** Bluetooth&lt;br /&gt;
** 4Mb (?) of flash memory&lt;br /&gt;
** Low power consumption for long life when battery powered&lt;br /&gt;
** Powered by microUSB - USB, but is capable of handling an external battery if you know how to connect it.&lt;br /&gt;
* the &#039;&#039;&#039;PCB&#039;&#039;&#039; is a Printed Circuit Board. It is combination skeleton and nervous system. Like a skeleton, it holds the other parts in place. Like the nervous system, it contains circuitry printed on it to let the microprocessor (the brain) communicate with all its senses, and talk to other devices.&lt;br /&gt;
* the two &#039;&#039;&#039;OLED screens&#039;&#039;&#039; are like inverse eyes. They are tiny computer screens, supporting black and white text, pixel and lines display, at a resolution of 128x64 (?). We have provided two so you can use them as one super wide screen, or as two separate screens.&lt;br /&gt;
* the two &#039;&#039;&#039;switches&#039;&#039;&#039; are underneath the screens on the swagbadge. Push the screen and it pushes the switch. The software can read the hardware to detect which switch is being pressed, and whether it&#039;s a single press or a long press.&lt;br /&gt;
* the two &#039;&#039;&#039;capacitive touch slider controls&#039;&#039;&#039; are sensors. As you move your finger up and down the lines, the software can read the hardware to find out (roughly) where your finger is on which slider. They&#039;re called &amp;quot;capacitive&amp;quot; because that is the mechanism by which the component works: it uses the capacitance in the circuit, affected by your finger, to tell where you&#039;re touching. Your smartphone&#039;s screen operates via [https://www.allaboutcircuits.com/technical-articles/introduction-to-capacitive-touch-sensing/ capacitive touch.].&lt;br /&gt;
* the four &#039;&#039;&#039;SAO headers&#039;&#039;&#039; are Simple Add On headers, which let you extend the capability of your badge with other components and boards using the [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO standard] - there&#039;ll be a dedicated Swagbadge SAO wiki page soon(tm).&lt;br /&gt;
&lt;br /&gt;
== Some electronics fundamentals ==&lt;br /&gt;
&lt;br /&gt;
* Extra pins on the board.&lt;br /&gt;
* Do not immerse in water/tea&lt;br /&gt;
* ... I&#039;m sure I had more to add here.&lt;br /&gt;
&lt;br /&gt;
== Software makes the hardware go ==&lt;br /&gt;
&lt;br /&gt;
The hardware on its own is inert. It doesn&#039;t do anything without something to read the sensors, or display information on the screen. So what drives the badge?&lt;br /&gt;
&lt;br /&gt;
* Operating system: the Swagbadge uses [http://micropython.org/ MicroPython], a special version of the Python programming language designed for use on small internet of things/embedded devices, just like the badge.&lt;br /&gt;
* A framework. This is Aiko for MicroPython, written by Andy Gelme of the Open Hardware team. It provides a whole bunch of convenience functions for writing to the screens, or reading the value of switches. It&#039;s also designed to make communicating to a badge over a network a lot easier by providing access to the badge&#039;s capabilities via sending simple messages to the badge via an MQTT server. We are using a dedicated MQTT server for the badges, based in Australia so it&#039;s nice and fast!&lt;br /&gt;
* Applications. Written in MicroPython, these are programs to make your badge do things! Several are provided, to demonstrate some capabilities to help you learn how to use the badge and copy as required to make your own code work.&lt;br /&gt;
&lt;br /&gt;
== The Aiko Framework ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== All about SAOs: Simple Add Ons ==&lt;br /&gt;
&lt;br /&gt;
The swagbadge came with several SAO protoboards. Our SAO prototyping boards come with standard sized holes in them to make it easier to mount components such as LEDs if you didn&#039;t have a custom SAO from Tindie or that you&#039;d built yourself, and they have labelling on them so you can see which holes are for power or ground or are connected to the GPIO pin (this being the pin that controls a component).&lt;br /&gt;
&lt;br /&gt;
Why use a protoboard instead of wiring things directly onto the badge?&lt;br /&gt;
* You can remove the board, if you want to reposition your SAO, or swap it for something else&lt;br /&gt;
* It&#039;s an easier base for adding multiple components&lt;br /&gt;
&lt;br /&gt;
=== Electronic circuits ===&lt;br /&gt;
&lt;br /&gt;
Itching to add some blinky lights to a SAO, whip out that soldering iron and get to work? Let&#039;s first talk about circuitry.&lt;br /&gt;
&lt;br /&gt;
In order for components to work, they need a power source (in our case, that&#039;s a 3.3 volt DC feed off the badge, coming through the SAO headers and onto our protoboard), they need a ground (also on the board), and the component(s) sits between the power and the ground. But you can&#039;t just plug in any old component into any old power source. Things can go wrong:&lt;br /&gt;
* Too much power for a component can fry it and let out the [https://en.wikipedia.org/wiki/Magic_smoke magic smoke].&lt;br /&gt;
* Not enough power and your component just won&#039;t work. In an attempt to get enough power, it may even fry your badge&#039;s power source - if it&#039;s powered via USB to your laptop, this may mean doing Bad Things to your USB port or your laptop.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=SwagBadge2021&amp;diff=1356</id>
		<title>SwagBadge2021</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=SwagBadge2021&amp;diff=1356"/>
		<updated>2021-01-28T22:24:14Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Swagbadge for LCA2021: Welcome! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Swagbadge for LCA2021: Welcome!}}&lt;br /&gt;
&lt;br /&gt;
== Status, About us, Contact us ==&lt;br /&gt;
* [https://spectrum.chat/lca2021-swagbadge Swagbadge/Dagbadge spectrum forums]: talk to the team, get help!&lt;br /&gt;
* &#039;&#039;&#039;[[SwagBadge2021 Status, blog and timeline]]: Read for regular project updates and history&#039;&#039;&#039;&lt;br /&gt;
* [https://twitter.com/swagbadge2021 Twitter @swagbadge]: Follow for project notifications.  HashTags: &#039;&#039;#swagbadge, #lca2021&#039;&#039;&lt;br /&gt;
* [https://diyodemag.com/columns/swagbadge_dagbadge_badge_ohmc_linux_conference DIYODE magazine issue 41, December 2020 article] on the Swagbadge&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New to electronics or to the badge?&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_Newcomers|Newcomers guide]]: Read our guide if you haven&#039;t done much hardware before and need more fundamentals before diving in&lt;br /&gt;
* [[Swagbadge2021_GettingStarted|Getting started guide: Swagbadge]]: Your Swagbadge has arrived. What next?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ready to build your own applications and hardware&#039;&#039;&#039;&lt;br /&gt;
* [[Swagbadge2021_SoftwareDev|SoftwareDev]]: Badge Software Development&lt;br /&gt;
* [[Swagbadge2021_MQTT|MQTT]]: Talking via MQTT&lt;br /&gt;
* [[Swagbadge2021_SAO|SAO development]]&lt;br /&gt;
* [[Swagbadge2021_Dagbadge|Dagbadge]]: build your own badge&lt;br /&gt;
* [[Swagbadge2021_community|Swagbadge and Dagbadge community]]: See what others have made!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Need more help?&#039;&#039;&#039;&lt;br /&gt;
* [https://spectrum.chat/lca2021-swagbadge SwagBadge Spectrum chat]: Chat system where the SwagBadge team hang out to help you with your badge&lt;br /&gt;
* [[SwagBadge2021 FAQ]]: Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: #swagbadge hardware]&lt;br /&gt;
* [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython]: Not yet updated for #swagbadge&lt;br /&gt;
&lt;br /&gt;
== Safety precautions we have provided ==&lt;br /&gt;
&lt;br /&gt;
* When using any hardware ordered off the internet, you can&#039;t be quite certain what software might be present on it. Before shipping these badges to you, we reflashed a fresh copy of MicroPython onto the Lolin32.&lt;br /&gt;
* The framework running on the badge is Aiko, which is open source.&lt;br /&gt;
* The software on the badge is available on the CCHS repository, also all open source.&lt;br /&gt;
* The badges are designed to communicate over MQTT - a lightweight standard for messaging on IoT devices, but we are aware of privacy considerations: you don&#039;t want anybody able to control your badge from afar. The swagbadge protocol provides support for encrypted messages.&lt;br /&gt;
&lt;br /&gt;
== Announcements ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Today (2020-10-04), we are publicly announcing the [https://lca2021.linux.org.au LCA2021] #swagbadge project&#039;&#039;&#039; and beginning the process of opening up our hardware and software development processes.  The next couple of weeks will be a bit of a spectator sport whilst we put in place mechanisms for technical collaboration and contributions.  We warmly welcome you to join in, get an early start on LCA2021 and enjoy the ride !  &#039;&#039;&#039;We&#039;ll be listening for questions and feedback sent to [https://twitter.com/swagbadge2021 Twitter @swagbadge]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: Whilst this project is supported by [https://lca2021.linux.org.au LCA2021], the OHMC team are not an official part of the LCA2021 organizing committee.  Of course, we&#039;ll be in close communication with them.  Also, this project will be covered by a [https://lca2021.linux.org.au/attend/code-of-conduct Code Of Conduct] (perhaps with some hardware hacking caveats).  The OHMC team supports and encourages inclusion and diversity in hardware / software hacking, please help us do better !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Swag badge render 2020-09-30.jpg|360px|LCA2021 swag badge 3D render 2020-09-30]]  Recent 3D render 2020-09-30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A limited number of &#039;&#039;&#039;LCA2021 Swag Badge&#039;&#039;&#039; electronic badges will be produced for the [https://lca2021.linux.org.au on-line LCA2021] conference, which will be distributed to conference attendees.  The LCA2021 Swag Badge is being specially developed and tailored for the conference.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Note 0: This is just our current understanding of how the LCA2021 #swagbadge will be made available ... and is subject to change by LCA2021 organizing committee&#039;&#039;&lt;br /&gt;
* &#039;&#039;Note 1: The #swagbadge will be only available to Australian participants, due to the cost and delay of shipping internationally&#039;&#039;&lt;br /&gt;
* &#039;&#039;Note 2: If you are outside of Australia or miss out on a #swagbadge, then you might want to seriously consider acquiring a [[Swagbadge2021_Dagbadge|Dagbadge]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;Note 3: The Open Hardware Miniconf is ON! [https://linux.conf.au/programme/miniconfs/open-hardware/ Submit your talk proposals today]. Deadline is Dec 18th.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No ordinary conference badge, this one is full of extensible, open hardware, ready to be loaded up with whatever software and custom hardware add-ons takes your fancy !&lt;br /&gt;
&lt;br /&gt;
The Open Hardware Mini-Conference (OHMC) team are putting together a badge that will be:&lt;br /&gt;
&lt;br /&gt;
* Approachable for newcomers, e.g runs Python and doesn&#039;t require any special IDE (for embedded device development)&lt;br /&gt;
* Custom-designed, super slick PCB&lt;br /&gt;
* Powered by an ESP32 which gives you Wi-Fi and Bluetooth connectivity&lt;br /&gt;
* Not one, but two delightful OLED screens &lt;br /&gt;
* ... which double as pressable buttons&lt;br /&gt;
* Ready for development with the latest [http://micropython.org microPython] installed&lt;br /&gt;
* Supported by an open-sourced embedded network framework, the [https://github.com/geekscape/aiko_engine_mp Aiko Engine for microPython]&lt;br /&gt;
* With a number of [[Swagbadge2021_SAO|SAO connectors]] so you can extend and add on your own hardware components&lt;br /&gt;
&lt;br /&gt;
We aim to post the #swagbadges prior to Christmas so they will be available before [https://lca2021.linux.org.au on-line LCA2021] begins.&lt;br /&gt;
&lt;br /&gt;
But wait, there&#039;s more !  In the spirit of LCA, we want the capabilities of the badge to be truly open.  We&#039;ll be following up with more information about how you can join in to build out ideas for doing wonderful, magnificent, incredible... stuff ... &#039;&#039;&#039;&amp;lt;your idea here&amp;gt;&#039;&#039;&#039; ... using the [[Swagbadge2021_SAO|SAO connectors]]. &lt;br /&gt;
&lt;br /&gt;
Follow along and join in with the OHMC team as we prepare, plan, design and build your badges.  We&#039;ll be posting regular updates here on this Wiki.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Swag badge mechanical 2020-09-30.jpg|360px|LCA2021 swag badge mechanical layout 2020-09-30]]  Mechanical layout 2020-09-30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Swagbadge2021 Backstory]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Main_Page&amp;diff=1355</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Main_Page&amp;diff=1355"/>
		<updated>2021-01-28T22:21:36Z</updated>

		<summary type="html">&lt;p&gt;Nicola: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Open Hardware Miniconf}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update 2020-10-04: For [https://lca2021.linux.org.au LCA2021], the OHMC team finally created a conference badge, called the &amp;quot;[[Swagbadge2021|Swag Badge]]&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This project was developed in the open: encouraging collaboration and contributions by the LCA2021 attendees.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The [[OHMC_2020|Open Hardware Miniconf]] is an event that runs as a specialist stream within the [http://linux.conf.au/ linux.conf.au] conference. It gives participants an opportunity to learn basic hardware skills such as soldering, by assembling their own electronic project, and then the afternoon is filled with interesting talks about various projects and techniques related to the morning project and to open hardware in general.&lt;br /&gt;
&lt;br /&gt;
The [[OHMC_2020|Open Hardware Miniconf]] began as the Arduino Miniconf in Wellington NZ in 2010 and has run every year since. Although Arduino is still a powerful and popular tool for learning about microcontroller development, the event has now grown in scope to cover broader Open Hardware topics including non-Arduino projects. In 2015, it took on its new identity as the Open Hardware Miniconf to reflect this broader interest.&lt;br /&gt;
&lt;br /&gt;
To give you some idea what to expect, this is the hardware assembly session at the LCA2017 Open Hardware Mini-Conference:&lt;br /&gt;
&lt;br /&gt;
[[File:OHMC2017a.jpg]]&lt;br /&gt;
&lt;br /&gt;
And before that the LCA2016 Open Hardware Mini-Conference:&lt;br /&gt;
&lt;br /&gt;
[[File:OHMC2016a.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Photo by [https://www.flickr.com/photos/geekscape Andy Gelme], [http://creativecommons.org/licenses/by/2.0/deed.en CC2.0])&lt;br /&gt;
&lt;br /&gt;
After the assembly session is over the room is cleaned up a bit and the talks begin. It&#039;s a fun and educational event!&lt;br /&gt;
&lt;br /&gt;
Note: To attend you must first register for the main conference, which provides the venue. The  [[OHMC_2021|Open Hardware Miniconf]] is part of LCA as a specialist stream for conference attendees: it&#039;s not a stand-alone event. See [http://linux.conf.au/ linux.conf.au] for more information.&lt;br /&gt;
&lt;br /&gt;
== Registration And Cost ==&lt;br /&gt;
As there is always a hardware build as part of the Open Hardware Miniconf, there is a registration form that needs to be completed, and additional cost for the kit.&lt;br /&gt;
&lt;br /&gt;
As the OHMC is a linux.conf.au miniconference, attendance is free for linux.conf.au delegates, but if you wish to participate in the morning hardware assembly tutorial you will need to pre-register and purchase a kit. Space is limited so get in fast!&lt;br /&gt;
&lt;br /&gt;
If you just want to come along and watch or attend the talks, you don&#039;t need to do anything. If you wish to participate in the hardware assembly tutorial, please submit the registration form.&lt;br /&gt;
&lt;br /&gt;
See [[OHMC_2021|Open Hardware Miniconf 2021]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[File:OHMC2016b.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
(Photo by [https://www.flickr.com/photos/geekscape Andy Gelme], [http://creativecommons.org/licenses/by/2.0/deed.en CC2.0])&lt;br /&gt;
&lt;br /&gt;
== Previous Events ==&lt;br /&gt;
&lt;br /&gt;
For historical reference:&lt;br /&gt;
&lt;br /&gt;
* [[Swagbadge2021|LCA2021 conference swag badge (virtually everywhere, Planet Earth)]]&lt;br /&gt;
* [[OHMC2020|Open Hardware Miniconf 2020 (Gold Coast, Australia)]]&lt;br /&gt;
* [[OHMC2019|Open Hardware Miniconf 2019 (Christchurch, New Zealand)]]&lt;br /&gt;
* [[OHMC2018|Open Hardware Miniconf 2018 (Sydney, Australia)]]&lt;br /&gt;
* [[OHC2017|Open Hardware Miniconf 2017 (Hobart, Australia)]]&lt;br /&gt;
* [[OHC2016|Open Hardware Miniconf 2016 (Geelong, Australia)]]&lt;br /&gt;
* [[OHC2015|Open Hardware Miniconf 2015 (Auckland, New Zealand)]]&lt;br /&gt;
* [[AMC2014|Arduino Miniconf 2014 (Perth, Australia)]]&lt;br /&gt;
* [[AMC2013|Arduino Miniconf 2013 (Canberra, Australia)]]&lt;br /&gt;
* [[AMC2012|Arduino Miniconf 2012 (Ballarat, Australia)]]&lt;br /&gt;
* [[AMC2011|Arduino Miniconf 2011 (Brisbane, Australia)]]&lt;br /&gt;
* [[AMC2010|Arduino Miniconf 2010 (Wellington, New Zealand)]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=SwagBadge2021_Status,_blog_and_timeline&amp;diff=1354</id>
		<title>SwagBadge2021 Status, blog and timeline</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=SwagBadge2021_Status,_blog_and_timeline&amp;diff=1354"/>
		<updated>2021-01-28T11:16:00Z</updated>

		<summary type="html">&lt;p&gt;Nicola: LCA is done. Summary.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status: Week of 2021-01-25. LCA2021 complete ===&lt;br /&gt;
&lt;br /&gt;
Wow. What a conference! First of all we&#039;d like to thank the LCA organisers and Linux Australia for sponsoring the Swagbadge, and to you, our Swagbadge friends for enthusiastically leaping into making use of the badge. &lt;br /&gt;
&lt;br /&gt;
Some stats, because everyone likes numbers:&lt;br /&gt;
* 4 guest speakers at the OHMC, talking open hardware, makerspace community, LEDs and hugs.&lt;br /&gt;
* 300+ hardware badges made and shipped around Australia (and one to Limor Fried of AdaFruit) (contrast with our usual 30-50 item projects)&lt;br /&gt;
* 11 active forks with 30+ pull requests on Aiko for IoT on MicroPython / ESP32&lt;br /&gt;
* (All) 8 states and territories of Australia have had badges sending messages to our MQTT server, plus the Bay Area, San Francisco&lt;br /&gt;
* 1000s of words of documentation produced: This wiki, the getting started guide, and the software/hardware development guide&lt;br /&gt;
* 1 keynote mentioning the Swagbadge: in Limor Fried&#039;s LCA2021 keynote&lt;br /&gt;
* 15+ [[Swagbadge2021_community|hardware and software hacks]], just over the weekend of LCA. Notable projects:&lt;br /&gt;
** Conference screencast video sent live to the badge&lt;br /&gt;
** MyCroft voice assistant interaction with the badge&lt;br /&gt;
* Community engagement high, preceding, during and following the conference&lt;br /&gt;
** Twitter: [https://twitter.com/swagbadge2021 @swagbadge2021] … quickest way to see some cool hacks, 150 tweets, 141 followers, average 2.5 posts per day&lt;br /&gt;
** 54 members on the community development forum for on-going efforts, [https://spectrum.chat/lca2021-swagbadge?tab=posts Spectrum]&lt;br /&gt;
** Virtual BoF enabled all conference, with OHMC team providing video and chat based technical support, troubleshooting and enthusiasm on-demand all weekend&lt;br /&gt;
* Public outreach beyond LCA&lt;br /&gt;
** Published in [https://diyodemag.com/columns/swagbadge_dagbadge_badge_ohmc_linux_conference DIYODE magazine issue 41], December 2020 article&lt;br /&gt;
** Michelle Manners social media influencer Twitch video unboxing (20 minutes in)&lt;br /&gt;
** Jon Oxer’s SuperHouse YouTube live stream (discussed over several sessions)&lt;br /&gt;
* 4 Plans plotted&lt;br /&gt;
** Next 3, 6, 9 and 12 month milestones mapped out for Aiko, applications, SAO development, community engagement and possibly even OHMC 2022.&lt;br /&gt;
* 1 excellent doggo mascot extensively hugged&lt;br /&gt;
* 20+ ideas declared out of scope as we ran out of time to complete all our wild and crazy schemes&lt;br /&gt;
&lt;br /&gt;
Thank you all for a wonderful weekend at Linux Conf. See you on Spectrum, and keep an eye out for the next revision of the firmware (2-3 months away) and maybe an application or two to share in the meanwhile. Keep your applications and ideas coming: we&#039;re always happy to help you turn your dreams into reality and we enjoy seeing what you&#039;ve done with your hardware.&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2021-01-18. ONE WEEK TO GO. DO NOT PANIC. OK, PANIC. ===&lt;br /&gt;
&lt;br /&gt;
We are one week out! The team is a carefully controlled frenzy of last minute preparation. &lt;br /&gt;
&lt;br /&gt;
* Jon has sent out more badges to participants. Hopefully they&#039;ll arrive before the conference, but if not, attendees will be well educated after the conf to make use of them.&lt;br /&gt;
* We hung out on MishManner&#039;s livestream unboxing the Swagbadge. She&#039;s MCing LCA, so it was delightful to see her reaction to the badge. Missed it? [https://www.twitch.tv/videos/879396212?filter=archives&amp;amp;sort=time Catch the replay!]&lt;br /&gt;
* Andy has been feverishly updating Aiko to add the remaining hardware support, test the upgrade process further, get communications library sorted and more. &lt;br /&gt;
* Working out who was presenting on which topics and write our presentations (nothing says prepared like a last minute slide deck, right?)&lt;br /&gt;
* Completing our tech checks with the A/V team to make sure our stream quality will be gold star standard (fortunately Jon is already a pro with his [https://www.youtube.com/user/superhousetv SuperhouseTV channel])&lt;br /&gt;
* Write more docs. You can&#039;t ever have enough docs.&lt;br /&gt;
* Hang out with people on the Spectrum chat forums, providing support and enthusiasm.&lt;br /&gt;
* Paring down our hopes and dreams to things we can feasibly do before Friday.&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2021-01-04 ===&lt;br /&gt;
&lt;br /&gt;
Welcome to 2021. We are officially in the future! Thank you to everyone who submitted proposals for the open hardware miniconf. Acceptances are going out shortly!&lt;br /&gt;
&lt;br /&gt;
The team had some much needed downtime over the festive period and are now spinning up again as we are just 3 weeks away from LCA. Mind you, down time just means we go slower, not stopped. Since our last update you&#039;ll notice we now have:&lt;br /&gt;
* a way to contact us easily, and share knowledge with the wider badge community via the [https://spectrum.chat/lca2021-swagbadge Spectrum boards] on github.&lt;br /&gt;
* lots more documentation flowing into the wiki to make those first steps smoother (we now have info on [[Swagbadge2021_GettingStarted#Running_pre-installed_applications|how to swap applications]], and the start of the [[Swagbadge2021_SoftwareDev|software development guide]])&lt;br /&gt;
* hundreds of badges shipped out to participants&lt;br /&gt;
* 10% more hype&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the team behind the Swagbadge:&lt;br /&gt;
&lt;br /&gt;
; Jon Oxer : winner of the Rusty Wrench award in 2020 for services to the community, chief protagonist of OHMC since the dawn of time, master of the pick &#039;n place machine. He personally soldered many of the OLEDS and microcontrollers. He built a testing rig so we could verify each badge... and then tested every single one. He&#039;s also been our central logistics point, assembling everyone&#039;s package with badge and SAO sets and lanyards and stickers oh my, printing out addressing labels, working with his local post office to get every package registered and processed. The open hardware wiki is hosted on his servers. &lt;br /&gt;
; Andy Gelme : rabble rouser, team stirrer and loyal minion to Astra 🐩 (everyone&#039;s favourite OHMC mascot). Full of ideas and visions for the future, Andy is the software maven, coming up with the architecture and producing the firmware so we&#039;re not all trying to build on base metal. He&#039;s driven parts around Melbourne to help split up the work of flashing microcontrollers and soldering headers. He&#039;s hosting the MQTT server the badges use. If you&#039;re after advice, you&#039;ll find him very active on Spectrum, enthusiastically sharing his wisdom. He&#039;s putting in all the hours to help us deliver a good experience to you out of the box and for years to come. &lt;br /&gt;
; Nicola Nye : responsible for wild and unceasing flailing enthusiasm, comms, docs and our primary crash test dummy. She&#039;s a one-woman cheer army, sharing memes on twitter, using her experience as a newcomer to ensure that the documentation is friendly and not intimidating. She provides feedback to the rest of the team on the kind of problems that people might face when working with the hardware, particularly since we can&#039;t do face to face workshops this year. You&#039;ll find some of her code demonstrating some ideas on using the badge to help people get started. &lt;br /&gt;
; John Spencer : electricity at his fingertips, the wiring embedded into the badge is his design, ensuring that all the parts are connected how they should be, mastering the constraints of placement both for components and for other limitations like having space for a lanyard hole! He soldered and snipped a bunch of oleds and microcontrollers and headers. &lt;br /&gt;
; Andrew Nielsen : the king of beautimous design. He&#039;s the reason we have the delightful tux SAO, the swagman with his swagbadge on the back of the badge board and the capacitive touch sliders. &lt;br /&gt;
; and a cast of many more : each year&#039;s OHMC stands on the shoulders of the ones in the past, with many OHMC alumni directly or indirectly adding their experience to the current year.&lt;br /&gt;
&lt;br /&gt;
We wouldn&#039;t be here without every single one of their experience, passion, time and commitment.&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2020-12-07 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you&#039;d like to present at the LCA2021 Open Hardware MiniConference, [https://linux.conf.au/programme/miniconfs/open-hardware please make a submission].&#039;&#039;&#039;  We welcome a range of topics and skill levels (newcomer to advanced).  &#039;&#039;&#039;Submissions close on 2020-12-18.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:badgearmy.jpg|400px|right|border|Over 200 of the badge army are ready to awaken]] Andy has spent this week buried in code, building up some software to test the badges (we don&#039;t want to send out any duds!), along with a robust firmware kit that &lt;br /&gt;
* Helps you configure your badge for your local wifi when it first arrives&lt;br /&gt;
* Knows how to auto-upgrade itself by querying an MQTT server for information on the latest version and how to get from its version to the latest.&lt;br /&gt;
* Can do the essentials.&lt;br /&gt;
&lt;br /&gt;
Jon built a testing rig where he&#039;s using one badge to test another badge. Testing all the pins on all the badges by hand would be an epic task, so the testing rig has saved hours of pain and suffering. Check out his SuperhouseTV video on [https://www.youtube.com/watch?v=4QGZMBXMk7g all about testing the badge]!&lt;br /&gt;
&lt;br /&gt;
Nicola has been putting together some example code so anyone who likes extending the hardware with software can learn how to talk to the components onboard.&lt;br /&gt;
&lt;br /&gt;
We sent an early access kit to Steph Piper of [https://www.elkei.com.au/ Elkei Education] to play with and it wasn&#039;t long before she was up and running and Nicola had sent her messages of joy and boop boopiness to her badge over MQTT.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be posting the first batch out next week to ensure they arrive in time for LCA 2021 at the end of January, given general posting delays with Covid restrictions, plus Christmas slowdowns. If you haven&#039;t [https://linux.conf.au/ signed up for LCA], now&#039;s the time to do it!&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2020-11-30 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you&#039;d like to present at the LCA2021 Open Hardware MiniConference, [https://linux.conf.au/programme/miniconfs/open-hardware please make a submission].&#039;&#039;&#039;  We&#039;re aiming to address a range of topics and skill levels (newcomer to advanced).  &#039;&#039;&#039;Submissions close on 2020-12-18.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:diyodecover.jpg|240px|right|Cover of Diyode Magazine Issue 41: December 2020]] We&#039;re very excited to have [https://diyodemag.com/columns/swagbadge_dagbadge_badge_ohmc_linux_conference our article] included in the December 2020 issue of [https://diyodemag.com Diyode Magazine]. Australia&#039;s magazine for makers, hardware hackers and electronic enthusiasts, we&#039;re delighted to see Swagbadge in there alongside other incredible projects ([https://diyodemag.com/features/arduino_mega_walking_traffic_crossing_lights_project see page 51]). We&#039;re hoping it&#039;ll bring more people to LCA, to the OHMC and get them excited about open hardware in general. Maybe it&#039;ll help increase memberships at your local HackerSpace too !  The article provides a reasonable overview of the project with some background and some technical details we haven&#039;t covered here yet ... so, worth a read.&lt;br /&gt;
&lt;br /&gt;
There was even more excitement with the [https://lca2021.linux.org.au/news/keynote-limor-fried announcement of Limor Fried as an LCA2021 keynote speaker] !&lt;br /&gt;
&lt;br /&gt;
On the badge front, the hardware is nearly all ready. Screens, switches and microcontrollers have been attached to 300 boards, and the excess headers trimmed off. We&#039;ll be gathering them together in one place soon, so we can flash the latest firmware and test that all the hardware works as expected by hooking each and every one up to a test rig.&lt;br /&gt;
&lt;br /&gt;
Snipping off so many excess pin lengths results in a lot of blisters (Thank you Andrew and John for your sacrifice!): [[File:Pins.jpg|240px|A workbench covered with hundreds of tiny metal pins: excess length that has been snipped off by hand]]&lt;br /&gt;
&lt;br /&gt;
This week sees us push the firmware to be a Minimum Viable Release, so that everyone&#039;s initial Out Of The Box experience is good. So this means we need to:&lt;br /&gt;
* Make it easy for everyone to connect their SwagBadge to their Wi-Fi router&lt;br /&gt;
* Getting the badges capable of self-updating to the latest firmware&lt;br /&gt;
* Prepare individual encryption keys so the badges can communicate securely&lt;br /&gt;
* Providing a couple of applications to run initially so the capabilities can be displayed&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also be writing up documentation so everyone can get a feel for the care and feeding of their badge and how they can extend it for themselves.&lt;br /&gt;
&lt;br /&gt;
Are you excited and want to start chatting about it, or start assembling your own [[Swagbadge2021_Dagbadge|Dagbadge]]? Our [https://groups.google.com/u/2/g/open-hardware-conf/about Open Hardware Google Groups] mailing list is happy to have you: come say hi!&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2020-11-15 ===&lt;br /&gt;
&lt;br /&gt;
The amended PCBs arrive and they&#039;re all in top working order. So we split up all the components among the team to pre-assemble and test them so you don&#039;t have to:&lt;br /&gt;
* Erase and flash the Lolin32s with MicroPython&lt;br /&gt;
* Solder the headers on the Lolin32s, and solder these to the PCBs&lt;br /&gt;
* Snip off the excess headers&lt;br /&gt;
* Solder the OLEDs and switches to the PCBs&lt;br /&gt;
It takes around 10 minutes to assemble and test each of the 300 Swagbadges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check out our twitter [https://twitter.com/swagbadge2021 @swagbadge2021] for a preview peek at a special SAO that will come with your badge too!&lt;br /&gt;
&lt;br /&gt;
On the firmware, we had to deal with an unexpected Wi-Fi networking issue.  It appears that our event loop code was consuming the processor and not allowing sufficient time for handling Wi-Fi, which in turn caused networking unreliability ... sometimes !  Fortunately, that issue has been fixed and at the same time a fairly extensive rewrite of the underlying Wi-Fi / MQTT connection, failure handling and re-connection threads occurred.  Now we can get back to completing the out-of-the-box Wi-Fi client configuration functionality.&lt;br /&gt;
&lt;br /&gt;
Our Open Hardware MiniConference was accepted, so you can expect more great sessions during LCA2021 too. We&#039;ll definitely be making time for discussion and exploration of the Swagbadge, as well as talks proposed BY YOU for the Open Hardware MiniConference, and a community-building session so we can make OHMC even better than ever!&lt;br /&gt;
&lt;br /&gt;
We have some other exciting news, but you&#039;ll just have to wait til December for that. Soon, SOON!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2020-11-01 ===&lt;br /&gt;
&lt;br /&gt;
The PCBs arrived on Sunday. What a lovely surprise! Yay!&lt;br /&gt;
... Except they have some bad wiring which was missed despite a bunch of review. Boo!&lt;br /&gt;
&lt;br /&gt;
What happened? On the OLEDs, VCC and Ground pins were swapped.  When OLEDs are soldered in this causes a direct short from Lolin32-Lite VCC and Ground which heats up the Lolin32-Lite regulator and then nothing much works.  @jon tried patching (swapping) the OLED pin pads and this appears to work, so we can rescue this set of boards if we have to, but doing so to every single board doubles our build time and introduces another round of handling and potential error.&lt;br /&gt;
&lt;br /&gt;
Fortunately! Our past selves knew that hardware is hard to get perfectly right first time and we allowed enough time - and budget - to do another round of PCB ordering with whatever fixes we need to squeeze in.&lt;br /&gt;
&lt;br /&gt;
The SwagBadges are all owned by Linux Australia, and we are talking with them about the best way to reuse them and potentially recover some costs.&lt;br /&gt;
&lt;br /&gt;
Our set of documentation is steadily being built out. We know we need:&lt;br /&gt;
* A quickstart set of instructions for every SwagBadge recipient, for getting going once they get their package in the post&lt;br /&gt;
* How to extend a SwagBadge, via software and hardware&lt;br /&gt;
* Troubleshooting!&lt;br /&gt;
* Where to get help (from us, and the wider maker community)&lt;br /&gt;
* List of materials and build instructions for the Dagbadge&lt;br /&gt;
* Newcomers&#039; guide to electronics&lt;br /&gt;
&lt;br /&gt;
=== Status: Week of 2020-10-25 ===&lt;br /&gt;
&lt;br /&gt;
Now that we have all the Lolin32 microprocessors, we need to put a fresh copy of micropython on there (this means we know what version is on every badge, and that there&#039;s no malware on board). We also need to put our software on there (the Aiko framework and the Swagbadge code). It would be more efficient to do everything at once, but Jon and Andy agreed it would be sensible to pay a bit more time up front double-handling the ESP32s and flash micropython (MP) now, and then handle them all again later when the rest of the software is ready. &lt;br /&gt;
&lt;br /&gt;
Why?&lt;br /&gt;
&lt;br /&gt;
# This lets us test if the Lolins are functional, nice and early, when we have time to do something about it.&lt;br /&gt;
# It&#039;ll save us some time later on when we&#039;ll be hitting the deadline prior to shipping.&lt;br /&gt;
&lt;br /&gt;
We need 300 badges. Jon allowed for a 10% failure rate. So we have 330. They take about 5 minutes each to flash. It&#039;s a big job!&lt;br /&gt;
&lt;br /&gt;
So far Jon has flashed MP to 35 Lolins successfully, plus one failure. This is about 10% of the total number with only a single failure, so already it&#039;s paid dividends in giving us some confidence that the hardware is (mostly) good. But the failure is also really interesting!&lt;br /&gt;
&lt;br /&gt;
This is a healthy Lolin: [[File:healthylolin.png|240px|Image of a healthy lolin with clean circuitry]]&lt;br /&gt;
&lt;br /&gt;
This is the damaged one: [[File:unhealthylolin.png|240px|Image of a dodgy lolin with semi-repaired blobby circuitry]]&lt;br /&gt;
&lt;br /&gt;
The bad one has been reworked at the factory, but unsuccessfully. You can see two solder bridges on the bottom pads. A solder bridge is where two components or circuits are joined together by solder, where they shouldn&#039;t be. A pad is the bit on the component used to connect the component to the board, via solder.&lt;br /&gt;
&lt;br /&gt;
This is very interesting because it shows two things. First, they obviously do some form of quality control at the factory, otherwise they wouldn&#039;t have detected that this board needed rework in the first place. That&#039;s reassuring! Second, after the rework was done, it went in the &amp;quot;good&amp;quot; pile and was shipped to a customer, even though it still didn&#039;t work. That&#039;s bad! After taking the photo, Jon touched the bridges with a soldering iron (which removed the excess solder and &amp;quot;de-bridged&amp;quot; the circuit) and now the Lolin works fine. (They were &#039;&#039;so&#039;&#039; close to fixing it, but didn&#039;t quite get there. Strange.) Odd ones like these get set aside and kept as spares. They won&#039;t go into the general pool to go on a SwagBadge.&lt;br /&gt;
&lt;br /&gt;
The PCBs have left Shenzhen and are finally enroute. We&#039;ve nearly DDOS&#039;d the DHL tracking page by obsessively clicking refresh, but they&#039;re meant to arrive in our hands (and hearts) by the end of next week. Then begins the long labour of love:&lt;br /&gt;
* Testing the boards&lt;br /&gt;
* Soldering on all the components (switches, screens, microcontroller)&lt;br /&gt;
* Retesting once they&#039;re assembled&lt;br /&gt;
&lt;br /&gt;
SAO thoughts continue to evolve, with ideas ranging from madcap to enlightened genius turning up.&lt;br /&gt;
* Theremin&lt;br /&gt;
* Game controller&lt;br /&gt;
* Googly eye jiggler&lt;br /&gt;
* Tux&lt;br /&gt;
Andrew has been turning his keen eyed skills into developing some of his ideas and you can get a sense of his works-in-progress on his [https://github.com/PancakeLegend/SwagBadge-SAOs PancakeLegend SAO git].&lt;br /&gt;
&lt;br /&gt;
On the software side, Andy has been driving most of the work on the framework, exploring a lot of ways forwards so that the badges have the greatest utility to the most people... within the constraints of the footprint of an embedded style of device. Our set of tasks in the coming months encompasses:&lt;br /&gt;
* Stand up a wireless AP for wifi config if the device can&#039;t find anything to connect to on boot&lt;br /&gt;
* Give the devices the capacity to upgrade their framework upon request (this lets us continue to work on the framework in the years to come, without everyone having to learn how to manually do it themselves)&lt;br /&gt;
* A services framework in Aiko to allow devices to discover each other, and do so securely without exposing network traffic to the casual or malicious onlooker, or even to expose enough metadata about the traffic that who/when are communication could be inferred.&lt;br /&gt;
* A discussion around key signing: let people set up their own keys or revoke and update keys, or exchange keys to people who have made their own dagbadge.&lt;br /&gt;
* Code to support adding SAOs to any of the spots on the board without having to reconfigure a whole bunch of pin assignments.&lt;br /&gt;
* A variety of example applications and documentation to let people copy and embellish to bring their own magnificent ideas to life.&lt;br /&gt;
&lt;br /&gt;
Our ideas for the community continue to grow and we hope to be able to invite you all to join us in early November:&lt;br /&gt;
* We&#039;re planning on setting up a gitter (or equivalent) attached to a consolidated git repo that contains all the hardware schematics, the framework and sample applications.&lt;br /&gt;
* Get y&#039;all involved!&lt;br /&gt;
* Have an idea to build an SAO but don&#039;t know how? We&#039;ll hook you up with people who know how to build a SAO and are enthusiastic about seeing your idea become a reality.&lt;br /&gt;
* Know how to build SAOs but aren&#039;t sure what would be good? We&#039;ll find you some people who have ideas.&lt;br /&gt;
* Want to write neat software to make the badge do something? &lt;br /&gt;
* Built a badge/have a badge from another event and looking for a community to help you understand and extend it?&lt;br /&gt;
* Let&#039;s all stay connected, help each other out, and grow our expertise! It is, after all, the very essence of open hardware!&lt;br /&gt;
&lt;br /&gt;
... We do have dreams of carrying these extensible badges forward to the years to come. They have so much potential as gaming devices, as communication devices, as environment sensors, as lolly rockets, and as carriers for heaps of shiny blinking leds! &lt;br /&gt;
&lt;br /&gt;
=== Status: 2020-10-18 ===&lt;br /&gt;
&lt;br /&gt;
2048 grams of OLEDs arrived. The PCBs are being fabricated, their soldermask is going on and we expect they&#039;ll be finished construction by the time this post goes to air, and will hopefully be sent to shipping early next week.&lt;br /&gt;
&lt;br /&gt;
Since we sent the PCBs to the factory to be made, we&#039;ve learned more about capacitive touch components and realise that we could have done a better job with what&#039;s on the board. It turns out it takes more than a week to learn everything there is to know about a new kind of component! Nonetheless, what we have provided will still work just great for plenty of purposes.&lt;br /&gt;
&lt;br /&gt;
Because technology doesn&#039;t operate in a culture-free vacuum, we had a chat amongst the team about where we chose to have the PCBs fabricated. The factory of choice this time was [https://jlcpcb.com/ JLC] which we&#039;ve used before. Here&#039;s a [https://www.youtube.com/watch?v=ljOoGyCso8s tour of their factory]! Jon and Andy have visited it and others like it in person a few years ago, lucky enough to have attended a maker&#039;s tour of factories in Shenzhen. There&#039;s a [https://www.youtube.com/playlist?list=PLIizEY7AraGyh6Y7KdNGXxRuXXwz9m8ta series of videos] on the tour to get a taste of what they saw.&lt;br /&gt;
&lt;br /&gt;
Think building your own PCB is too hard? Think again! If you plan on building a custom [[Swagbadge2021_SAO|SAO]] you&#039;ll want to learn how. The internet provides once again, with a [https://www.youtube.com/watch?v=BVhWh3AsXQs&amp;amp;list=PLy2022BX6EspFAKBCgRuEuzapuz_4aJCn video on how to build your own], but we plan to gather up some good resources as part of building out the Swagbadge so you can refer back to it in the future.&lt;br /&gt;
&lt;br /&gt;
On the software front, we&#039;ve been fixing bugs in the framework, discussing security around how people can get two or more badges communicating (or just an MQTT client talking to a badge), and our hopes and dreams for getting software and hardware interoperating in a modular way, thereby reducing the barriers that would otherwise stop people having fun with it.&lt;br /&gt;
&lt;br /&gt;
=== Status: 2020-10-11 ===&lt;br /&gt;
&lt;br /&gt;
Phew! The OLED screens are enroute as are the Lolin ESP32 microprocessors. The Chinese national holiday added a delay that had us all nervously refreshing the shipment tracking page. The PCB design is being finalised today and we expect to send that order off tomorrow. We hope this will give us a narrow window for a second run if they come back faulty in some way and still meet our overall shipping deadline.&lt;br /&gt;
&lt;br /&gt;
This week has mostly been about making sure we had the design and components and layout on the PCB solid to meet our goals of something that would&lt;br /&gt;
* be useful right at the start without any additional components&lt;br /&gt;
* be elegant to look at&lt;br /&gt;
* function as a badge&lt;br /&gt;
* have the [[Swagbadge2021_SAO|SAO]] extension points are in useful locations and pointing in useful directions.&lt;br /&gt;
* have space to include the important logos for the conference!&lt;br /&gt;
&lt;br /&gt;
[[File:badge_front.jpg|240px|LCA2021 swag badge front side 2020-10-08]] [[File:badge_back.jpg|240px|LCA2021 swag badge back side 2020-10-08]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to hear more about the PCB design, one of our team, the delightful Jon Oxer, runs a livestream most Sunday mornings. His  [https://www.youtube.com/watch?v=d02arsbvVF8&amp;amp;t=2062 latest episode talks] about the swagbadge from about 34 minutes in.&lt;br /&gt;
&lt;br /&gt;
On the software front, we&#039;re starting to think about what we want the badge to support from the moment you switch it on. (Including how you&#039;ll be able to configure it for your network). In coming weeks we&#039;ll talk about how you, our community, can get involved in the software side as well as the hardware side.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Status: 2020-10-04 ===&lt;br /&gt;
&lt;br /&gt;
Project approved and announced ... [https://github.com/CCHS-Melbourne/Swag-Badge #swagbadge hardware design] underway ... #swagbadge major parts ordered ... #dagbadge [https://en.wikipedia.org/wiki/Bill_of_materials BoM] not yet finalized ... Core team (mostly) assembled and ready to start building the community ... [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO] hardware community development not yet commenced (but ideas are brewing) ... #swagbadge firmware development is still flying under-the-radar !&lt;br /&gt;
&lt;br /&gt;
Note: Whilst the #swagbadge major parts have been ordered (330x ESP32 microcontrollers and 660x OLED screens), we are already sweating on shipping delays !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Swag badge render 2020-09-30.jpg|240px|LCA2021 swag badge 3D render 2020-09-30]]  Recent 3D render 2020-09-30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recommendations for those who can&#039;t wait to get started ===&lt;br /&gt;
* Play with [http://micropython.org/unicorn microPython on-line]: Select peripheral &amp;quot;I2C LCD&amp;quot;, choose demo &amp;quot;I2C LCD&amp;quot; and press &amp;quot;Run script&amp;quot;&lt;br /&gt;
* Play with [https://github.com/micropython/micropython microPython on Unix]: See section &amp;quot;The Unix version&amp;quot;&lt;br /&gt;
* Read up on [https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard SAO hardware add-ons]: How to extend the #swagbadge using a 6 pin (2x3) connector with power, [https://en.wikipedia.org/wiki/I%C2%B2C I2C bus] and 2x [https://en.wikipedia.org/wiki/General-purpose_input/output GPIO pins]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:0.96-inch-Blue-I2c-IIC-Serial-128x64-Oled-LCD-LED-Display-Module-5a.jpg|200px|0.96&amp;quot; OLED screen]]  &lt;br /&gt;
[[File:Lolin32.jpg|70px|ESP32 Lolin32]]  &lt;br /&gt;
[[File:Lolin32 pinout.jpg|360px|ESP32 Lolin32 pin-out]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Origin Story Timeline ===&lt;br /&gt;
&lt;br /&gt;
* 2020-10-04: #swagbadge project public announcement&lt;br /&gt;
* 2020-09-24: Preparing for initial public announcement&lt;br /&gt;
* 2020-09-17: [https://github.com/CCHS-Melbourne/Swag-Badge GitHub repository: #swagbadge hardware] created&lt;br /&gt;
* 2020-09-11: Assembling core OHMC team ... getting the band back together&lt;br /&gt;
* 2020-09-10: #swagbadge project green light ... we&#039;re good to go !  [https://twitter.com/linuxconfau/status/1304009218521853953 Trying not to spill the beans ?]&lt;br /&gt;
* 2020-09-07: #swagbadge project proposal (goals, timeline and costs) sent to LCA2021&lt;br /&gt;
* 2020-08-26: #swagbadge project conception&lt;br /&gt;
* 2020-05-06: [https://linux.org.au/linux-australia-community-update-lca2021-information LCA2021 in Canberra &amp;quot;postponed&amp;quot; to 2022 and rebooted as on-line and world-wide for 2021] ... finally made it to Antarctica !&lt;br /&gt;
* 2018-01-22: LCA2021 [https://github.com/geekscape/aiko_engine_mp GitHub repository: Aiko Engine for microPython] incept date&lt;br /&gt;
&lt;br /&gt;
[[File:Swag_badge_render_2020_09-02.png|200px|LCA2021 swag badge very first render 2020-09-02]]LCA2021 swag badge very first render 2020-09-02&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=SwagBadge2021_FAQ&amp;diff=1353</id>
		<title>SwagBadge2021 FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=SwagBadge2021_FAQ&amp;diff=1353"/>
		<updated>2021-01-27T11:43:14Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* I&amp;#039;m done and want to pass my badge on */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
=== I need more help! ===&lt;br /&gt;
&lt;br /&gt;
Head over to https://spectrum.chat/lca2021-swagbadge .&lt;br /&gt;
All sorts of helpful and knowledgeable folk hang out there.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m outside of Australia, how can I acquire #swagbadge hardware? ===&lt;br /&gt;
&lt;br /&gt;
Check out [http://www.openhardwareconf.org/wiki/Swagbadge2021_Dagbadge Dagbadge] which is the D.I.Y option of a Swagbadge with a parts list and instructions.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve deliberately chosen readily available parts, i.e ESP32 Lolin32, 0.96&amp;quot; OLED screens and buttons, so that it is inexpensive and easy for anyone to acquire parts for participating in the development process along with us.  This also means that for those people we can&#039;t ship to, due to cost and time constraints, there is still an option for you to not miss out.  &lt;br /&gt;
&lt;br /&gt;
=== What powers the badge? Can I run it off a battery? ===&lt;br /&gt;
&lt;br /&gt;
You can plug a micro USB cable into the badge to provide power. We haven&#039;t provided one in the kits on the basis that everyone probably has plenty lying around at home already, and if not, they&#039;re easy and cheap to get hold of.&lt;br /&gt;
&lt;br /&gt;
It is possible to power the badge using a battery: the LOLIN32 has a JST header where a small 1S LiPo can be plugged in, but you&#039;ll need to provide the battery (and connect it to the badge) yourself. (Places like [https://hobbyking.com/en_us Hobby King] sell them, but the shipping isn&#039;t cheap.)&lt;br /&gt;
&lt;br /&gt;
=== Who is the team behind the Swagbadge? ===&lt;br /&gt;
&lt;br /&gt;
The core team this year for OHMC is:&lt;br /&gt;
* [https://twitter.com/jonoxer Jon Oxer]&lt;br /&gt;
* [https://twitter.com/geekscape Andy Gelme]&lt;br /&gt;
* Andrew Nielsen&lt;br /&gt;
* [https://twitter.com/mage0r John Spencer]&lt;br /&gt;
* [https://twitter.com/nye_nicola Nicola Nye]&lt;br /&gt;
with help in all sorts of ways from many other individuals.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;m done and want to pass my badge on ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re done with your badge and would like to pass it on to a new home, please let us know.&lt;br /&gt;
* [https://spectrum.chat/lca2021-swagbadge/general/rehoming-swagbadgen~ce43743d-b8a3-44c5-9bd2-7ad1453e4a0d Tell us on Spectrum] if you want to pass it on.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like a spare badge (got a friend who&#039;s keen to join in, or you want to help your kiddo learn electronics), or you&#039;re part of a makerspace or a school who&#039;d like a set of badges, let us know that too!&lt;br /&gt;
* Michael Cassaniti&lt;br /&gt;
* Mike Hewitt&lt;br /&gt;
&lt;br /&gt;
Hopefully we can put column A in touch with column B.&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_SoftwareDev&amp;diff=1352</id>
		<title>Swagbadge2021 SoftwareDev</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_SoftwareDev&amp;diff=1352"/>
		<updated>2021-01-25T05:11:08Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Hardware reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Badge Software Development}}&lt;br /&gt;
&lt;br /&gt;
Want to write your own programs to run on your badge? This page gives a brief overview of the software architecture, an example of a program, and a reference guide on how to access the hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__ &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
The badge runs [https://micropython.org MicroPython] (written by [http://dpgeorge.net/ Damien George] from Melbourne!) and has the [https://github.com/geekscape/aiko_engine_mp Aiko framework] (written by OHMC&#039;s [https://twitter.com/geekscape Andy Gelme]) loaded on it.&lt;br /&gt;
&lt;br /&gt;
MicroPython gives you libraries to access the ESP32 microprocessor functionality. Things like: reading and writing to specific pins on the processor or performing operating system functions such as accessing the file system).&lt;br /&gt;
&lt;br /&gt;
Aiko gives you convenience libraries for driving the badge hardware like the OLED screens, as well as running threads to keep your badge connected to wifi, a connection to the MQTT server, the emergency-stop function to prevent runaway code, and an automatic upgrade function so we can ship upgrades to your device without you having to wrangle git.&lt;br /&gt;
&lt;br /&gt;
== Sample code ==&lt;br /&gt;
&lt;br /&gt;
This code writes &amp;quot;Hello world&amp;quot; to one screen, while displaying the status of the wifi, MQTT connection, button presses and slider status on the left hand screen.&lt;br /&gt;
&lt;br /&gt;
It demonstrates how to use the Aiko event loop to periodically poll for hardware state, as well as how to access some of the features of the badge.&lt;br /&gt;
&lt;br /&gt;
You can find more example code in the &#039;&#039;&#039;examples&#039;&#039;&#039; directory of the [https://github.com/geekscape/aiko_engine_mp/tree/master/examples Aiko repository] on github.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;Example code: use &amp;quot;expand&amp;quot; to view&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# examples/helloworld.py&lt;br /&gt;
#&lt;br /&gt;
# Writes a message to the oled and displays some state info&lt;br /&gt;
#&lt;br /&gt;
# Usage&lt;br /&gt;
# ~~~~~&lt;br /&gt;
# import examples.helloworld as helloworld&lt;br /&gt;
# from examples.helloworld import run&lt;br /&gt;
# run()&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
from machine import Pin, TouchPad&lt;br /&gt;
import aiko.event as event&lt;br /&gt;
import aiko.oled as oled&lt;br /&gt;
&lt;br /&gt;
title = &amp;quot;Hello!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import configuration.main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Buttons: underneath the screens&lt;br /&gt;
button_right = Pin(17, Pin.IN, Pin.PULL_UP)&lt;br /&gt;
button_left = Pin(16, Pin.IN, Pin.PULL_UP)&lt;br /&gt;
&lt;br /&gt;
# Clean out the whole line that was there before&lt;br /&gt;
# Write some new text and show it&lt;br /&gt;
def oled_write_line(oled_target, x, y, text):&lt;br /&gt;
    oled_target.fill_rect(0,y,oled.width, oled.font_size, oled.bg)&lt;br /&gt;
    oled_target.text(text, x, y)&lt;br /&gt;
    oled_target.show()&lt;br /&gt;
    &lt;br /&gt;
def status():&lt;br /&gt;
    sliders = touch_slider_handler()&lt;br /&gt;
    oledL = oled.oleds[0]&lt;br /&gt;
    oledR = oled.oleds[1]&lt;br /&gt;
    oled.write_line(oledR, 1, 10, &amp;quot;Hello world!&amp;quot;)&lt;br /&gt;
    oled_write_line(oledL, 1, 10, &amp;quot;Wifi: &amp;quot;+str(net.is_connected()))&lt;br /&gt;
    oled_write_line(oledL, 1, 20, &amp;quot;MQTT: &amp;quot;+str(mqtt.is_connected()))&lt;br /&gt;
    oled_write_line(oledL, 1, 30, &amp;quot; &amp;quot;+str(int(not(buttonL.value())))+&amp;quot; Button &amp;quot;+str(int(not(buttonR.value()))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check on the status of the badge hardware and display that every 500ms          &lt;br /&gt;
def run():&lt;br /&gt;
    oled.oleds_clear(oled.bg)&lt;br /&gt;
    oled.set_title(title)&lt;br /&gt;
    event.add_timer_handler(status, 500)&lt;br /&gt;
    try:&lt;br /&gt;
        event.loop()&lt;br /&gt;
    finally:&lt;br /&gt;
        event.remove_timer_handler(statusbar)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Architecture of a Swagbadge application ==&lt;br /&gt;
&lt;br /&gt;
An application runs when the Aiko framework is also running, so you can rely on having all the badge services available.&lt;br /&gt;
&lt;br /&gt;
An application is designed to be triggered when the badge is rebooted (either via pushing the button on the back, or via using ^D in the repl). The badge knows which application to run by the state of the &amp;lt;code&amp;gt;configuration\main.py&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
The framework will call your application&#039;s &#039;&#039;&#039;initialise()&#039;&#039;&#039; function. The framework is running an event loop, so the initialise function is the place to add in event handlers to respond to actions you take on the badge.&lt;br /&gt;
&lt;br /&gt;
{{Note|Note: Refreshing the OLEDs is reasonably intense on the microprocessor. If you have too many event loops triggering too often and/or too much screen activity, you can starve the badge of resources. This can produce wifi dropouts, or non-responsiveness. If you have a lot of screen activity, consider using a buffer or recording state and just doing a screen update periodically}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software reference ==&lt;br /&gt;
&lt;br /&gt;
=== MicroPython environment ===&lt;br /&gt;
&lt;br /&gt;
[https://micropython.org MicroPython docs]&lt;br /&gt;
&lt;br /&gt;
==== Special files ====&lt;br /&gt;
&lt;br /&gt;
There are two special files which are run automatically by MicroPython if they exist on the filesystem: &amp;lt;code&amp;gt;boot.py&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;main.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;boot.py&#039;&#039;&#039;: This file is run first on power up/reset. We don&#039;t modify it from what MicroPython ships with, but it&#039;s important to know it exists (and not to delete it), and is interesting to look into it to see what it does.&lt;br /&gt;
* &#039;&#039;&#039;main.py&#039;&#039;&#039;: This is run after boot.py so if you want something to automatically happen on boot/reset, this is where to put it. We use this to start up the Aiko framework, initialise the hardware (such as the network and mqtt) and start up any application that is configured inside &amp;lt;code&amp;gt;configuration/main.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Directory structure ====&lt;br /&gt;
&lt;br /&gt;
What&#039;s on the processor? Where does it live?&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;main.py&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boot.py&amp;lt;/code&amp;gt; - files run on bootup&lt;br /&gt;
* &amp;lt;code&amp;gt;lib&amp;lt;/code&amp;gt; - code in here is aiko framework code and automatically in the micropython &#039;path&#039;.&lt;br /&gt;
** &amp;lt;code&amp;gt;aiko&amp;lt;/code&amp;gt; - the aiko framework&lt;br /&gt;
* &amp;lt;code&amp;gt;applications&amp;lt;/code&amp;gt; - collection of programs, one of which is configured to run automatically on bootup. Each application must have an initialise() function&lt;br /&gt;
* &amp;lt;code&amp;gt;configuration&amp;lt;/code&amp;gt; - control the behavior of Aiko by changing the &amp;quot;settings&amp;quot;, e.g configuration/main.py specifies which application to run&lt;br /&gt;
* &amp;lt;code&amp;gt;examples&amp;lt;/code&amp;gt; - sample code!&lt;br /&gt;
&lt;br /&gt;
You can&#039;t edit the files directly on the processor (there&#039;s no editing tooling): you edit a copy of it on your computer, then use mpfshell to &amp;lt;code&amp;gt;put&amp;lt;/code&amp;gt; it onto the badge.&lt;br /&gt;
&lt;br /&gt;
For micropython purposes, you can use the &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; statement to import anything in the &amp;lt;code&amp;gt;lib&amp;lt;/code&amp;gt; directory without prefacing it with &amp;quot;lib&amp;quot;, anything else is imported from root.&lt;br /&gt;
For example:&lt;br /&gt;
* to import lib/aiko/net.py, you would use &amp;lt;code&amp;gt;import aiko.net&amp;lt;/code&amp;gt;&lt;br /&gt;
* to import examples/showcase.py, you would use &amp;lt;code&amp;gt;import examples.showcase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the aiko configuration files are, themselves, just python, you can also do &amp;lt;code&amp;gt;import configuration.main.settings&amp;lt;/code&amp;gt; where the file is in /configuration/main.py but it contains a datastructure called &#039;settings&#039;.&lt;br /&gt;
&lt;br /&gt;
=== MQTT ===&lt;br /&gt;
&lt;br /&gt;
See [[Swagbadge2021_MQTT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software development ==&lt;br /&gt;
&lt;br /&gt;
=== Aiko ===&lt;br /&gt;
The Aiko Engine is what runs after boot (FreeRTOS, then microPython). Aiko provides a framework for developing applications, by providing higher level abstractions over the basic hardware, events, messaging and other conveniences. Basically, a lot of house keeping that you&#039;d end up writing yourself. After boot, there are two background threads, one looking after Wi-Fi connectivity and the other looking after MQTT connectivity.  &lt;br /&gt;
There are also three event handlers: MQTT keep-alive, firmware upgrader and the work-in-progress SwagBadge application handler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; aiko.event.event_list.print()&lt;br /&gt;
&amp;lt;function swagbadge_handler at 0x3ffe6c70&amp;gt; every 5000 next 23099&lt;br /&gt;
&amp;lt;function upgrade_handler at 0x3ffedfa0&amp;gt; every 5000 next 23099&lt;br /&gt;
&amp;lt;function mqtt_ping_handler at 0x3ffe9820&amp;gt; every 60000 next 73672&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That last handler, which every 5 seconds is updating the title bar &amp;quot;LCA2021&amp;quot; &amp;lt;--&amp;gt; &amp;quot;SwagBadge&amp;quot; (see https://github.com/geekscape/aiko_engine_mp/blob/master/applications/swagbadge.py ).&lt;br /&gt;
&lt;br /&gt;
You can stop a handler, like this (this will stop the top bar status updater):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; import applications.swagbadge&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; aiko.event.remove_timer_handler(application.swagbadge_handler)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testing code ===&lt;br /&gt;
&lt;br /&gt;
First write your code on your computer, and make sure it compiles ( python -m py_compile code.py )&lt;br /&gt;
&lt;br /&gt;
Then, you can go in repl and use paste mode (^E). It only works if you paste a few lines at a time. End your paste with ^D and then if you pasted a function, call the function:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ^E&lt;br /&gt;
paste mode; Ctrl-C to cancel, Ctrl-D to finish&lt;br /&gt;
=== PASTE_YOUR_CODE_HERE&lt;br /&gt;
=== ^D&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pushing new code ===&lt;br /&gt;
Occasionally you might find that the updated source code that you just used the mpfshell &amp;quot;put&amp;quot; command to transfer isn&#039;t properly stored on the ESP32 microPython flash filesystem. After rebooting, you might see unexpected errors. A simple way to check is to use the mpfshell &amp;quot;cat&amp;quot; command to check that the file was completely transferred.  &lt;br /&gt;
&lt;br /&gt;
The safest way to update code is to perform a reboot after transferring all the files. Doing a soft-reboot using Control-D doesn&#039;t take long, i.e it is faster and easier than doing a hard-reboot with the reset button. The good thing about a reboot (microPython interpreter restart) is that there is no confusion about the complete state of your system, i.e what references have been held onto from your older source code that might still be running in a thread or as an event handler (via the Aiko Engine framework).&lt;br /&gt;
&lt;br /&gt;
You can also delete all running modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.modules.clear() &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More details in https://spectrum.chat/lca2021-swagbadge/software/safe-software-updates~ba541e3c-d8a2-41a8-ac47-71d87696de2d&lt;br /&gt;
&lt;br /&gt;
=== Replacing the swagbadge application with your own ===&lt;br /&gt;
&lt;br /&gt;
Edit configuration/main.py and set &amp;quot;application&amp;quot;: &amp;quot;application/yourcode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Reboot to shell / Force runaway code to stop ===&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to write code that will leave your badge unresponsive. Rebooting just reruns the same bad code. What to do?&lt;br /&gt;
&lt;br /&gt;
* Place a finger on each of the bottom slider pads, either side of the microprocessor. &lt;br /&gt;
* Trigger a restart by using the button on the back of the badge, or Ctrl-D in repl (if you can get into repl)&lt;br /&gt;
&lt;br /&gt;
The badge will restart but not autorun any code, just drop you back at the repl prompt. From there you can &amp;lt;code&amp;gt;put&amp;lt;/code&amp;gt; bugfixed code back onto the device.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/geekscape/aiko_engine_mp/blob/a5b5593d37509df64a3dcb4cdc3d13a411152d82/main.py#L20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware reference ==&lt;br /&gt;
&lt;br /&gt;
=== OLED screens ===&lt;br /&gt;
&lt;br /&gt;
==== via MQTT ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;(oled:clear)&#039;&#039;&#039; : clears both screens&lt;br /&gt;
* &#039;&#039;&#039;(oled:log Hello World!)&#039;&#039;&#039; : writes a message along the bottom of the screens, scrolling up whatever is there out of the way&lt;br /&gt;
* &#039;&#039;&#039;(oled:pixel x y)&#039;&#039;&#039; : lights a pixel at that spot&lt;br /&gt;
* &#039;&#039;&#039;(oled:text x y This is a test!)&#039;&#039;&#039; : Puts some text at the position x,y. It will be displayed over the top of whatever&#039;s there.&lt;br /&gt;
&lt;br /&gt;
==== via API ====&lt;br /&gt;
&lt;br /&gt;
On the badge, by default the two oleds work as a single long screen, with text split across both of them. You can access a specific oled and use the underlying functions to write to them&lt;br /&gt;
&lt;br /&gt;
Library&lt;br /&gt;
* &#039;&#039;&#039;from aiko import oled&#039;&#039;&#039; # make the oled functions available for use within your code&lt;br /&gt;
&lt;br /&gt;
Globals&lt;br /&gt;
* &#039;&#039;&#039;[] oled.oleds&#039;&#039;&#039; # an array of oleds, letting you address them separately if you choose&lt;br /&gt;
* &#039;&#039;&#039;int oled.FG/oled.BG&#039;&#039;&#039; # get/set fg and bg colours (0 or 1)&lt;br /&gt;
* &#039;&#039;&#039;int oled.font_size&#039;&#039;&#039; # helpful to work out how much space a line of text will take up&lt;br /&gt;
* &#039;&#039;&#039;boolean oled.lock_title&#039;&#039;&#039; # true/false. True means the display always shows the title. False means it&#039;ll be wiped once the display is cleared. Annunciators always are displayed.&lt;br /&gt;
&lt;br /&gt;
Functions&lt;br /&gt;
* &#039;&#039;&#039;oled.initialise()&#039;&#039;&#039; # uses configuration.oled.settings by default, normally already invoked by the base swagbadge handler&lt;br /&gt;
* &#039;&#039;&#039;oled.oleds_clear(colour)&#039;&#039;&#039; # pass in oled.BG or oled.FG for easy set. Wipes the display&lt;br /&gt;
* &#039;&#039;&#039;oled.log(text)&#039;&#039;&#039; # scroll up text to insert a new line at the bottom of the display&lt;br /&gt;
* &#039;&#039;&#039;oled.text(text, x, y, colour)&#039;&#039;&#039; # add text at the position x,y in the colour specified. Note: does not clear the contents at this spot first.&lt;br /&gt;
* &#039;&#039;&#039;oled.oleds_show()&#039;&#039;&#039; # refresh the display with the latest text/image additions&lt;br /&gt;
* &#039;&#039;&#039;oled.set_title(text)&#039;&#039;&#039; # set the title text&lt;br /&gt;
* &#039;&#039;&#039;oled.write_title()&#039;&#039;&#039; # write the title text&lt;br /&gt;
&lt;br /&gt;
==== Oled image push and I2C speed ====&lt;br /&gt;
&lt;br /&gt;
- example #1: https://github.com/geekscape/aiko_engine_mp/blob/master/examples/oled_image.py&lt;br /&gt;
&lt;br /&gt;
- example #2: https://github.com/geekscape/aiko_engine_mp/blob/master/examples/oled_benchmark.py&lt;br /&gt;
&lt;br /&gt;
The 2nd example gets a speed of 21fps per screen (or about 10fps for both screens).&lt;br /&gt;
&lt;br /&gt;
Using C++ code (see https://github.com/geekscape/aiko_engine_mp/commit/a22b3099584c9978807e08adf752f3082af65875 ) you get at least 61fps per screen (if you do assembly: 86fps, and with crazy I2C noacks hacks, you can get 150fps: https://bitbanksoftware.blogspot.com/2018/05/fast-ssd1306-oled-drawing-with-i2c-bit.html ).&lt;br /&gt;
&lt;br /&gt;
Back to python, if you increase the CPU speed with  machine.freq(240000000) , you&#039;ll get 26fps per screen, and if you replace the image pixel pushes by a full back or full white push, you get 29fps, which seems to be an upper limit of the python oled code. A better end to end C++ driver could give a lot more speed.&lt;br /&gt;
&lt;br /&gt;
=== Screen buttons ===&lt;br /&gt;
&lt;br /&gt;
If you push (firmly but gently) on the screens, you&#039;ll discover they double as buttons: there&#039;s a small switch under each OLED that is pressed when you push down on the screen.&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;Warning&#039;&#039;&#039;: Push on the &#039;&#039;&#039;middle&#039;&#039;&#039; of the screen, not the edge. This will minimise the risk of bending... and breaking... the screen.}}&lt;br /&gt;
&lt;br /&gt;
The left screen button is pin 16. The right screen button is pin 17.&lt;br /&gt;
&lt;br /&gt;
==== via API ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from aiko import button&lt;br /&gt;
&lt;br /&gt;
left_screen = 16&lt;br /&gt;
right_screen = 17&lt;br /&gt;
&lt;br /&gt;
def my_button_handler(number, state):&lt;br /&gt;
   print(&amp;quot;Button {}: {}&amp;quot;.format(number, &amp;quot;press&amp;quot; if state else &amp;quot;release&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
button.add_button_handler(my_button_handler, [left_screen, right_screen])&lt;br /&gt;
aiko.button.add_touch_handler(my_button_handler, [12, 14, 15, 27])&lt;br /&gt;
aiko.button.remove_handler(my_button_handler)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def my_multibutton_handler(pin_numbers):&lt;br /&gt;
  print(&amp;quot;Multibutton {}&amp;quot;.format(pin_numbers))&lt;br /&gt;
button.add_multibutton_handler(my_multibutton_handler, [12, 14])&lt;br /&gt;
button.add_multibutton_handler(my_multibutton_handler, [15, 27])&lt;br /&gt;
button.remove_handler(my_multibutton_handler)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sliders ===&lt;br /&gt;
&lt;br /&gt;
The sliders operate via capacitive touch. You can use them to detect if someone has their finger on the circular pads at either end (which let you treat them like buttons), or you can detect the position of the finger along the slider by checking the relative values as the capacitance changes.&lt;br /&gt;
&lt;br /&gt;
The left slider is on pins 12 (bottom) and 15 (top), right slider is on pins 14 (bottom) and 27 (top).&lt;br /&gt;
&lt;br /&gt;
More info from MicroPython about [http://docs.micropython.org/en/latest/esp32/quickref.html?highlight=touchpad#capacitive-touch capacitive touch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import aiko.button as button&lt;br /&gt;
import aiko.common as common&lt;br /&gt;
&lt;br /&gt;
bottom_left = 12&lt;br /&gt;
top_left = 15&lt;br /&gt;
bottom_right = 14&lt;br /&gt;
top_right = 27&lt;br /&gt;
&lt;br /&gt;
def my_slider_handler(number, state, value):&lt;br /&gt;
   print(&amp;quot;Slider {}: {} {}&amp;quot;.format(number, state, value))&lt;br /&gt;
   # use the map handler to give you the slider values mapped from its min-max to yours&lt;br /&gt;
   mapped_value = int(common.map_value(value, 0, 100, 1, 5))&lt;br /&gt;
&lt;br /&gt;
aiko.button.add_slider_handler(my_slider_handler, bottom_left, top_left)&lt;br /&gt;
aiko.button.add_slider_handler(my_slider_handler, bottom_right, top_right)&lt;br /&gt;
aiko.button.remove_handler(my_slider_handler)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# is this button pressed?&lt;br /&gt;
# the commons library returns true/false&lt;br /&gt;
pressed_bottom_left = common.touch_pins_check([bottom_left])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Micropython functions&lt;br /&gt;
* &#039;&#039;&#039;common.touch_pins_check(touchpad_array)&#039;&#039;&#039; - Returns true if &#039;&#039;all&#039;&#039; the touchpad sensors listed are being touched, false otherwise.&lt;br /&gt;
* &#039;&#039;&#039;common.map_value(input, in_min, in_max, out_min, out_max)&#039;&#039;&#039;: map an input range to an output range and convert the input value to a value in the output range.&lt;br /&gt;
&lt;br /&gt;
=== SAOs (simple addons) ===&lt;br /&gt;
&lt;br /&gt;
Information about [[Swagbadge2021_SAO|hardware]]&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
	<entry>
		<id>http://www.openhardwareconf.org/index.php?title=Swagbadge2021_community&amp;diff=1350</id>
		<title>Swagbadge2021 community</title>
		<link rel="alternate" type="text/html" href="http://www.openhardwareconf.org/index.php?title=Swagbadge2021_community&amp;diff=1350"/>
		<updated>2021-01-25T01:03:59Z</updated>

		<summary type="html">&lt;p&gt;Nicola: /* Connective and reactive applications on the badge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Badge community =&lt;br /&gt;
&lt;br /&gt;
== Connective and reactive applications on the badge ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/Techman_83/status/1352934982310744064?s=20 #lcahugs]: Light up [https://twitter.com/Techman_83 @techman_83]&#039;s glowy lanyard every time you tag him with #lcahugs on Twitter.&lt;br /&gt;
* [https://twitter.com/mibus/status/1350394136910680064?s=20 IRC bridge]: Follow along with IRC chat on your badge screens from [https://twitter.com/mibus @mibus]&lt;br /&gt;
* [https://twitter.com/Enderboi/status/1352845142068142081?s=20 Remote handshake]: Send the right message to [https://twitter.com/Enderboi @enderboi]&#039;s badge over MQTT and it&#039;ll trigger a &#039;handshake&#039;!&lt;br /&gt;
* [https://twitter.com/neonsignal/status/1352855595028602882?s=20 Conference screencast to the badge]: 0.1fps to watch talks... on your badge, from [https://twitter.com/neonsignal @neonsignal]&lt;br /&gt;
* [https://twitter.com/FemmeOnAFarm/status/1353152499868332033 Controlling lights at home with badge sliders] from [https://twitter.com/FemmeOnAFarm @FemmeOnAFarm]&lt;br /&gt;
* [https://twitter.com/nye_nicola/status/1353299856027074560?s=20 Googly eyes] on screens, from [https://twitter.com/nye_nicola @nye_nicola]&lt;br /&gt;
* [https://twitter.com/ClaireCities/status/1353507647052365825?s=20 Eyes that follow your hand], using a SAO to detect hand movement, from [https://twitter.com/ClaireCities @ClaireCities]&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/permezel/aiko_engine_mp.git Tower of Hanoi]: via [https://github.com/permezel Permezel]&lt;br /&gt;
&lt;br /&gt;
== SAO specific ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/MrAlexar/status/1352818426771693570?s=20 Pic of solder rocket]: Cute little rocket SAO designed by [https://twitter.com/mage0r @mage0r]&lt;br /&gt;
* [https://twitter.com/FemmeOnAFarm/status/1352815126613614592?s=20 Light up Tux SAO]: modified Tux SAO with leds, from [https://twitter.com/FemmeOnAFarm @FemmeOnAFarm]&lt;br /&gt;
&lt;br /&gt;
== Supporting software ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/AlexVerrico/status/1352137353708519426?s=20 Web console]: control your badge via a web interface, from [https://twitter.com/AlexVerrico @AlexVerrico]&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/thilinag/status/1353119549252489217?s=20 3D printed protective case] from [https://twitter.com/thilinag @thilinag]&lt;br /&gt;
* [https://twitter.com/yaleman43381258/status/1352825379724042240?s=20 3D printed stand] from [https://twitter.com/yaleman43381258 @yaleman43381258]&lt;br /&gt;
* [https://twitter.com/swagbadge2021/status/1352810977855590400?s=20 Badge power] with LiPo&lt;/div&gt;</summary>
		<author><name>Nicola</name></author>
	</entry>
</feed>