From 6f946bae8c7771f60b756c5e147f11817c3bd6ff Mon Sep 17 00:00:00 2001 From: true Date: Sat, 11 Feb 2023 07:10:29 -0800 Subject: [PATCH] Add old TODO.txt This needs to be sorted, updated and Markdown'd. --- TODO.txt | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 TODO.txt diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..b609c4d --- /dev/null +++ b/TODO.txt @@ -0,0 +1,116 @@ +attiny88: +- get bootloader working + +[x] test i2c comms +[ ] test lightsensor sensitivity setting +[ ] test all commands + + +stm32l100: +- get usb comms working, to bootload attiny88 +- get bootloader working or documented + +[x] temp calibration (201407xx) +[x] lcd menuing + [x] (20140727: mostly done, still in progress) + [ ] menus: add name and hex value for programs editor + [ ] maybe an option for names longer than 8 characters? +[x] bone programs +[x] mic circuit / adc reading +[x] battery voltage reading +[x] scaler for lights - add to print function and have some per-mode defines for scaling levels + do shit like right shift 7 for white in darkness mode + figure out a way to smoothly transition between modes, maybe do both then + calculate how far between switching we are to figure out a value + +[x] pattern/programs menu: + [ ] static (runs a single program) + [ ] iterated (runs up to X programs sequentially after a delay) + [ ] random (runs up to X programs, selected randomly after a delay) + [ ] delay (static delay of X seconds, or random delay) +[ ] patterns and programs are added to iterated / random menus by type, index, and with their settings + +[x] add a settings reset konami code + (sort of. hold menu during boot to reset to defaults, hold menu+ok to reset name too) + +[/] characterize attiny led reading shit (sort of done) +[/] light meter: characterize? calibrate? figure out sensitivity? +[x] light meter: add sensitivity options to menu and / or settings? +[x] light meter: add auto-sensitivity? + +[ ] mic: get percentage, log conversion needed? +[ ] mic: make calibrator + +[ ] programs: make bone programs slave to the skull programs - like calling with the same settings, etc +[ ] programs: "load defaults" for each program (making it easier to fuck with) +[ ] programs: either nicer configuration, or help menus describing shit? +[ ] programs: make a "Run only X program" setting that runs program X, enabled or disabled, + for all LED sets. useful for setting up a program as a one-off. + Or maybe force for each one, or force all or something... + +[ ] bones: implement more programs + +[ ] eyes: implement more programs +[x] eyes: add color support for candle flicker program +[x] eyes: add solid color with random flashes other color program (options set how often to flash) +[ ] eyes: add solid plain color program (or color ramp+reset? randflash does solid color already) +[ ] eyes: add rainbow program +[ ] eyes programs: setting color to 0x010101 will load the favcolor instead + +[ ] bug?: attiny shit doesn't seem to update very often. should be 4x/sec, seems more like 2. why? + this is for things like the tempsensor and lightsensor, I think i2c is too busy + can maybe fix with only-update-as-necessary LCD routines? + +[x] buttons: only next and prev should repeat + +[x] lcd shit: set lcd variables to all spaces on startup? (so we can use CGRAM 0x00) + +[x] lightscaler: fix bug where when lightscaler is turned off, no lights work + (not sure but I think I fixed this) + +[ ] shutdown: customizable message? or different settings (threekings, name, custom) +[x] shutdown: needs to tell the attiny to turn off. + attiny can be put into a deep shutdown mode which turns off everything + except for TWI (in other words, i2c). + done but no idea if it works. + +[ ] battery: add a battery-low notifier? +[ ] battery: add a battery-low mode (no LEDs)? + +[x] profiling: fix tim6_count shit (20140727) + +[x] infopirate: make it work at least with a fucking static display +[x] infopirate: make a fixed static mode that can be cycled through +[ ] infopirate: pressing a button advances to the next display type +[ ] infopirate: set mode (stepped, random) +[ ] infopirate: set enabled / disabled views +[ ] infopirate: editable shit? like editable text? or only hardcoded? +[ ] infopirate: add battery voltage and temperature to cycle, maybe at the end? + +[x] eeprom: implement settings save/restore (20140727) +[ ] eeprom: separate programs config from settings +[ ] eeprom: make programs load to RAM when editing, then save back to EEPROM when done +[ ] eeprom: make programs look at data in EEPROM rather than data in RAM (will save ~1K RAM) + +[ ] editor: add bit-editor to hex-editor? + +[ ] program sets: remove dwell time, and have a "program" manager that + sets programs for LEDs in sync and in X order? allows not requiring + duplicating programs if duplicates are necessary? + +[ ] i2c: in lieu of a proper interrupt-driven I2C, maybe I could do an + interrupt-resuming I2C. the normal waits in use now could put + the CPU to sleep, and a watchdog could make sure the MCU wakes + up enough to detect a timeout (and maybe use SysTick to determine + sleep time). This would save a bit of power and would be easier + than a fully interrupt-driven I2C on STM32. +[ ] i2c: basically just improve this shit + +[ ] mic: shout at badge to have it change modes or something? + + +badge overall: +[x] write down all actual used values (wrote part designators on bags; good enough) +[x] sort out used values into bag + +[ ] find out why there is such high power consumption when doing nothing \ No newline at end of file