Lotlab / Lot60-BLE-Keyboard

A 60% bluetooth keyboard (Hardware)
Creative Commons Attribution Share Alike 4.0 International
158 stars 32 forks source link

LKB Configurator Not Recognising Keyboard #3

Closed pseudobacon closed 3 years ago

pseudobacon commented 3 years ago

I have built a Lot60-BLE Rev.F and also a GT-BLE60 and neither keyboard will be recognised by LKB Configurator. I have also bought a Lot60-BLE Rev.F that was assembled from the Taobao store. This keyboard is recognised by LKB Configurator.

I didn't get any information from LKB Configurator on Glab so I downloaded version 0.9.9.10 which requires a web browser but gives a command prompt output. For the PCB purchased from Taobao, there are no messages shown. But for the Lot60-BLE and GT-BLE60 that I built I get the following messages:

image

I tried compiling the CH554 bootloader myself, and also used the bootloader binaries available here for the BLE60, and the bootloader binary available for the GT-BLE60 on Glab. I used WCHISPTool V2.80 to flash the bootloader.

I noticed that when my PCBs were plugged in, the USB PID and VID would be different to the Taobao PCB.

Taobao: image

Self assembled: image

The VID and PID is set in the config file but nowhere can I see that Col is set, so I don't understand why my two self assembled keyboards have this set.

The source code for LKB Configurator is not available, so my guess is that the configurator looks for a particular PID and VID value. This value does not change whether or not I build the bootloader from source, or when I flash the precompiled binaries. So perhaps I have faulty CH552 and CH554 chips? (I have tried both. I purchased the CH552 from 优信 so I don't feel like they are fake. I also tried multiple chips with the same result.

Finally, when I use the LKB Configurator to generate the EEP data, it will also not flash with KeymapDownloader and just says Operation timed out: image

jim-kirisame commented 3 years ago

Hello, the firmware of Lot60-BLE is directly compile from the source and has no modification. There is also no any limitation in USB firmware. The reason why the configurator doesn't recoginze is the hid operation timeout. Old version firmware (before 1.1.0.0) does not support configurate via the configurator, and it will show timeout. If you are using the latest precompile firmware, that might be the problem of hardware. Try to connect your device directly to your computer (without usb hub).

pseudobacon commented 3 years ago

I tried a different computer but still the same result. Here is a video of the flashing process for the bootloader that I did: https://streamable.com/tlo1ut

It seems strange that the bootloader will flash, but when writing to EEPROM there is a timeout. It seems unlikely that all of my CH552 and CH554 chips would be faulty (but its possible). I did an inspection of the Taobao board and the only other differences that I could see were very minor:

I assume all other capacitors and resistors are correct, otherwise the bootloader should not have written successfully. Any ideas on what component could be faulty here? I have tested more than one PCB, including the GT-BLE60 which was printed by a different manufacturer.

jim-kirisame commented 3 years ago

Hello, is your device work correctly? And which version of firmware you are using?

Using the configurator in the https://github.com/Lotlab/lkb-configurator/releases , the configurator you use in the video will not output any debug log.

pseudobacon commented 3 years ago

It doesn't work. There is no keymap when the bootloader is flashed, so the PCB is useless unless you can successfully flash the EEP file to the board.

I used firmware version 1.1.3.2. I uploaded the video to bilibili instead: https://www.bilibili.com/video/BV1ji4y1j7Fj/

In this video I used the configurator from Glab http://wiki.glab.online/#!download.md image

When I tried the configurator from https://github.com/Lotlab/lkb-configurator/releases, I got the System.TimeoutException: Operation timed out error

jim-kirisame commented 3 years ago

There is a default configuration in the firmware, so if your keyboard doesn't work, please check your bluetooth firmware.

BTW, the bluetooth firmware is depending on the Softdevice, so you have to flash that on the new chip.

pseudobacon commented 3 years ago

Ok. I got the GT-BLE60 board working. I flashed a nrf52_kbd.hex that I compiled from source with pyocd, which then prompted the keyboard to boot into bootloader mode with DfuTarg. I then uploaded the bluetooth firmware zip using nRF Connect. Now that keyboard is recognised by LKB-Configurator 👍.

image

So I guess this means that application is not flashed correctly on my Lot-BLE60. I believe the softdevice is okay, since the keyboard connects over bluetooth. Its just that the keys do not work.

Unfortunately right now the keyboard is not responding to my Raspberry Pi using openocd, and also it is not responding to my clone J-Link OB. I will build a DAPLink and see if I can recover the NRF chip with that I guess.