https://wiki.geekhack.org/api.php?action=feedcontributions&user=Alaricljs&feedformat=atomGeekHackWiki - User contributions [en]2024-03-19T02:19:59ZUser contributionsMediaWiki 1.30.0https://wiki.geekhack.org/index.php?title=GeekHackWiki&diff=544GeekHackWiki2012-11-13T23:08:44Z<p>Alaricljs: /* Custom Keyboards */</p>
<hr />
<div>This is the wiki portion of [http://www.geekhack.org GeekHack], the premiere english-language resource for mechanical keyboards and related DIY projects on the web. This wiki, combined with the forum, will eventually make it easy to find and digest the collective knowledge of the english-language keyboard community.<br />
<br />
== GeekHack ==<br />
<br />
* [[Introduction]] - start here!<br />
* [[Geekhack History]]<br />
* [[GeekHack Staff]]<br />
* [[Group Buy|Group Buys]]<br />
* [[Projects]]<br />
<br />
== Keyboards ==<br />
<br />
* [[Mechanical Keyboards]] - an overview of what it's all about<br />
* [[Cherry MX]] - the venerable Cherry MX switch<br />
* [[Buckling Springs]] - the mechanical keyboard that started it all<br />
* [[Other Switches]] - other common switch types<br />
* [[Key Caps]] - compatibility, stem types, profiles, surface texture and materials<br />
* [[Keyboard Glossary]]<br />
<br />
=== Manufacturers ===<br />
<br />
http://geekhack.org/index.php?topic=33496.0<br />
<br />
=== Vendors ===<br />
<br />
http://geekhack.org/index.php?board=51.0<br />
<br />
== Mice ==<br />
<br />
=== Manufacturers ===<br />
<br />
* [http://www.logitech.com/en-us/home?WT.mc_id=AMR_DR_Q2_FY13_SERP&WT.srch=1&ci=0 Logitech]<br />
<br />
* [http://www.razerzone.com/ Razer]<br />
<br />
* [http://steelseries.com/us/home SteelSeries]<br />
<br />
* [http://www.madcatz.com/ MadCatz]<br />
<br />
* [http://www.microsoft.com/hardware/en-us/mice Microsoft]<br />
<br />
=== Vendors ===<br />
<br />
<br />
<br />
== Modifications ==<br />
<br />
* [[:Modifications:IBM Model M|IBM Model M]]<br />
* [[:Modifications:KBC Poker X|KBC Poker X]]<br />
<br />
== Making Stuff ==<br />
<br />
One of the primary missions of [[GeekHack]] is to push the envelope on small-scale manufacturing. While we tend to focus on keyboards and keycaps, there are some other projects eiher worked on or built up by our members.<br />
<br />
For general resources, we maintain the following thread: http://geekhack.org/index.php?topic=33298.0<br />
<br />
=== Custom Keyboards ===<br />
<br />
* [[Phantom]] - GeekHack's first custom group buy, a TKL board with several layout options<br />
* [[GH60]] - This is a 60% board currently being prototyped<br />
* [[Dox]] - <br />
* [[ErgoDox]] - <br />
* [[AVR-Keyboard]] - bpiphany's firmware for the Phantom and other boards, a Filco TKL controller replacement was produced as well called the [[HID Liberator]].<br />
* [[tmkFirmware]] - The t.m.k. firmware collection by hasu, now with compatibility for the [[HID Liberator]]. This collection features layers, mouse keys, media keys, NKRO, and very easy layout configuration.<br />
<br />
=== Keycap Manufacturing ===<br />
<br />
* [[Keycap Basics]]<br />
<br />
* [[Keycap Vendors]]<br />
<br />
=== Structural Materials ===<br />
<br />
* [[Milling]]<br />
<br />
* [[Molding]]<br />
<br />
* [[3d Printing]]<br />
<br />
=== Electronics ===<br />
<br />
* [[Key Switch Matrices]]<br />
<br />
* [[LED Matrices]]<br />
<br />
* [[Microcontroller Platforms]]<br />
<br />
* [[PCB Manufacturing]]<br />
<br />
=== Techniques ===<br />
<br />
<br />
=== Resources ===<br />
* [[Typewriters]]<br />
<br />
== Other Geeky Stuff ==<br />
<br />
=== Audio ===</div>Alaricljshttps://wiki.geekhack.org/index.php?title=TmkFirmware&diff=543TmkFirmware2012-11-13T23:08:02Z<p>Alaricljs: Created page with "The t.m.k firmware collection. The files are available at [https://github.com/tmk/tmk_keyboard this] github page. This collection can be used to power converters for both c..."</p>
<hr />
<div>The t.m.k firmware collection. The files are available at [https://github.com/tmk/tmk_keyboard this] github page. <br />
<br />
This collection can be used to power converters for both common (PS/2) and uncommon (Sony NEWS) keyboards. You can also use it to run teensy powered KB mods. Most recently alaricljs worked with hasu to provide support for the [[HID Liberator]] produced by bpiphany.<br />
<br />
Use the documentation found on the git page, more info will be made available here as needed.</div>Alaricljshttps://wiki.geekhack.org/index.php?title=GeekHackWiki&diff=542GeekHackWiki2012-11-13T23:02:58Z<p>Alaricljs: /* Custom Keyboards */</p>
<hr />
<div>This is the wiki portion of [http://www.geekhack.org GeekHack], the premiere english-language resource for mechanical keyboards and related DIY projects on the web. This wiki, combined with the forum, will eventually make it easy to find and digest the collective knowledge of the english-language keyboard community.<br />
<br />
== GeekHack ==<br />
<br />
* [[Introduction]] - start here!<br />
* [[Geekhack History]]<br />
* [[GeekHack Staff]]<br />
* [[Group Buy|Group Buys]]<br />
* [[Projects]]<br />
<br />
== Keyboards ==<br />
<br />
* [[Mechanical Keyboards]] - an overview of what it's all about<br />
* [[Cherry MX]] - the venerable Cherry MX switch<br />
* [[Buckling Springs]] - the mechanical keyboard that started it all<br />
* [[Other Switches]] - other common switch types<br />
* [[Key Caps]] - compatibility, stem types, profiles, surface texture and materials<br />
* [[Keyboard Glossary]]<br />
<br />
=== Manufacturers ===<br />
<br />
http://geekhack.org/index.php?topic=33496.0<br />
<br />
=== Vendors ===<br />
<br />
http://geekhack.org/index.php?board=51.0<br />
<br />
== Mice ==<br />
<br />
=== Manufacturers ===<br />
<br />
* [http://www.logitech.com/en-us/home?WT.mc_id=AMR_DR_Q2_FY13_SERP&WT.srch=1&ci=0 Logitech]<br />
<br />
* [http://www.razerzone.com/ Razer]<br />
<br />
* [http://steelseries.com/us/home SteelSeries]<br />
<br />
* [http://www.madcatz.com/ MadCatz]<br />
<br />
* [http://www.microsoft.com/hardware/en-us/mice Microsoft]<br />
<br />
=== Vendors ===<br />
<br />
<br />
<br />
== Modifications ==<br />
<br />
* [[:Modifications:IBM Model M|IBM Model M]]<br />
* [[:Modifications:KBC Poker X|KBC Poker X]]<br />
<br />
== Making Stuff ==<br />
<br />
One of the primary missions of [[GeekHack]] is to push the envelope on small-scale manufacturing. While we tend to focus on keyboards and keycaps, there are some other projects eiher worked on or built up by our members.<br />
<br />
For general resources, we maintain the following thread: http://geekhack.org/index.php?topic=33298.0<br />
<br />
=== Custom Keyboards ===<br />
<br />
* [[Phantom]] - GeekHack's first custom group buy, a TKL board with several layout options<br />
* [[GH60]] - This is a 60% board currently being prototyped<br />
* [[Dox]] - <br />
* [[ErgoDox]] - <br />
* [[AVR-Keyboard]] - bpiphany's firmware for the Phantom and other boards, a Filco TKL controller replacement was produced as well called the HID Liberator.<br />
* [[tmkFirmware]] - The t.m.k. firmware collection by hasu, now with compatibility for the HID Liberator. This collection features layers, mouse keys, media keys, NKRO, and very easy layout configuration.<br />
<br />
=== Keycap Manufacturing ===<br />
<br />
* [[Keycap Basics]]<br />
<br />
* [[Keycap Vendors]]<br />
<br />
=== Structural Materials ===<br />
<br />
* [[Milling]]<br />
<br />
* [[Molding]]<br />
<br />
* [[3d Printing]]<br />
<br />
=== Electronics ===<br />
<br />
* [[Key Switch Matrices]]<br />
<br />
* [[LED Matrices]]<br />
<br />
* [[Microcontroller Platforms]]<br />
<br />
* [[PCB Manufacturing]]<br />
<br />
=== Techniques ===<br />
<br />
<br />
=== Resources ===<br />
* [[Typewriters]]<br />
<br />
== Other Geeky Stuff ==<br />
<br />
=== Audio ===</div>Alaricljshttps://wiki.geekhack.org/index.php?title=GeekHackWiki&diff=541GeekHackWiki2012-11-13T23:02:36Z<p>Alaricljs: /* Custom Keyboards */</p>
<hr />
<div>This is the wiki portion of [http://www.geekhack.org GeekHack], the premiere english-language resource for mechanical keyboards and related DIY projects on the web. This wiki, combined with the forum, will eventually make it easy to find and digest the collective knowledge of the english-language keyboard community.<br />
<br />
== GeekHack ==<br />
<br />
* [[Introduction]] - start here!<br />
* [[Geekhack History]]<br />
* [[GeekHack Staff]]<br />
* [[Group Buy|Group Buys]]<br />
* [[Projects]]<br />
<br />
== Keyboards ==<br />
<br />
* [[Mechanical Keyboards]] - an overview of what it's all about<br />
* [[Cherry MX]] - the venerable Cherry MX switch<br />
* [[Buckling Springs]] - the mechanical keyboard that started it all<br />
* [[Other Switches]] - other common switch types<br />
* [[Key Caps]] - compatibility, stem types, profiles, surface texture and materials<br />
* [[Keyboard Glossary]]<br />
<br />
=== Manufacturers ===<br />
<br />
http://geekhack.org/index.php?topic=33496.0<br />
<br />
=== Vendors ===<br />
<br />
http://geekhack.org/index.php?board=51.0<br />
<br />
== Mice ==<br />
<br />
=== Manufacturers ===<br />
<br />
* [http://www.logitech.com/en-us/home?WT.mc_id=AMR_DR_Q2_FY13_SERP&WT.srch=1&ci=0 Logitech]<br />
<br />
* [http://www.razerzone.com/ Razer]<br />
<br />
* [http://steelseries.com/us/home SteelSeries]<br />
<br />
* [http://www.madcatz.com/ MadCatz]<br />
<br />
* [http://www.microsoft.com/hardware/en-us/mice Microsoft]<br />
<br />
=== Vendors ===<br />
<br />
<br />
<br />
== Modifications ==<br />
<br />
* [[:Modifications:IBM Model M|IBM Model M]]<br />
* [[:Modifications:KBC Poker X|KBC Poker X]]<br />
<br />
== Making Stuff ==<br />
<br />
One of the primary missions of [[GeekHack]] is to push the envelope on small-scale manufacturing. While we tend to focus on keyboards and keycaps, there are some other projects eiher worked on or built up by our members.<br />
<br />
For general resources, we maintain the following thread: http://geekhack.org/index.php?topic=33298.0<br />
<br />
=== Custom Keyboards ===<br />
<br />
* [[Phantom]] - GeekHack's first custom group buy, a TKL board with several layout options<br />
* [[GH60]] - This is a 60% board currently being prototyped<br />
* [[Dox]] - <br />
* [[ErgoDox]] - <br />
* [[AVR-Keyboard]] - bpiphany's firmware for the Phantom and other boards, a Filco TKL controller replacement was produced as well called the HID Liberator.<br />
* [[tmkFirmware]] - The t.m.k. firmware collecttion by hasu, now with compatibility for the HID Liberator. This collection features layers, mouse keys, media keys, NKRO, and very easy layout configuration.<br />
<br />
=== Keycap Manufacturing ===<br />
<br />
* [[Keycap Basics]]<br />
<br />
* [[Keycap Vendors]]<br />
<br />
=== Structural Materials ===<br />
<br />
* [[Milling]]<br />
<br />
* [[Molding]]<br />
<br />
* [[3d Printing]]<br />
<br />
=== Electronics ===<br />
<br />
* [[Key Switch Matrices]]<br />
<br />
* [[LED Matrices]]<br />
<br />
* [[Microcontroller Platforms]]<br />
<br />
* [[PCB Manufacturing]]<br />
<br />
=== Techniques ===<br />
<br />
<br />
=== Resources ===<br />
* [[Typewriters]]<br />
<br />
== Other Geeky Stuff ==<br />
<br />
=== Audio ===</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=530AVR-Keyboard2012-11-09T02:04:21Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
This firmware is used on the [[Phantom]] and the HID Liberation device, a replacement controller for the Filco's TKL boards.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=529AVR-Keyboard2012-11-09T02:04:04Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
This firmware is used on the [[Phantom]] and the HID-Liberation device, a replacement controller for the Filco's TKL boards.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=528AVR-Keyboard2012-11-09T02:03:41Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
This firmware is used on the Phantom and the HID-Liberation device, a replacement controller for the Filco's TKL boards.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=527AVR-Keyboard2012-11-09T02:03:27Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
This firmware is used on the Phantom and the Hid-Liberation device, a replacement controller for the Filco's TKL boards.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=526AVR-Keyboard2012-11-09T02:02:35Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=525AVR-Keyboard2012-11-09T02:00:27Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Procedures=<br />
==Building the firmware==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
==Flashing the firmware==<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx<br />
<br />
[[Category:Keyboard modding]]</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=524AVR-Keyboard2012-11-09T01:58:48Z<p>Alaricljs: /* Flashing the firmware */</p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Detailed file info=<br />
==Makefile==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
=Flashing the firmware=<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click Run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx<br />
<br />
[[Category:Keyboard modding]]</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=523AVR-Keyboard2012-11-09T01:25:46Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Detailed file info=<br />
==Makefile==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
=Flashing the firmware=<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do nicely.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx<br />
<br />
[[Category:Keyboard modding]]</div>Alaricljshttps://wiki.geekhack.org/index.php?title=Flip-USB&diff=522Flip-USB2012-11-09T01:23:56Z<p>Alaricljs: Created page with "=Getting USB to work with Flip in Windows= # Go into the Device Manager # Locate the ATmega32U4FUD with exclamation mark in front (no driver installed) # Click on it and then ..."</p>
<hr />
<div>=Getting USB to work with Flip in Windows=<br />
# Go into the Device Manager<br />
# Locate the ATmega32U4FUD with exclamation mark in front (no driver installed)<br />
# Click on it and then choose “Browse my computer for driver”<br />
# Navigate to C:\Program Files (x86)\Atmel\Flip 3.4.7\usb (the correct driver should be in that location)<br />
# Click Apply<br />
<br />
Change the above path as needed for differing versions of Flip or custom installs.</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=521AVR-Keyboard2012-11-09T01:23:14Z<p>Alaricljs: </p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Detailed file info=<br />
==Makefile==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
=Flashing the firmware=<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, use these directions: [[Flip-USB]] <br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do really.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx<br />
<br />
[[Category:Keyboard modding]]</div>Alaricljshttps://wiki.geekhack.org/index.php?title=AVR-Keyboard&diff=520AVR-Keyboard2012-11-09T01:21:53Z<p>Alaricljs: Created page with "The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page. =File list= {| class="wikitab..."</p>
<hr />
<div>The Bathroom Epiphanies AVR-Keyboard firmware. The files are available at [https://github.com/BathroomEpiphanies/AVR-Keyboard this] github page.<br />
<br />
=File list=<br />
{| class="wikitable" border="1"<br />
|-<br />
! Filename<br />
! Description<br />
|-<br />
| firmwares/<br />
| Folder with pre-compiled firmwares.<br />
|-<br />
| hid_liber/<br />
| Each physical board has its own folder with files defining the matrix layout and other parameters.<br />
|-<br />
| hid_liber/board.h<br />
| Includes board parameters for number of rows/columns, microcontroller specifics, and declarations of the functions to interface the board.<br />
|-<br />
| hid_liber/board.c<br />
| This is where the microcontroller pin-out is defined, and the function definitions for the interface can be found.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Pretty much just a dummy file.<br />
|-<br />
| hid_liber/ansi_iso_jis.h<br />
| Here is where the actual layout is defined.<br />
|-<br />
| [other board specific folders]<br />
|<br />
|-<br />
| [...]<br />
|<br />
|-<br />
| Makefile<br />
| Magic make stuff to compile everything correctly. This is where the board and layout to be compiled is selected.<br />
|-<br />
| README.md<br />
| <br />
|-<br />
| avr.h<br />
| Extra definitions to make life easier..<br />
|-<br />
| avr_keyboard.c<br />
| The main program code.<br />
|-<br />
| hid_listen<br />
| A monitor that listens to debug data sent back from the keyboard. Compiled on Ubuntu 12.04 64-bit.<br />
|-<br />
| print.h<br />
| Includes functions for debug printing.<br />
|-<br />
| print.c<br />
| Includes functions for debug printing.<br />
|-<br />
| usb_keyboard_debug.h<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|-<br />
| usb_keyboard_debug.c<br />
| The HID keyboard framework supplied by [[pjrc.com]].<br />
|}<br />
<br />
=Detailed file info=<br />
==Makefile==<br />
The make system keeps track of what needs to be compiled and how that is supposed to be done. It does not work perfectly for this project. Changing the microcontroller used requires a 'make clean' to be done.<br />
<br />
Each board has a section in the beginning of the file. The correct one needs to be un-commented before compiling.<br />
<br />
Parameters that need to be defined.<br />
BOARD = hid_liber // Folder for board specifics<br />
LAYOUT = ansi_iso_jis // Required layout for that board. Located in the BOARD folder.<br />
MCU = atmega32u4 // Microcontroller the board uses<br />
F_CPU = 16000000 // CPU speed<br />
B_LOADER = \"jmp\ 0x7000\" // Memory location of the bootloader section<br />
<br />
To compile the firmware run the commands<br />
make clean; make<br />
<br />
=Flashing the firmware=<br />
You need the Atmel [http://www.atmel.com/tools/FLIP.aspx Flip] software installed to your system. If you find that USB comms is not working, follow [[Flip-USB]] these steps.<br />
<br />
# Plug in your keyboard<br />
# Start Flip<br />
# Click the Chip icon (first one)<br />
# Select the ATmega32U4 from the list<br />
# Click the USB icon<br />
# Get your KB to jump to the bootloader (both shifts, or a magnet over the controller)<br />
# Click Open (keep trying, takes a moment for the chip to be ready after jumping to the bootloader)<br />
# Click the File menu and select your HEX file<br />
# Click run on the bottom left<br />
# Click Start Application on the bottom right<br />
# Wait a moment and your KB should be live with your new firmware<br />
<br />
=Hints to having a comfortable programming experience=<br />
* Install Linux (Ubuntu recommended for beginners).<br />
http://www.ubuntu.com/download/desktop/windows-installer<br />
* Install a '''worthy''' text editor - [[emacs]] if you are a bit crazy, [[vim]] if you are flat out insane, but [[gedit]] will do really.<br />
sudo apt-get install emacs<br />
* Make sure you have the needed software installed<br />
sudo apt-get install gcc-avr binutils-avr avr-libc<br />
<br />
=External links=<br />
* https://github.com/BathroomEpiphanies/AVR-Keyboard<br />
* http://pjrc.com/teensy/usb_keyboard.html<br />
* http://www.atmel.com/tools/FLIP.aspx<br />
<br />
[[Category:Keyboard modding]]</div>Alaricljshttps://wiki.geekhack.org/index.php?title=GeekHackWiki&diff=519GeekHackWiki2012-11-09T01:19:16Z<p>Alaricljs: /* Custom Keyboards */</p>
<hr />
<div>This is the wiki portion of [http://www.geekhack.org GeekHack], the premiere english-language resource for mechanical keyboards and related DIY projects on the web. This wiki, combined with the forum, will eventually make it easy to find and digest the collective knowledge of the english-language keyboard community.<br />
<br />
== GeekHack ==<br />
<br />
* [[Introduction]] - start here!<br />
* [[Geekhack History]]<br />
* [[GeekHack Staff]]<br />
* [[Group Buy|Group Buys]]<br />
* [[Projects]]<br />
<br />
== Keyboards ==<br />
<br />
* [[Mechanical Keyboards]] - an overview of what it's all about<br />
* [[Cherry MX]] - the venerable Cherry MX switch<br />
* [[Buckling Springs]] - the mechanical keyboard that started it all<br />
* [[Other Switches]] - other common switch types<br />
* [[Key Caps]] - compatibility, stem types, profiles, surface texture and materials<br />
* [[Keyboard Glossary]]<br />
<br />
=== Manufacturers ===<br />
<br />
http://geekhack.org/index.php?topic=33496.0<br />
<br />
=== Vendors ===<br />
<br />
http://geekhack.org/index.php?board=51.0<br />
<br />
== Mice ==<br />
<br />
=== Manufacturers ===<br />
<br />
* [http://www.logitech.com/en-us/home?WT.mc_id=AMR_DR_Q2_FY13_SERP&WT.srch=1&ci=0 Logitech]<br />
<br />
* [http://www.razerzone.com/ Razer]<br />
<br />
* [http://steelseries.com/us/home SteelSeries]<br />
<br />
* [http://www.madcatz.com/ MadCatz]<br />
<br />
* [http://www.microsoft.com/hardware/en-us/mice Microsoft]<br />
<br />
=== Vendors ===<br />
<br />
<br />
<br />
== Modifications ==<br />
<br />
* [[:Modifications:IBM Model M|IBM Model M]]<br />
* [[:Modifications:KBC Poker X|KBC Poker X]]<br />
<br />
== Making Stuff ==<br />
<br />
One of the primary missions of [[GeekHack]] is to push the envelope on small-scale manufacturing. While we tend to focus on keyboards and keycaps, there are some other projects eiher worked on or built up by our members.<br />
<br />
For general resources, we maintain the following thread: http://geekhack.org/index.php?topic=33298.0<br />
<br />
=== Custom Keyboards ===<br />
<br />
* [[Phantom]] - GeekHack's first custom group buy, a TKL board with several layout options<br />
* [[GH60]] - This is a 60% board currently being prototyped<br />
* [[Dox]] - <br />
* [[ErgoDox]] - <br />
<br />
* [[AVR-Keyboard]] - bpiphany's firmware for the Phantom and other boards, a Filco TKL controller replacement was produced as well.<br />
<br />
=== Keycap Manufacturing ===<br />
<br />
* [[Keycap Basics]]<br />
<br />
* [[Keycap Vendors]]<br />
<br />
=== Structural Materials ===<br />
<br />
* [[Milling]]<br />
<br />
* [[Molding]]<br />
<br />
* [[3d Printing]]<br />
<br />
=== Electronics ===<br />
<br />
* [[Key Switch Matrices]]<br />
<br />
* [[LED Matrices]]<br />
<br />
* [[Microcontroller Platforms]]<br />
<br />
* [[PCB Manufacturing]]<br />
<br />
=== Techniques ===<br />
<br />
<br />
=== Resources ===<br />
* [[Typewriters]]<br />
<br />
== Other Geeky Stuff ==<br />
<br />
=== Audio ===</div>Alaricljshttps://wiki.geekhack.org/index.php?title=GeekHackWiki&diff=518GeekHackWiki2012-11-09T01:16:43Z<p>Alaricljs: /* Making Stuff */</p>
<hr />
<div>This is the wiki portion of [http://www.geekhack.org GeekHack], the premiere english-language resource for mechanical keyboards and related DIY projects on the web. This wiki, combined with the forum, will eventually make it easy to find and digest the collective knowledge of the english-language keyboard community.<br />
<br />
== GeekHack ==<br />
<br />
* [[Introduction]] - start here!<br />
* [[Geekhack History]]<br />
* [[GeekHack Staff]]<br />
* [[Group Buy|Group Buys]]<br />
* [[Projects]]<br />
<br />
== Keyboards ==<br />
<br />
* [[Mechanical Keyboards]] - an overview of what it's all about<br />
* [[Cherry MX]] - the venerable Cherry MX switch<br />
* [[Buckling Springs]] - the mechanical keyboard that started it all<br />
* [[Other Switches]] - other common switch types<br />
* [[Key Caps]] - compatibility, stem types, profiles, surface texture and materials<br />
* [[Keyboard Glossary]]<br />
<br />
=== Manufacturers ===<br />
<br />
http://geekhack.org/index.php?topic=33496.0<br />
<br />
=== Vendors ===<br />
<br />
http://geekhack.org/index.php?board=51.0<br />
<br />
== Mice ==<br />
<br />
=== Manufacturers ===<br />
<br />
* [http://www.logitech.com/en-us/home?WT.mc_id=AMR_DR_Q2_FY13_SERP&WT.srch=1&ci=0 Logitech]<br />
<br />
* [http://www.razerzone.com/ Razer]<br />
<br />
* [http://steelseries.com/us/home SteelSeries]<br />
<br />
* [http://www.madcatz.com/ MadCatz]<br />
<br />
* [http://www.microsoft.com/hardware/en-us/mice Microsoft]<br />
<br />
=== Vendors ===<br />
<br />
<br />
<br />
== Modifications ==<br />
<br />
* [[:Modifications:IBM Model M|IBM Model M]]<br />
* [[:Modifications:KBC Poker X|KBC Poker X]]<br />
<br />
== Making Stuff ==<br />
<br />
One of the primary missions of [[GeekHack]] is to push the envelope on small-scale manufacturing. While we tend to focus on keyboards and keycaps, there are some other projects eiher worked on or built up by our members.<br />
<br />
For general resources, we maintain the following thread: http://geekhack.org/index.php?topic=33298.0<br />
<br />
=== Custom Keyboards ===<br />
<br />
* [[Phantom]]<br />
* [[GH60]]<br />
* [[Dox]]<br />
* [[ErgoDox]]<br />
<br />
* [[AVR-Keyboard]]<br />
<br />
=== Keycap Manufacturing ===<br />
<br />
* [[Keycap Basics]]<br />
<br />
* [[Keycap Vendors]]<br />
<br />
=== Structural Materials ===<br />
<br />
* [[Milling]]<br />
<br />
* [[Molding]]<br />
<br />
* [[3d Printing]]<br />
<br />
=== Electronics ===<br />
<br />
* [[Key Switch Matrices]]<br />
<br />
* [[LED Matrices]]<br />
<br />
* [[Microcontroller Platforms]]<br />
<br />
* [[PCB Manufacturing]]<br />
<br />
=== Techniques ===<br />
<br />
<br />
=== Resources ===<br />
* [[Typewriters]]<br />
<br />
== Other Geeky Stuff ==<br />
<br />
=== Audio ===</div>Alaricljshttps://wiki.geekhack.org/index.php?title=User:Alaricljs&diff=517User:Alaricljs2012-11-08T23:45:44Z<p>Alaricljs: </p>
<hr />
<div>Changing passwords SUCKS.</div>Alaricljs