haws
Project submission for https://www.hackster.io/contests/Healthy-Spaces-with-AWS/
Photo by https://unsplash.com/@flyd2069
Motivation
Learning: Work with micropython and especially the ATECC608
- as I didn't really use micropython before -> learn the differences to python and how to use micropython in embedded
- as the ATECC608 can provide much value for trustable IoT solution -> use also in other projects
Idea
Use the edukit for "proof of ownership" in a login/logout scenario, specifically entering/leaving a due to covid restrictions-controlled space.
- The edukit including the ATECC608 would be the unforgeable key
- AWS backend provides the lock mechanics
- A frontend (mobile Flutter app) would provide the door handle
Time plan
> Official extended timeline
- Contest begins: June 15, 2021 at 8:00AM PT
- Applications for hardware close: June 30, 2021 at 12:00PM PT
- Hardware recipients announced: July 2, 2021 at 8:00PM PT
- Submissions close: September 19, 2021 at 8:00PM PT
- Winners announced by: Sep 30, 2021
> Official previous timeline
- Submissions close: September 19, 2021 at 8:00PM PT - Month
Movement of "Submissions close": https://www.hackster.io/contests/Healthy-Spaces-with-AWS/discussion/posts/8585#challengeNav
> Time estimation
- Experience with Python and with IoT/embedded devices exists
- Experience with Flutter exists
Calculating time for a minimal viable solution/proof of concept
- Estimated in application 6h/w.
- Hardware available from mid July
- Submission deadline as set to mid August at time of application
- Estimated hours round about 6 weeks a 6h/w ~ 36h
Results
After going through some of the examples started digging into micropython on the edukit
- going through the source
- looking at other resources
- It took some time (as said, did not work much with micropython before) to be really sure that the given Repo https://github.com/m5stack/Core2-for-AWS-IoT-EduKit does not provide the possibility to work with micropython with the ATECC608
- --> Discussion Forum
- New Repo https://github.com/m5stack/Core2forAWS-MicroPython was made available
- Problems with the micopython for edukit repo
- checked multiple times to make sure that not my lack of experience with micropython combined with own mistakes are the problems
- opened an issue and then another one -> repo was finally fixed to the point where the compilation works as described
- Problem with the touch display with the compiled micropython from the given repo
- checked multiple times to make sure that not my lack of experience with micropython combined with own mistakes is the problem
- opened third issues, not resolved as time of writing
Anyway, by time of writing this the estimated/available time for the project is used up.
My impression is, that I may have been the only participant using this micropython edukit adaption.
I will look into finalizing the project later when https://github.com/m5stack/Core2forAWS-MicroPython is working and there is spare time.
> a look at the micropython edukit adaption
My impression is, that the https://github.com/m5stack/Core2forAWS-MicroPython is not in a clean state.
Looking as the included modules in the micropython REPL
>>> help('modules')
Edukit esp32 uasyncio/core uos
M5Library flashbdev uasyncio/event upip
__main__ framebuf uasyncio/funcs upip_utarfile
_boot gc uasyncio/lock urandom
_onewire inisetup uasyncio/stream ure
_thread machine ubinascii uselect
_uasyncio math ubluetooth usocket
_webrepl micropython ucollections ussl
apa106 mpu6886 ucryptolib ustruct
atecc608x neopixel uctypes usys
axp192 network uerrno utime
bm8563 ntptime uhashlib utimeq
builtins onewire uheapq uwebsocket
cmath sk6812 uio uzlib
dht touch ujson webrepl
ds18x20 uarray umqtt/robust webrepl_setup
esp uasyncio/__init__ umqtt/simple websocket_helper
Plus any modules on the filesystem
Looking as the included modules in Edukit in the micropython REPL
>>> import Edukit
>>> Edukit.
__class__ __name__ __file__ M5Library
touch axp192 pmu lcd
_touch btn_left btn_middle btn_right
>>> Edukit.M5Library.
__class__ __name__ I2S Neopixel
TFT
Looking as the included modules in top level M5Library in the micropython REPL
>>> import M5Library
>>> M5Library.
__class__ __name__ I2S Neopixel
TFT
My impression as a micropython beginner is, that the modules are not organized clearly:
- part of the hardware components in top level modules
- part of the hardware components in the edukit module
- part of the hardware components in the M5Library module
- M5Library module is in two places (top level and in edukit)
- Unclear named hardware modules:
-- neopixel in modules
-- Edukit.M5Library.Neopixel in Edukit.M5Library.
The edukit hardware, especially the ATECC608, is interesting in generaly and clearly offers a lot of opportunities for developing with it and to develop it and its sdk further - to use it for *rapid* prototyping the SDK at https://github.com/m5stack/Core2forAWS-MicroPython would use more polishing as time of writing.
UPDATE: Looking at the repo in 2022 shows that the development seems to have terminated. "NOTE: This repo is limited in functionality, and is a result of customer requests to have an AWS IoT referenceable example utilizing the ATECC608 in MicroPython." => Either use ATECC608 and have other problems or don't use ATECC608.
The core idea of the project could not be implemented in the given time frame due to missing/inclomplete support one central hardware component. I spent more time on circling around the not supported hardware issue then planned for building the solution.
Comments
Please log in or sign up to comment.