1
0
Fork 0
Free Software, Open Source Hardware keyboard controller. https://www.forksand.com/
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 
Ivan Olenichev 9cfe9aa689
wasd_update
vor 5 Jahren
KiCAD wasd_update vor 5 Jahren
Wasd_test wasd_update vor 5 Jahren
com_linux Update i2c/com_linux/ft232_qt vor 5 Jahren
ft232_qt Update i2c/com_linux/ft232_qt vor 5 Jahren
i2c_keyboard Update wasd kicad vor 5 Jahren
i2c_slave/test_i2c_slave Update vor 6 Jahren
manual Manual update vor 5 Jahren
pics Add better web pic of board vor 5 Jahren
LICENSE Initial commit vor 6 Jahren
README.md README cleanups vor 5 Jahren

README.md

wasd-libre

Free Software, Open Source Hardware keyboard controller

wasd-libre pic

Software for building FPGA firmware (for GNU/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). Experimental free software 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 three options to build the FPGA firmware and upload it to the 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 the 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 the 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 the Lattice IceStick board. This is the most stable toolchain. But has more occupied LCs than the first two options.

If you want to run the I2C-HID-HOST emulator or FPGA debug output collector, you need qtcreator and qt5serialport library (Qt5 is a nextpnr dependency).

Package names in Ubuntu:

  • qtcreator
  • libqt5serialport5
  • libqt5serialport5-dev

Hardware:

  • FT2232 breakout board
  • Chip 24LC16B
  • LATTICE ICE40HX1K board
  • Resistors

You can open file inouts.pcf, all the FPGA pins which are needed are described in this file. In the comments you can see joint numbers on the IceStick board. 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 the 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), to avoid short circuits.

Warning:

This is a keyboard controller prototype! It has software and hardware bugs.