/HackerHotel-2019-esp32-firmware

Legacy Badge.team firmware for HackerHotel 2019

Primary LanguageCOtherNOASSERTION

Badge.team ESP32 Firmware

This repository contains the firmware for the Hackerhotel 2019 badge as it was used during the event.

All future updates will be made using the Badge.team ESP32 platform firmware, this repository is archived.

Resources

Copyright (C) 2017-2019 Badge team. Using Espressif Audio Development Framework Copyright (C) 2018 Espressif Systems. Based on template application for Espressif IoT Development Framework (ESP-IDF). Copyright (C) 2016 Espressif Systems, licensed under the Apache License 2.0 as described in the file LICENSE.

Codacy Badge Build Status

Build instructions

To build the basic firmware:

  • make menuconfig
  • make

Debian prerequisites

sudo apt-get install libncurses5-dev flex bison gperf python-serial libffi-dev libsdl2-dev libmbedtls-dev perl

Compiling and flashing

git submodule update --init --recursive
source set_env.sh
make defconfig
make -j5

Optional configuration

make menuconfig

Interacting via serial

make monitor

Building on OSX

First you have to replace the linux toolchain:

  • download the mac toolchain from this page
  • rename the linux toolchain: mv xtensa-esp32-elf xtensa-esp32-elf-linux
  • untar the mac toolchain: tar zxf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-61-gab8375a-5.2.0.tar.gz

Then install the CP2102 usbserial driver

In the sdkconfig file change this line:

CONFIG_ESPTOOLPY_PORT="/dev/tty.SLAB_USBtoUART"

MicroPython

import badge
badge.eink_init()
badge.display_picture(0,-1)
import ugfx
ugfx.init()
ugfx.demo("HACKING")
ugfx.clear(ugfx.BLACK)
ugfx.thickline(1,1,100,100,ugfx.WHITE,10,5)
ugfx.box(30,30,50,50,ugfx.WHITE)
ugfx.string(150,25,"STILL","Roboto_BlackItalic24",ugfx.WHITE)
ugfx.string(130,50,"Hacking","PermanentMarker22",ugfx.WHITE)
len = ugfx.get_string_width("Hacking","PermanentMarker22")
ugfx.line(130, 72, 144 + len, 72, ugfx.WHITE)
ugfx.line(140 + len, 52, 140 + len, 70, ugfx.WHITE)
ugfx.string(140,75,"Anyway","Roboto_BlackItalic24",ugfx.WHITE)
ugfx.flush()

More info on the MicroPython badge features