Model 100 support in QMK

Is anyone currently working on support for the Model 100 in QMK?
If not, I’ll give it a go.

I’d appreciate any hints or gotchas.

5 Likes

I asked about this in the discord channel and @algernon mentioned he could help anyone interested in doing this to the best of his abilities

To be best of my knowledge, noone is working on Model 100 support in QMK. I expect it will be harder to port than the Model01, because in that case, QMK already had plenty of keyboards that used the same kind of MCU (ATmega32U4). In case of the Model 100, the MCU is from the GD32F30x family, which no other keyboard currently supported by QMK mainline uses. So you’ll have to port the entire thing, rather than just the Model100 parts.

Presumably I can base the work on the support that was added for the Proton-C as the STM32 appears fairly similar apart from the obvious differences in memory and clock speed.

2 Likes

Happy to help with this any way I can. I am pretty good with QMK but not to the level of MCU configuration… but I can alpha test and help with the board config itself. I have 2 sets of 100’s so I’m not scared of losing one in the name of progress :slight_smile: (but would prefer not to of course).

1 Like

Even if you flash a completely different firmware, even if it crashes on boot and doesn’t even enumerate, it is very hard to brick a Model 100. As long as you do not overwrite the bootloader (which requires specialized hardware), you can recover, and flash another firmware. So you don’t have to be afraid of experimenting. :slight_smile:

1 Like

Thanks for the offers of help, I’ll let you know how I’m getting on. It looks like the GD32F30x family is supported in chibios which is a good start. What I could do with now is the actual MCU model, pinouts and matrix and also how this differs from the Model 01.

Looks like a GD32F303CG? Here is a pic if this helps:

GD32F303CGT6

1 Like

I’m see that the mlego/m65 rev 2 uses the GD32F303CCT6 mcu.

1 Like

Thanks, it looks like they mock this as a STM32F103 which would be a good start, I assume the registers are the same but the memory layout may be a little different.

The bit I’m missing at the moment is the pinouts and matrix, perhaps @algernon or @jesse could point me in the right direction. Or, maybe I’m just too lazy to trawl the Kaleidoscope code.

Can’t help much with the pinout, that’s a few levels deeper than I’m comfortable with. This feels like something like that sort, maybe?

The matrix and led layout should be the same as for the Model01. They’re both laid out here: Kaleidoscope/Model100.h at master · keyboardio/Kaleidoscope · GitHub

Has anybody made any progress with this? I’ve taken a run a it a few times, but I can’t figure out the mapping between the two links. One has the MCU pins. The other the columns and rows on the keyboard. But I can’t figure out which row or column goes with each mcu pin. I can’t find that information for the Model 01, either, which would give me a hint where to look in the kaleidoscope code.

I haven’t made any progress with this I’m afraid, the day job has taken priority. The approach I was going to take was clone the Model 01 code, switch the CPU and go from there.

Is there a way to keep track of QMK support for keyboardio 100? (a task or something I can subscribe to)