Difference between revisions of "Proj-2014-2015-ESP8266/Scrum"

From air
Jump to navigation Jump to search
Line 1: Line 1:
 
== Project Description ==
 
== Project Description ==
   
[http://air.imag.fr/index.php/Python_sur_ESP8266| '''Python on ESP8266''']
+
[http://air.imag.fr/index.php/Python_sur_ESP8266 '''Python on ESP8266''']
 
   
 
== User stories ==
 
== User stories ==

Revision as of 14:50, 17 March 2015

Project Description

Python on ESP8266

User stories

1. Internet of Things conceptors will want to develop with python on the ESP8266, and will want to be able to use every feature of it.

so as to fulfill their needs we have to proceed on these tasks:

    • Manage to connect and flash ESP8266 module from USB connection without third party card
      • Turn USB 5V connection to serial 3.3V
      • Understand procedure for flashing the ESP8266 ROM
    • Understanding the SDK devoted to the ESP8266:
      • Look for code already made and documentation
      • Make test programs
    • Make shedskin able to compile the SDK:
      • Detect conflics
      • Define dependencies between C and C++ modules.
      • Produce a Makefile for the project
    • Produce some packages so as to implement basic functions of the SDK:
      • Make a sample module such as Hello World
      • Make the adequate modules in shedskin to create Python functions for the entire SDK.
    • Generate documentation for the functionnal code
      • Use Sphinx documentation generator

Product Backlog

User Story Tasks Priority Time Allocated
As an Internet of Things conceptor, I want to develop with python on the ESP8266 & I want to be able to use every feature of it.
Manage to connect and flash ESP8266 module from USB connection without third party card 100 20h
Understanding the SDK devoted to the ESP8266 50 30h
Make shedskin able to use the SDK 80 20h
Produce some packages so as to implement basic functions of the SDK 50 20h
Generate documentation for the functionnal code 10 5h


Task over when

We have a functionnal prototype


Sprints

Sprint 1


Sprint duration: 1 mounth

Sprint goals

Manage to connect module from USB connection without third party card

Sprint Backlog

First we followed several tutorials on Arduino based connection:

  • First contact with ESP: 10h
  • Handling Arduino and dedicated IDE: 8h
  • Arduino connection to ESP: 10h


Next we tried several other methods of communication with another board, the STM32F4 Discovery:

  • Reading STM documentation: 10h
  • Micropython setup on STM: 10h
    • Python self formation: 5h
  • Handling nodeMCU: 5h


Then we made a direct link through an usb to serial module:

  • Seek help from fablab analysing pin mapping and voltage from a RS232 -> USB converter cable: 3h
    • concluded on the imposibility to use this piece of hardware, providing 5V only

it would kill the ESP.

  • Demand and Handling time for an FTDI 3.3V Serial adapter: 1 week delay + 2h
    • works fine, we now have the possibility to connect via serial console.

Writing reports:

  • Handle fritzing for schematics: 1h
  • Writing: 3h


Sprint 2


Sprint duration: 2 weeks

Sprint goals

Manage to flash ESP8266 ROM to execute external code

  • Handle direct connection
  • Select compiling toolchain
Sprint Backlog

Study of past year project:

  • Understanding the project: 5h
    • Presentation of Shedskin compilator (python to C++ cross compiler)
    • Presentation of the Xtensa toolchain (dedicated gcc recompiled for ESP SDK compiling)
    • Seeing the conclusions on garbage collection and memory limitations we added a research objecctive on garbage collecting to see if it is possible to implement a minimal garbage collector for the ESP
  • research on python -> C/C++ compilers : 5h
    • Dead end: Try to implement C/C++ -> python tranlator using python AST: put on next sprint
  • research on garbage collectors: 15h

Manage to interact with out of the box ESP:

  • Look for ESP documentation: 2h
  • Use basic wifi function through serial console: 7h

Toolchain choice & setup: 9h

Writing reports: 2h


Sprint 3


Sprint duration: 1 mounth

Sprint goals

- Understanding the SDK devoted to the ESP8266 - Produce some packages so as to implement basic functions of the SDK - Mid term presentation

Sprint Backlog

Webpage for the project: 4h

Mid term slideshow presentation: 2h

Dead end on Python -> C++ compiling: Try to implement C/C++ -> python tranlator using python AST:

  • test python AST module: 15h
  • python AST optimiser: 2h

Research on ESP ecosystem (SDK, documentation, basic code):

  • Lookup: 10h
  • Understanding C minimal code: 20h
  • Bug resolving in C basic code comming from toolchain: 30h

Handling shedskin:

  • Minimal test examples: 5h
  • test modules for shedskin: 10h and then reported to next sprint due to deadlock

Writing reports: 2h

Sprint 4


Sprint duration: 3 weeks

Sprint goals

compilation for ESP in C++ and then make python shedskin modules

  • module ESP: implement wifi calls
  • module LED: simple blinker
  • module serial: implement serial communication
Sprint Backlog

C++ ESP compilation