KarlK90 / yaemk-split-kb

5x8 Split keyboard with thumb-clusters, rotary encoders and oleds.
https://karlk90.github.io/yaemk-split-kb/
GNU General Public License v3.0
109 stars 13 forks source link

[question] Compatible component replacements? #4

Closed siu closed 2 years ago

siu commented 2 years ago

I am trying to order the YAEMK from JLCPCB and currently three parts are out of stock:

I would like to replace these by other compatible parts, I found the two that follow but I don't have enough experience with electronics to know if these are really compatible:

I would appreciate if you could confirm that these are compatible (or not).

KarlK90 commented 2 years ago

The EEPROM and OP-amps are pin-compatible and I'm very certain that they are functionally equivalent! If any of the components should fail there will be a workaround, as the plug detection can be disabled and the internal EEPROM emulation is now available for the GD32VF103.

KarlK90 commented 2 years ago

I have added an alternate BOM with those components and linked it in the build guide. Thank you.

siu commented 2 years ago

Hi @KarlK90, I am happy to share that I ordered and built the keyboards, they work perfectly with the replacement components, yay! For the MCU I chose the RISC-V in the Longan Nano, desoldered and soldered it in the boards. The MCU and USB connectors are hard to solder but it is doable with decent tools and patience. I did not install any of the LED lights but I may add them in the future. Note that I have not tested the EEPROM yet as I don't have any real use for it, I may hack something together in the following days to check if it works.

For the programming, I was also able to set up the toolchain to build for RISC-V following the instructions, no issues at all.

The build guide is very well written and I was able to follow it even not having much experience in electronics, thanks for that!

The only thing I found confusing is the example firmware. At that stage in the build I think the interest is to check the wiring is correct.

I also hear the coil whine when the displays show some specific information as you reported in https://github.com/qmk/qmk_firmware/pull/10379#issuecomment-819630957.

Again, thanks for sharing the project, it is a lot of fun.

KarlK90 commented 2 years ago

Hi @siu that is great news, happy that you have a working YAEMK now :muscle:!

* I found that using the keyboard was very erratic, until I realized that it has home row modifiers. Understanding that I could check that all keys worked as expected (or not, see next point). If you agree I can upload a simpler keymap with the name "testing" to be used in the guide.

You are right about the test firmware, I'll add a testing keymap and compile it as the default without homerow modifiers.

* Keys 3 and 8 register the key below them randomly, for example tapping 3 would result in "3eee" written. I did not know if the wiring was wrong or it was a firmware issue. Anyway I continued with the programming of the board and it looks like the issue is already solved in your fork of the qmk_firmware ([KarlK90/qmk_firmware@dfb777e](https://github.com/KarlK90/qmk_firmware/commit/dfb777e3d0764e0bd19d9e59b0e39b02f7c8b479) at the time of writing). Just recompiling fixed it.

This is actually caused by EMI noise of the matrix lines, because the matrix scanning is rather fast on this board. To fix the issue the output pins have been assigned the slowest possible speed (which is plenty fast for this simple use-case). You can see the corresponding lines in this commit.

I also hear the coil whine when the displays show some specific information as you reported in qmk/qmk_firmware#10379 (comment).

Yes, these oleds are a bit on the cheap side. I already got some burn-in after one year but nothing to bad. Maybe the whine could be reduced further by swapping the coils on the board but it is not that bad I recon.

Again, thanks for sharing the project, it is a lot of fun.

Thanks for the kind words. :muscle::slightly_smiling_face:, wish you lots of fun with your YAEMK!

siu commented 2 years ago

I confirm that the replacement EEPROM works as expected, I am using it now to store the default layer between two different configurations I am experimenting with.

Closing the issue as well as the questions were already answered :)

KarlK90 commented 2 years ago

I confirm that the replacement EEPROM works as expected, I am using it now to store the default layer between two different configurations I am experimenting with.

Closing the issue as well as the questions were already answered :)

Great to hear that you apparently use your YAEMK. I Don't if you already did that but, if you want share you build on Reddit. 🙂