Commit Graph

43 Commits

Author SHA1 Message Date
true 503eea3da8 fix RGB order... oops 2024-11-01 14:35:16 -07:00
true a7fb413655 added bus state tracking, hopefully fixed some clock stretching on soft i2c slave 2024-10-30 19:52:09 -07:00
true 52435ea3f0 more i2c slave work
this code is still surely not working, is incomplete, and guaranteed has problems
2024-10-30 19:08:31 -07:00
true 6be6cee2ac some boilerplate and notes about i2c slave 2024-10-30 13:57:32 -07:00
true 33a42edc7f configure unused GPIO, flash lightsense LED during boot for testing 2024-10-28 08:05:03 -07:00
true 1bc5289f4a implemented reading sub MCU version number 2024-10-28 00:24:16 -07:00
true 2eeb952b10 implemented auto-dim, fixed up idle / sleep stuff 2024-10-27 04:35:55 -07:00
true ea3f6ae9e0 implement factory reset, fix eeprom write routine 2024-10-27 04:14:37 -07:00
true 36e091a949 clean up menu code; use clearer naming 2024-10-27 00:15:54 -07:00
true 917d2b4361 fix upright button mapping scroll buttons inverted 2024-10-26 20:58:59 -07:00
true 236359d7e2 buttons remap when oled is rotated
the oled display rotates when the addon is physically rotated, so that menus are upright. now the user buttons will remap as well. this was done in the old code...or so I thought, but I can't find the code that did it.
2024-10-26 20:22:42 -07:00
true 390528071c fix config saving corrupted
was not waiting for eeprom to be ready before trying to write again, causing failure. was also a bug in the write routine.
2024-10-26 20:10:31 -07:00
true 25dc735560 small cleanup and fixes 2024-10-26 19:44:49 -07:00
true 2eda3f2ebb fix "wiggle" name mode; break out rotate for possible future use in other modes 2024-10-26 19:44:34 -07:00
true 279c7d3c68 implement idle mode, re-implement missing accelerometer movement code 2024-10-26 18:35:26 -07:00
true e309c01d47 add basic readme 2024-10-26 18:34:14 -07:00
true d1e8c49c54 options menu clarify; factory reset menu item placeholder 2024-10-26 17:09:58 -07:00
true 82c428e1b9 added nybble infotext to rgb program hex editor, fixed color editor 2024-10-26 16:51:19 -07:00
true 5abf09b69d fix RGBLED offsets 2024-10-26 06:16:13 -07:00
true 0d9e96180a implemented demoscene waving text mode 2024-10-26 05:25:34 -07:00
true 4d8e037000 fixed aw20xxx gain not updating correct registers due to wrong offset used 2024-10-26 02:12:00 -07:00
true 002de13655 re-enable peripherals, update about menu a little bit, add two fonts 2024-10-26 01:04:48 -07:00
true ee4a12c9c5 finally fixed the last known bit of i2c corruption
needed to implement clock stretching on start/stop routines too.

program tick timer on sub MCU doesn't really need to be highest priority so made i2c higher priority.
2024-10-26 00:13:53 -07:00
true 0a940b692d some button fixes
buttons are now somewhat working properly, but register 0x12 (button debounce value) keeps getting overwritten / corrupted. once this is fixed then buttons will likley work properly.
2024-10-25 23:17:12 -07:00
true d6026c38ff update menus 2024-10-25 23:15:08 -07:00
true 65a826bd46 fix set sub MCU interrupt clear 2024-10-25 23:14:39 -07:00
true 8d82d83568 fix i2c clock stretching, bit timings; speed up i2c; accelerometer working; many other fixes
fixed i2c routine usage throughout the code.
clock speed increased as rendering was taking too long.
fixed aw20xxx LED enable code (I think).
now handling buttons, though still having some problems.
running even more code from RAM.
using less EEPROM for config as we don't need it. hell we don't even need the pages we have.
2024-10-25 17:27:46 -07:00
true 64ce976b97 i2c master seems to be working
OLED is now rendering "Supercon" text.

Moved several functions to RAM to speed up operation. There is a significant speed hit when executing from Flash on this MCU.
2024-10-24 19:36:11 -07:00
true 261f5bdfbf ignore accelerometer if it isn't found 2024-10-24 17:23:51 -07:00
true bc300e522a main program tick interrupt now works
CH58x/CH59x only has one main system clock and all timers are referenced to this clock. Other than watchdog, there's only one timer that runs independently: RTC. Thankfully the RTC has a mode to interrupt at rates faster than one second. this is being used for the program tick interrupt.

Also added OLED initialization code since that was forgotten before.
2024-10-24 17:22:20 -07:00
true 58f357334a add missing MRS project files 2024-10-20 02:10:55 -07:00
true 16ffde1077 soft i2c work
added a check to soft i2c master for clock stretch on write.

mostly implemented soft i2c slave.
2024-10-19 19:14:33 -07:00
true 904fcf65b4 i2c master cleanup; work in progress for i2c slave support 2024-10-17 21:09:34 -07:00
true db44d3dbab get oled, menus, rgbled, and most everything else building
will it work? almost certainly not. but it does build cleanly now.

lightsense is stubbed for the time being.

rgbled does _not_ render the programs. I am going to redo how this works. the data (which will be empty) is sent though.
2024-10-16 00:10:05 -07:00
true 9afb5e6ecd fix issue with AW20054 support
the module originally made assumptions about devices always using every row, even though code was in place to sort of look for that. Hopefully fixed those bugs so AW20054, which only has 9 rows, or any other chip when using less than 12 rows will work.
2024-10-16 00:07:58 -07:00
true 8a5e11592c add vendor accelerometer library
vendor accelerometer library is added, and initial code to use it has also been adapted from an example. this is incomplete; need to implement interrupts if using them. for now this may be just enough to work in polled mode.
2024-10-15 04:24:45 -07:00
true caaa30d67e more menu fixups 2024-10-15 04:23:17 -07:00
true d33cc2f775 add eeprom support, user config loading 2024-10-15 04:23:00 -07:00
true 6a4284176b initial import and cleanup of WP DC29 nametag code
many things are different from WP DC29, including but not limited to:
- different vendor and core
- different peripherals
- no external serial number MCU, now have different i2c-communicated MCU
- different accelerometer
- different RGBLED count
- RGBLED controller instead of PWM controller
- soft I2C instead of hard I2C
- I2C EEPROM instead of SPI Flash

code has been "cleaned up" and some work done for porting. the code "builds" but most of the render code isn't actually used yet. there's still a lot to fix between render, UI, and incomplete implementations.
2024-10-13 20:12:28 -07:00
true 2b31b1b6b3 ch592 cleanup 2024-10-13 03:02:27 -07:00
true b1bca1012f initial soft i2c routines written; AW20xxx code copied in
completely untested. i2c delay cycles are at best a guess.
2024-10-13 02:53:18 -07:00
true b6582a599a Englishify some of the CH592 StdPeriphDriver 2024-10-12 22:53:04 -07:00
true 576026f771 initial commit of work in progress code
The V003 sub MCU code is mostly initially written, though needs to be tested and fixed.
2024-10-12 21:59:33 -07:00