Skip to content
Barry Carter edited this page Mar 13, 2017 · 6 revisions

Welcome to the FreeRTOS-Pebble wiki!

TODO

hw

  • bluetooth
  • bluetooth stack
  • sniffing tools?
  • implement flash driver fully
  • gyro + accel
  • finish i2c device driver. expost all layers above
  • tie into backlight on and calibrate that stuff
  • power ic
  • while I know what it is setting, it would be nice to understand and not monkey see monkey do
  • reverse the main flash rom for this init sequence. current one does bootloader. is it different?
  • bootloader also inits some pins that I don't know about yet. Figure it out (Kratz9?)
  • power saving
  • display
  • still getting that weird draw artifact like it's not powered on properly. Maybe its the backlight becuase of the tint. hmm. test that, try turning the backlight off
  • i'm sure we can draw faster. push the FPGA
  • weird pixel offset. Should I draw more columns? qemu has the border columns stuff. to investigate
  • change dma for display to send one column at a time to save ram
  • fix display driver mutex unlock (although it can still queue another)
  • compass
  • meh but ok
  • test vibrate driver
  • rewrite it more like to support variable intensity
  • tie vibrate into either tim12 chb or tim3 for intensity. maybe tie it into two timer channels for intensity and pattern in one shot
  • backlight
    • init and fadeout fix
    • backlight on with menu press
    • better on and off ranges
  • more fine tuning of ambient sensing when bl is off
  • attibute pack on structs
  • inline some funcs to save stack depth
  • implement pbl vibrate api
  • method locks
  • implement pebble mpu changes + api vtable for apps
  • commonise the stm between hardware platforms (i2c is a good cross version)
  • reorg drivers for absolute clean separation between layers
  • fix var naming
  • move the firmware and FPGA dump into another repo as subs
  • fix headers. move private funcs to .c
  • fix conventions. expose module_function and hw_module_function and levels
  • check queue lengths to save some bytes
  • optimise some iterators and all tasks. can we commonise some tasks?
  • buttons
  • finish mutli click support
  • optimise button recogniser logic (use a hardware timer or two maybe)
  • double check what buttons need to tie into what in the default handlers (up/down, long configure etc)
  • get optimal button debounce time. also see if a hardware timer is faster.../ smaller/ etc
  • organise ram and code layout (fpic?)
  • finish the flash->ram loader with entry points
  • the whole system status struct and systemsettings struct. do we need this?
  • rtc. implement the rest of the notification time scales (year month)
  • reference counting on peripheral usage so we can shut some down when not required.
  • saving settings to flash (where in the rom?)
  • figure out flash layout/filesystem/etc
  • get rid of uGUI (it only does font at the mo)
  • clean it all up

features

  • system settings in system app
  • sub menus
  • scroll layers
  • fonts
  • resources
  • resource loading
  • image support
  • png
  • notification
  • window popups
  • winow popup obscuredarea handling
  • animation
  • a crapload of other apis
  • all that sleep and health stuff

other

  • fix rebble logo and rebble image generator (XDJackieXD)

whimsey

  • interpreter shell for debugging over smartstrap
  • dma of the flash image to the FPGA for faster boot (meh)
  • re-implement a new bootloader once we have all periphs mapped
  • rewrite cordinate system to allow deciamls in drawing
  • vector rasteriser
  • menu animation tetris blocks
Clone this wiki locally