Difference between revisions of "SwagBadge2022 Installation"

From Open Hardware Miniconf
Jump to: navigation, search
(Created page with "== Aiko Engine for microPython == '''GitHub repository:''' [https://github.com/geekscape/aiko_engine_mp https://github.com/geekscape/aiko_engine_mp] : MicroPython Firmware f...")
 
(Resources required)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Aiko Engine for microPython ==
+
= Overview =
  
 
'''GitHub repository:''' [https://github.com/geekscape/aiko_engine_mp https://github.com/geekscape/aiko_engine_mp]
 
'''GitHub repository:''' [https://github.com/geekscape/aiko_engine_mp https://github.com/geekscape/aiko_engine_mp]
  
: MicroPython Firmware for the SwagBadge 2021 (''master'' branch) and SwagBadge 2022 (''swagbadge'' branch)
+
Example firmware for the SwagBadge is written in MicroPython, so the badge will require MicroPython to be installed first.
 +
 
 +
MicroPython firmware for the SwagBadge 2021 (''master'' branch) will run on the SwagBadge 2022.  However, the color LCD screen is not yet supported.  Currently, this is an easy way to test networking, MQTT and play with [https://github.com/geekscape/aiko_services Aiko Services]
 +
 
 +
A work-in-progress firmware (''swagbadge_2022'' branch) supports the SwagBadge 2022 color LCD screen.  However, the LCD screen driver is allocating significant chunks of memory, causing the overall application to crash.  So, networking, MQTT and Aiko Services have been temporarily removed, whilst a design and implementation refactor occurs.
 +
 
 +
= Resources required =
 +
 
 +
The following sequence will fetch all the resources required including Aiko Engine and MicroPython. This should only need to be done once.
 +
 
 +
Create a directory to keep everything in, and change into it:
 +
 
 +
  mkdir SwagBadge2022
 +
  cd SwagBadge2022
 +
 
 +
Get Aiko Engine:
 +
 
 +
  git clone git@github.com:geekscape/aiko_engine_mp.git
 +
 
 +
Get Aiko Services, which has the SwagBadge examples. We need the swagbadge_2022 branch:
 +
 
 +
  cd aiko_engine_mp
 +
  git checkout swagbadge_2022
 +
  cd ..
 +
 
 +
Create a virtual Python environment for Aiko use, and activate it:
 +
 
 +
  python3 -m venv aiko_env
 +
  . aiko_env/bin/activate
 +
 
 +
Install the tools we need:
 +
 
 +
  python3.9 -m pip install --upgrade pip  # To prevent it complaining every time!
 +
  pip install esptool mpfshell
 +
 
 +
Create a directory to hold the firmware:
 +
 
 +
  cd aiko_engine_mp
 +
  mkdir firmware
 +
 
 +
= MicroPython installation =
 +
 
 +
Download version v1.17 of the MicroPython binary for ESP32 from here: [https://micropython.org/download/esp32/ micropython.org/download/esp32/]
 +
 
 +
The SwagBadge 2022 currently requires microPython version 1.17.
 +
 
 +
Move the downloaded binary into the "firmware" directory that you created above.
 +
 
 +
Plug in your ESP32 device and make sure you can see it, e.g ls -l /dev/tty.* will show a serial device file like /dev/ttyUSB0 or /dev/tty.wchserial1410.
 +
 
 +
Export the serial port to an environment variable, so mpfshell can use it, e.g:
 +
 
 +
  export AMPY_PORT=/dev/tty.wchserial11410
 +
 
 +
where the device is the one shown by the ls -l command above.
 +
 
 +
If you just did the initial setup you should already be in the "aiko_engine_mp" directory. If not, change into it. Then:
 +
 
 +
  ./scripts/flash_micropython.sh                        # Flash MicroPython onto the badge
 +
 
 +
= Aiko example installation =
 +
 
 +
With MicroPython on the badge, load the example script:
 +
 
 +
  ./scripts/mpf_script.sh ./scripts/aiko.mpf

Latest revision as of 00:36, 13 March 2023

Overview

GitHub repository: https://github.com/geekscape/aiko_engine_mp

Example firmware for the SwagBadge is written in MicroPython, so the badge will require MicroPython to be installed first.

MicroPython firmware for the SwagBadge 2021 (master branch) will run on the SwagBadge 2022. However, the color LCD screen is not yet supported. Currently, this is an easy way to test networking, MQTT and play with Aiko Services

A work-in-progress firmware (swagbadge_2022 branch) supports the SwagBadge 2022 color LCD screen. However, the LCD screen driver is allocating significant chunks of memory, causing the overall application to crash. So, networking, MQTT and Aiko Services have been temporarily removed, whilst a design and implementation refactor occurs.

Resources required

The following sequence will fetch all the resources required including Aiko Engine and MicroPython. This should only need to be done once.

Create a directory to keep everything in, and change into it:

 mkdir SwagBadge2022
 cd SwagBadge2022

Get Aiko Engine:

 git clone git@github.com:geekscape/aiko_engine_mp.git

Get Aiko Services, which has the SwagBadge examples. We need the swagbadge_2022 branch:

 cd aiko_engine_mp
 git checkout swagbadge_2022
 cd ..

Create a virtual Python environment for Aiko use, and activate it:

 python3 -m venv aiko_env
 . aiko_env/bin/activate

Install the tools we need:

 python3.9 -m pip install --upgrade pip   # To prevent it complaining every time!
 pip install esptool mpfshell

Create a directory to hold the firmware:

 cd aiko_engine_mp
 mkdir firmware

MicroPython installation

Download version v1.17 of the MicroPython binary for ESP32 from here: micropython.org/download/esp32/

The SwagBadge 2022 currently requires microPython version 1.17.

Move the downloaded binary into the "firmware" directory that you created above.

Plug in your ESP32 device and make sure you can see it, e.g ls -l /dev/tty.* will show a serial device file like /dev/ttyUSB0 or /dev/tty.wchserial1410.

Export the serial port to an environment variable, so mpfshell can use it, e.g:

 export AMPY_PORT=/dev/tty.wchserial11410

where the device is the one shown by the ls -l command above.

If you just did the initial setup you should already be in the "aiko_engine_mp" directory. If not, change into it. Then:

 ./scripts/flash_micropython.sh                        # Flash MicroPython onto the badge

Aiko example installation

With MicroPython on the badge, load the example script:

 ./scripts/mpf_script.sh ./scripts/aiko.mpf