Skip to content

Latest commit

 

History

History
76 lines (72 loc) · 4.2 KB

TODO.md

File metadata and controls

76 lines (72 loc) · 4.2 KB

TODO

  • Need to handle the initialization of all non-generic properties via a wizard or something
  • Improve memory use wrt JSON parsing (ParamStream is a memory hog, array + JsonBuffer, when actually JsonBuffer could be used right away as a sink for a stream in httpGet and httpPost)). + prefer heap (big) over stack (4k), i.e. switch from heap String json = readData(cocktailDataPath); StaticJsonBuffer<2000> jsonBuffer; JsonObject& root = jsonBuffer.parseObject(json); to stack

DynamicJsonBuffer jsonBuffer(bufSize);
File myFile = SD.open(cocktailDataPath); JsonObject& root = jsonBuffer.parseObject(myFile);

DONE

  • Measure currents: 3.5 mA used only by a connected black LCD, otherwise measurements on deep sleep mode is ~ 0.3 mA, ~130 mA when alive
    • This means: LIFE_HOURS = BATTERY_mAH / (ALIVE_PERC * 130 mA + SLEEP_PERC * 0.3 mA)
    • Example : LIFE_HOURS = 2800 mAH / (0.015 * 130 mA + 0.985 * 0.3 mA) = 1247H = 52 days (one minute every hour)
  • Found 3.5 mA used only by a connected black LCD, need to find a command to switch it off -> does not exist, seems LCD is not appropriate for low power mode
  • Make README mention main4ino main server
  • Mention deep sleep mode (in progress)
  • Mention auto-update for firmware
  • The LED that collides with the deepsleep mode should not be used to avoid problems
  • Package electronics without breadboard
  • Add smoke test that includes a whole architecture (to ensure it goes smootly for 100 cycles)
  • Find better alternative to scripts and replace them (simulator, format, ...) < won't do
  • Make body be able to call ifttt event in a pose
  • Improve simulator
  • Add one-shot timing setting
  • Share settings between uploader and simulator
  • Make a good pass and fix data types (avoid char, use better uint8 for instance)
  • Fix warnings
  • Improve documentation (use tables when convenient)
  • Add a simulator
  • Create script to set up wifi parameters for the first time.
  • Version the docker images
  • Add a move where you show a random fortune message -> Done (Quotes)
  • Add repeat for routines -> Won't do
  • Allow to combine moves (first move 0, then move 1 x 2 times) -> Won't do
  • Create a way to ease the image creation -> spreadsheet
  • Make key for WIFI pass encryption configurable
  • Tell the WIFI & pass you should set up in your hotspot phone for botino to access the internet.
  • Tell the name & chip ID during the init.
  • Make the botino auto-document itself by publishing the instructions to a page -> Too complex, better simply improve the README.md
  • Allow to define new images via API
  • Set more meaningful default values -> Not clear after 2 weeks I wrote it, discarding
  • Make button execute a given configurable move too!
  • Improve extensibility of the amount of routines (today it's too much work)
  • Regularly reinitialize LCD (too fragile for now) -> Not really needed if everything is well connected as now
  • Make the servo startup smoothly
  • Support button
  • Add a pose where everything goes off (arms down, face off, lights off, fan off)
  • Add more meaninfgul routine documentation (wXX)
  • Make a collection of routines to be readable
  • Check why body.v0 routine gets limited to a few poses (rather than lots as expected) -> SerBot macro value
  • Rename poses so that they are more meaningful
  • Modify arms so that it receives a 0-9 value for each arm
  • Figure out wifi setup
  • Use 3rd char for poses
  • LCD messages size can be controlled
  • Make both arms operate simultaneously
  • Send logs over the network
  • Show more KPIs about the internals (as freeheap) in the logs
  • Make all images have black background for consumption
  • Make easier the image creation
  • Improve the API regarding moves: if HAPPY, then allow to have a full control on a move of the arms and the faces used
  • Make the servo control more stable (sometimes it is laggy)
  • Put all Buffer in Buffer.h so that can use Buffer for any N
  • Put Configurables & Actors into Actors
  • Add a Buffer.sprintf("%d",s) for Buffer that is overflow-safe
  • Refactoring on Bot & friends to remove configurables totally (API otherwise is confusing)
  • Fix the position of the servo
  • Create a library with standard reusable actors (Led, Arm, Lcd)
  • Fix the entangling of the physical arm threads (separate physical channels for cables, and threads in main physical body)