profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/algernon/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

algernon/ergodox-layout 135

algernon's ErgoDox EZ layout

algernon/adderall 84

Hy on Adderall - a miniKanren implementation in Hy

algernon/elfeed-goodies 64

Various goodies for Elfeed

algernon/Akela 18

Animated Keyboardio Extension Library for Anything

algernon/dh-exec 13

Debhelper executable file substition helpers

algernon/emacs.d 12

My Emacs configuration

algernon/arduino-kbd-tap-dance 7

Multi-use keys for arduino-based keyboards

algernon/fluffy-broccoli 5

"Now Playing" bot for Mastodon

algernon/awesome-gtfo 4

An Awesome setup that gets the fuck out of your way

algernon/hydiomatic 4

The Hy Transformer

pull request commentCommunityGD32Cores/ArduinoCore-GD32

[draft] FlashStorage & EEPROM libraries

Squashed it all together and force pushed, everything should be up to date now, so I'm marking this as ready for review.

For reference, committing 1k to storage is about 6.8ms, perfectly good speed, considering commits should be reasonably rare.

algernon

comment created time in 2 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha e9c898bee2d60bafb06e4a49be9a155176af8390

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 2 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha 4bc120e25cfb11e983d069cbeea34d04b95eeae1

FlashStorage: Fix buffer population on begin Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 2 days

pull request commentCommunityGD32Cores/ArduinoCore-GD32

[draft] FlashStorage & EEPROM libraries

Pushed the latest version. As it turns out, we can't use fmc_word_reprogram to speed up writes, and using full page read/update/write cycles for small data is prohibitively slow. For this reason, we use a buffer of the size of the full storage: writes update this, read reads from this, and we only write it back to flash when calling .commit(). We also fill up the buffer with flash storage contents during begin().

I've tested this on a starter board, and everything seems to work fine, commit speed (at 10k storage) is perfectly fine, too. I still need to update the docs, however.

algernon

comment created time in 2 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Brian Cully

commit sha 74dc339be8def06886a4738ff866ac107beec198

Move assembler startup code into variants directory. When this code lived in the ‘core/gd32’ directory, all variants were being automatically compiled and linked in to the resulting ‘core.a’, which resulted in name collisions and symbols not resolving correctly for the target architecture unless you got lucky at link time. Moving the startup code into ‘variants’ resolves this issue, as only the code matching the variant currently in use is compiled and linked in.

view details

Brian Cully

commit sha 12e27c16f028679ff79d71e09d8aa86d828edb64

Move startup files into ‘system/startup’ from ‘variants’. This should help prevent duplication, as many different boards will have the same chip variety.

view details

Maximilian Gerhardt

commit sha 927aa521eb18362df841bfa861fde909324d838f

Merge pull request #36 from bjc/move-startup-to-variants Move assembler startup code into variants directory.

view details

unknown

commit sha 214a1d3510c31c54a8cb02ddf3d140a3c3cbfa11

Add startup folder to include path

view details

Gergely Nagy

commit sha 3893069d74b45005e9a3a397103da3b697a7043c

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 5681ca0277564d1c7bb65704eabb662796da6722

FlashStorage: Allow multiple instances, at different positions Instead of always placing the storage area at the end of Flash, allow repositioning it (but still default to the end). This makes it possible to have multiple instances of `FlashStorage`. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 56079e679b0bd08c8aabbd504a7058773e2ebef1

FlashStorage: Major rearchitecture Instead of writing directly to flash, buffer all writes in RAM, and only write to flash on `commit()`. This speeds up writes considerably, at the cost of using as much RAM as we use for flash storage. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 2f5413684b1dce0753693906053fb4ea09d48227

EEPROM: Set the default size to 4k A default size of a page or two (depending on the location of the storage) makes more sense than 10x the size of AVR. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 2 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha 6ac64450c5ec64bd358fe654bdff9e3030e29df9

FlashStorage: Major rearchitecture Instead of writing directly to flash, buffer all writes in RAM, and only write to flash on `commit()`. This speeds up writes considerably, at the cost of using as much RAM as we use for flash storage. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha b122265eae7fbb7c625edb028ff065047eb4ed26

EEPROM: Set the default size to 4k A default size of a page or two (depending on the location of the storage) makes more sense than 10x the size of AVR. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 2 days

push eventalgernon/gd32-wip-sketch

Gergely Nagy

commit sha 52cce603a0c90e575aafd34c1ce3567830a9a0b1

wip Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 3 days

push eventalgernon/gd32-wip-sketch

Gergely Nagy

commit sha 454425a847d850c9b3d1781c41bb84313ee6e5c0

wip

view details

push time in 3 days

create barnchalgernon/gd32-wip-sketch

branch : master

created branch time in 9 days

created repositoryalgernon/gd32-wip-sketch

created time in 9 days

startedsdras/awesome-actions

started time in 10 days

push eventalgernon/madness

Gergely Nagy

commit sha 4a9fd6526931ec648126bb54fee63c6c588022f4

Bump the copyright years. Just a bit late, not by much. Signed-off-by: Gergely Nagy <me@gergo.csillger.hu>

view details

push time in 16 days

startedkbjunky/Chordie

