Sentraq S60-X 60% DIY Keyboard Kit: Uploading TMK firmware
Posted: 21 Apr 2016, 07:57
Hi,
I have successfully built the keyboard at https://www.massdrop.com/buy/sentraq-60 ... board-kit/
The TMK-based firmware I am using is:
https://github.com/VinnyCordeiro/tmk_ke ... oard/s60-x
I've managed to get a hex file built, but am running into problems getting the machine to "see" the device to upload it to the keyboard. This is a very new machine running Ubuntu 15.10, so should be very new hardware.
The problem arises in running the first dfu-programmer command after pressing the reset button on the back of the keyboard:
Seeing as this might be a udev issue, I examined the /var/log/syslog file after clicking the reset button which shows this:
After it is plugged in, I see this from lsusb output:
I've tried and failed all three of these approaches:
1. The "make dfu" rule which runs the erase command mentioned above (but not under sudo),
2. Manually running the commands under sudo as given by https://github.com/tmk/tmk_keyboard/wik ... ux-and-mac
3. Installing a udev rule as indicated by https://github.com/tmk/tmk_keyboard/wik ... udev-rules (not sure if a reboot is always required after making that change).
I did notice that the VENDOR_ID and PRODUCT_ID in this variant of the TMK (config.h) is different from the last udev rule, but I suspect things aren't getting that far in the process, and something more basic is amiss. My theory is that pressing the reset button erases the firmware and puts it into a state where it is announcing itself with idVendor=03eb, idProduct=2ff4 versus the ids defined in the config.h for the S60-x.
Any ideas? Should this instead go to geekhack?
Thanks,
Brent
I have successfully built the keyboard at https://www.massdrop.com/buy/sentraq-60 ... board-kit/
The TMK-based firmware I am using is:
https://github.com/VinnyCordeiro/tmk_ke ... oard/s60-x
I've managed to get a hex file built, but am running into problems getting the machine to "see" the device to upload it to the keyboard. This is a very new machine running Ubuntu 15.10, so should be very new hardware.
The problem arises in running the first dfu-programmer command after pressing the reset button on the back of the keyboard:
Code: Select all
$ sudo dfu-programmer atmega32u4 erase
dfu-programmer: no device present.
Code: Select all
$ tail -1lf /var/log/syslog
Apr 20 22:22:07 wilddog kernel: [ 600.913330] usb 1-2: SerialNumber: 1.0.0
Apr 20 22:22:33 wilddog kernel: [ 627.227086] usb 1-2: USB disconnect, device number 9
Apr 20 22:22:33 wilddog kernel: [ 627.727987] usb 1-2: new full-speed USB device number 10 using xhci_hcd
Apr 20 22:22:33 wilddog kernel: [ 627.859101] usb 1-2: New USB device found, idVendor=03eb, idProduct=2ff4
Apr 20 22:22:33 wilddog kernel: [ 627.859117] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 20 22:22:33 wilddog kernel: [ 627.859118] usb 1-2: Product: ATm32U4DFU
Apr 20 22:22:33 wilddog kernel: [ 627.859119] usb 1-2: Manufacturer: ATMEL
Apr 20 22:22:33 wilddog kernel: [ 627.859120] usb 1-2: SerialNumber: 1.0.0
Code: Select all
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 012: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader
Bus 001 Device 004: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
1. The "make dfu" rule which runs the erase command mentioned above (but not under sudo),
2. Manually running the commands under sudo as given by https://github.com/tmk/tmk_keyboard/wik ... ux-and-mac
3. Installing a udev rule as indicated by https://github.com/tmk/tmk_keyboard/wik ... udev-rules (not sure if a reboot is always required after making that change).
I did notice that the VENDOR_ID and PRODUCT_ID in this variant of the TMK (config.h) is different from the last udev rule, but I suspect things aren't getting that far in the process, and something more basic is amiss. My theory is that pressing the reset button erases the firmware and puts it into a state where it is announcing itself with idVendor=03eb, idProduct=2ff4 versus the ids defined in the config.h for the S60-x.
Any ideas? Should this instead go to geekhack?
Thanks,
Brent