All Projects → thomask77 → nucular-keyboard

thomask77 / nucular-keyboard

Licence: GPL-3.0 license
USB Keyboard Adapter for old ThinkPad keyboards

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
python
139335 projects - #7 most used programming language
assembly
5116 projects
C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to nucular-keyboard

pi400kb
Raw HID keyboard forwarder to turn the Pi 400 into a USB keyboard
Stars: ✭ 182 (+574.07%)
Mutual labels:  keyboard, usb
nrf52-keyboard
A BLE & 2.4G Keyboard Firmware using nrf52810/52811/52832
Stars: ✭ 101 (+274.07%)
Mutual labels:  keyboard, usb
SerialProxy
🖱️⌨️ Arduino Input Proxying for PC (.NET Core)
Stars: ✭ 39 (+44.44%)
Mutual labels:  keyboard, usb
Rubber Ducky Library For Arduino
An Arduino library that allows you to use a cheap Arduino (Leonardo) as a Rubber Ducky
Stars: ✭ 25 (-7.41%)
Mutual labels:  keyboard, usb
Hidusbf
USB Mice Overclocking Software (for Windows)
Stars: ✭ 152 (+462.96%)
Mutual labels:  keyboard, usb
Minikbd
Stars: ✭ 97 (+259.26%)
Mutual labels:  keyboard, usb
Keyberon
A rust crate to create a pure rust keyboard firmware.
Stars: ✭ 355 (+1214.81%)
Mutual labels:  keyboard, usb
Nrf52 Keyboard
A ble keyboard firmware using nrf52810/52832
Stars: ✭ 168 (+522.22%)
Mutual labels:  keyboard, usb
ISASTM
STM32-based ISA-over-USB-adapter
Stars: ✭ 86 (+218.52%)
Mutual labels:  usb, retro
keymacs
Ergonomic keyboard layout for nonergonomic keyboards.
Stars: ✭ 22 (-18.52%)
Mutual labels:  keyboard
fpga-virtual-console
VT220-compatible console on Cyclone IV EP4CE55F23I7
Stars: ✭ 33 (+22.22%)
Mutual labels:  keyboard
bepo developpeur
Quelques modifications de la disposition clavier Bépo pour la rendre plus adaptée à mon usage. Update Bépo V1.1
Stars: ✭ 20 (-25.93%)
Mutual labels:  keyboard
Fairtris
Clone of the official classic Tetris® game for the NES console, intended for Windows and Linux systems. It implements the original mechanics and includes many regional versions and several RNGs (all in one executable).
Stars: ✭ 30 (+11.11%)
Mutual labels:  keyboard
8821au
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets
Stars: ✭ 67 (+148.15%)
Mutual labels:  usb
xone
Linux kernel driver for Xbox One and Xbox Series X|S accessories
Stars: ✭ 636 (+2255.56%)
Mutual labels:  usb
GKey
German Keyboard Layout for TempleOS
Stars: ✭ 20 (-25.93%)
Mutual labels:  keyboard
libusb-win32
libusb-win32 project official github repo
Stars: ✭ 44 (+62.96%)
Mutual labels:  usb
twad
a wad launcher for the terminal
Stars: ✭ 16 (-40.74%)
Mutual labels:  retro
mirrorboard-mac
Intuitive one-handed typing on macOS by mirroring the keyboard while spacebar is held
Stars: ✭ 29 (+7.41%)
Mutual labels:  keyboard
CustomKeyboard
A simple and fast implementation of a custom numeric keypad. There is always a keyboard for you.
Stars: ✭ 20 (-25.93%)
Mutual labels:  keyboard

Toolchain

Building

make boot    # Build USB DFU bootloader
make all     # Build actual keyboard application

Initial flash programming

Unfortunately, the STM32L052 does not have a built-in USB bootloader. So the initial programming has to be done using a SWD adapter. A cheap STM32 discovery board will do fine.

Windows

Use the ST-LINK utility to flash obj_boot/f00b00t.hex and obj_app/nucular_kb.hex.

Hint: You can also copy the ST-LINK utility to Tools/st-link and use make to do the flashing:

make boot_flash
make flash

Linux

Use Texane's stlink utility to do the flashing:

sudo st-flash --reset write obj_boot/f00b00t.bin 0x08000000
sudo st-flash --reset write obj_app/drquad.bin 0x08010000

Hint: Read the st-flash documentation and install udev rules to flash without root privileges.

Flash programming with DFU bootloader

After the USB DFU bootloader has been flashed, the application can be updated without any external tools. Press FN+POWER on your keyboard to enter the DFU- bootloader mode.

Windows

Use ST's DfuSe Application to flash obj_app/nucular_kb.dfu

Linux

Use Openmoko's dfu-util to flash the application:

sudo dfu-util -D obj_app/nucular_kb.dfu

printf()-Debugging

The application uses a generic HID endpoint to print debug messages. This endpoint is fully compatible with PJRC's [hid_listen] (https://www.pjrc.com/teensy/hid_listen.html) program.

The program (source and binaries) is included in the Tools directory.

Eclipse settings

  • Download and configure Eclipse Luna:

    • Help -> Install new Software -> Add
      • Name: http://pydev.org/updates
      • Location: http://pydev.org/updates
    • Install the following plugins:
      • Programming Languages
        • C/C++ Development Tools
      • Mobile and Device Development
        • C/C++ GCC Cross Compiler Support
        • C/C++ GDB Hardware Debugging
    • PyDev
      • PyDev for Eclipse
    • Collaboration
      • Eclipse Git Team Provider
  • Window -> Preferences

    • C/C++
      • Build -> Console -> Limit console output: 5000
      • Editor -> Scalability -> .. number of lines: 50000
      • Editor -> Folding -> Enable folding of preprocessor branches
      • Code Style -> Formatter -> Import: Docs/Codestyle.xml
      • Code Analysis -> Uncheck all options
    • General -> Editors -> Text Editors -> Spelling -> Disable spell checking

Import Project

  • File -> New -> Makefile Project with Existing Code -> Toolchain for Indexer Settigns: Cross GCC

  • Project -> Uncheck "Build Automatically"

  • Project -> Properties -> C/C++ General

    • Preprocessor Include Paths, Macros, etc. -> Providers
      • CDT GCC Build Output Parser: arm-none-eabi-gcc
      • CDT Cross GCC Built-in Compiler Settings: arm-none-eabi-gcc -E -P -v -dD "${INPUTS}"
  • Make Target Window, Right Click -> New...

    • Target-name: all -j8
    • Target-name: clean
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].