Free Software, Open Source Hardware keyboard controller. https://www.forksand.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Ivan Olenichev 2c37e37bc3
i2c_keyboard update
6 years ago
com_linux Update i2c/com_linux/ft232_qt 6 years ago
ft232_qt Update i2c/com_linux/ft232_qt 6 years ago
i2c_keyboard i2c_keyboard update 6 years ago
i2c_slave/test_i2c_slave Update 6 years ago
manual Update i2c_keyboard_specs 6 years ago
pics Add pics 6 years ago
LICENSE Initial commit 6 years ago
README.md Update readme 6 years ago

README.md

wasd-libre

Free Software, Open Source Hardware keyboard controller

wasd-libre pic

Software for building FPGA firmware (for linux xubuntu 16.04, x64):

  1. Atom (version 1.32.2 x64), with apio-ide package (version 0.7.0), and with installed apio (version 0.4.0). Experemental open FPGA IDE. Link https://github.com/FPGAwars/apio-ide/wiki

  2. Project IceStorm. Link http://www.clifford.at/icestorm/

  3. Arachne-pnr. Link https://github.com/YosysHQ/arachne-pnr

  4. NextPNR. Link https://github.com/YosysHQ/nextpnr

  5. Yosys. Link http://www.clifford.at/yosys/

There are 3 options of FPGA firmware building and uploading to chip:

  1. Atom-apio-ide. Open i2c_keyboard_ice40 project in atom and press Apio:Build button. File hardware.bin will be generated. Then you can press button Apio:Upload and firmware will be uploaded to Lattice IceStick board. Sometimes there are some errors in build process and bin file is not generated (option 3 generates bin file from the same sources successfully)

  2. Yosys+Arachne-pnr+Icestorm. If you want to use this variant, execute "make" command in console and file i2c_kbd_alt.bin will be generated. Then you can execute command "iceprog i2c_kbd_alt.bin" and firmware will be uploaded to Lattice IceStick board. Sometimes there are some errors(not the same as in option 1) in build process and bin file is not generated (option 3 generates bin file from the same sources successfully).

  3. Yosys+Next-pnr+Icestorm. If you want to use this option, execute "make nextpnr" command in console and file i2c_kbd_alt.bin will be generated. Then you can execute command "iceprog i2c_kbd_alt.bin" and firmware will be uploaded to Lattice IceStick board. Most stable toolchain. But has more occuped LCs then first 2 options.

If you want to run I2C-HID-HOST emulator or fpga debug output collector, you need qtcreator ant qt5serialport lib (Qt5 is installing with nextpnr).

Packets names in Ubuntu:

  • qtcreator
  • libqt5serialport5
  • libqt5serialport5-dev

Hardware:

  • FT2232 breakout board
  • chip 24LC16B
  • LATTICE ICE40HX1K board
  • resistors

You can open file inouts.pcf, all FPGA pins (which are needed) are described in this file. In comments you can see joint numbers on IceStick board. Also all COLUMN lines must have pull-up resistors to 3.3 V (used 10kOhm resistors for pull-up). If there are no pull-ups on I2C lines in host deivce, you must set pull-up resistors for these lines. And connected all lines (from IceStick to keyboard and from IceStick to host device) throw protection resistors (used 300 Ohm resistors), because avoid short circuits.

Warning:

This is only keyboard controller prototype! It might have software and hardware bugs.