Barry Carter edited this page Apr 19, 2017 · 6 revisions
Clone this wiki locally

Welcome to the FreeRTOS-Pebble wiki!



  • bluetooth
  • bluetooth stack
  • sniffing tools?
  • implement flash driver fully. We now have partial support. You can read and write. No CFI commands for erase (i'm not brave enough to even test them)
  • 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 Well its backlight burn. Stock firmware does it too.
  • 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 Bug
  • 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?) (Danger zone)
  • figure out flash layout/filesystem/etc
  • get rid of uGUI (it only does font at the mo) Hello nGFX!
  • clean it all up


  • system settings in system app
  • sub menus
  • scroll layers
  • fonts
  • resources
  • resource loading
  • image support
  • png
  • bitmap layer
  • notification
  • window popups
  • winow popup obscuredarea handling
  • animation
  • That batshit insane looking bitmap animation sequence gubbins
  • a crapload of other apis
  • all that sleep and health stuff
  • App icons. And in menu


  • fix rebble logo and rebble image generator (XDJackieXD)


  • 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


New menu icons (or a nice set of icons would be good) App icons fonts New splash screen