started time in 16 days

startedjashandeep-sohi/webcam-filters

started time in 16 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha f65f58a40829e05c30d3083d97bab01d98c6a5a1

gd32: matrix-based keyscanner Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha ce0365e3481597f39e4f32b31e201e01e7b50a73

gd32: Restore some functionality Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 3f73faa4d0d70884991b20d28f4fbe4592bfafa6

gd32: timer-based scanning Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha f385801534d6dbf83cca85c869b973a2a7424ea7

fixups Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 17 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha 48bf7a4f9b2a3cd7f8bd14440fcf4ce18322164d

kaleidoscope::hid::base::Keyboard: Add a default, no-op sendReport Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 0761d937299dfc4589cc40179a7425e8f0a5b1d9

kaleidoscope::device::Base: Don't make the default noop_serial_ static With `noop_serial_` being static, if we don't override the `serial()` method, we fail to link. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 17 days

pull request commentCommunityGD32Cores/ArduinoCore-GD32

[draft] FlashStorage & EEPROM libraries

Had a good night's sleep, and it dawned on me that we do not need to always position the storage at the end of flash, restricting us to one instance of the class. We can default to that, but still allow setting a position, with a template argument. We can have multiple storages this way, with reasonable defaults.

The advantage of not overwriting it (at least under normal circumstances) when flashing new firmware still remains. But the disadvantage of having to augment the linker to reserve space also remains. I still believe that's a fair compromise.

algernon

comment created time in 18 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha f5b07735e13b28f2063d045ca9a0020b4ffa89cd

FlashStorage: Allow multiple instances, at different positions Instead of always placing the storage area at the end of Flash, allow repositioning it (but still default to the end). This makes it possible to have multiple instances of `FlashStorage`. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 18 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha 62c382fb978b2ea0292938a53c0e2ee34b9320aa

astyle Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha d78065224582ce0ea24a3d3488bfc61dd42ec325

gd32: a pretty dumb key scanner Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha dc6307d8748e390e6f7198734c1a6e6bfd874e82

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 68a6a99eafe64f19e55dc9d4af3c6ef46800d1ce

boards.txt: Add build flags to gd_eval_f303 to support Kaleidoscope Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha dc6307d8748e390e6f7198734c1a6e6bfd874e82

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

pull request commentCommunityGD32Cores/ArduinoCore-GD32

[draft] FlashStorage & EEPROM libraries

Collapsed into a single commit, and added a short README. Leaving it as draft still, 'cos I've yet to test this on hardware still.

algernon

comment created time in 19 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha f0afe8d503a1f1f3474bf556702441d186c38eea

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 72fa5ddaa0b815105cecd712fd4fe05da1099f09

boards.txt: Add build flags to gd_eval_f303 to support Kaleidoscope Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha f0afe8d503a1f1f3474bf556702441d186c38eea

FlashStorage & EEPROM libraries This implements a FlashStorage library, and an EEPROM emulation layer on top of it. Trade-offs and design decisions are documented in FlashStorage's README. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha 648ed6120b688aa83d8ccbcbf66891e5ffe4c3ac

make cpplint happy Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 79449e3f7b5a2fafbf1a0a748f4ab22bea8d3986

astyle Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha 12e6ebfc40d78a5cde0b6565dffe34127fec9f09

gd32: Add a "bootloader" Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

pull request commentCommunityGD32Cores/ArduinoCore-GD32

[draft] FlashStorage & EEPROM libraries

Another small update: I moved EEPROMClass (the EEPROM emulation layer) from the EEPROM library to FlashStorage, as FlashAsEEPROM.h. This way the EEPROM library is a few-line header that simply instantiates EEPROMClass to the default size.

This allows us to reuse EEPROMClass in other libraries, without having an instantiated EEPROM object around, and still have everything function in an Arduino-esque way when including EEPROM.h.

algernon

comment created time in 19 days

push eventkeyboardio/Kaleidoscope

Gergely Nagy

commit sha ef70d387a59b45c32c85cc94096dd59e7827850d

gd32: Add a GD32Flash storage driver Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days

push eventCommunityGD32Cores/ArduinoCore-GD32

Gergely Nagy

commit sha cda567024cf634bd97e527debac9caa6f019fbac

EEPROM: Make the EEPROM class templateable Rather than hard-coding the size in the class, hard-code the size in the instance instead. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha 117222b4685210d7a12dbcb92b1b8e8587d131be

FlashStorage: Move EEPROMClass to the FlashStorage library To allow easier reuse of EEPROMClass, without having an `EEPROM` object of a default size instantiated, move `EEPROMClass` to `FlashStorage`, making the `EEPROM` library simply an instance of `EEPROMClass`. This way, one can use `EEPROM.h` to have a default Arduino-esque EEPROM object, with a default size, while also allowing one to reuse the same `EEPROMClass` by including `FlashStorage.h` only, without the instantiated object. Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

Gergely Nagy

commit sha b0152a0ac1cbc673bdfddf470258395395e11e2c

boards.txt: Add build flags to gd_eval_f303 to support Kaleidoscope Signed-off-by: Gergely Nagy <algernon@keyboard.io>

view details

push time in 19 days