Archived
1
0
Commit Graph

163 Commits

Author SHA1 Message Date
Jacob Alexander
1acc89e2bd Initial LED support for ISSI IS31FL3731C
- Not ready for advanced support yet
- Basic register and page writing support complete
2015-03-21 17:12:41 -07:00
Jacob Alexander
96e785b571 Merge branch 'master' of https://github.com/smasher816/controller into smasher816-master 2015-03-15 18:27:35 -07:00
Jacob Alexander
ed71f7fad5 Initial commit for UARTConnect module
* Keyboard interconnect using two uarts
* Supports daisy chain addressing using a master/slave direction communication scheme

- Still needs more testing
- Functions have been tested alone to be generally working
2015-03-15 16:58:01 -07:00
Rowan Decker
2922fce0f7 Merge remote-tracking branch 'upstream/master' 2015-03-08 20:17:39 -07:00
Rowan Decker
1392571bd7 Fix whitespace
Use a consistent standard - Tabs in front for indenting, spaces after for anything else. This way everything stays nice and lined up while also letting users change there prefered indent level. Most of the new files from Haata where already in this format.
2015-03-08 18:40:01 -07:00
Jacob Alexander
ae6daa0e5c Adding DebounceThrottleDiv define to slow down the debounce rate.
By default:
DebounceThrottleDiv = 0;
This is the default infinity behaviour right now (may be changed in the future).

Increasing DebounceThrottleDiv will increase the scan rate divider.
DebounceThrottleDiv = 1; # Scans half as much
DebounceThrottleDiv = 2; # Scans a quarter as much
DebounceThrottleDiv = 3; # Scans an eigth as much
etc.

For ARM based uCs (like the Infinity) the maximum divider is 32.
2015-03-06 22:18:15 -08:00
Jacob Alexander
a9c5898ba5 Adding configurable DebounceDivThreshold
Can be specified from any .kll file

DebounceDivThreshold = 0xFFFFFFFF
Sets to max debounce, default is 0xFFFF.
The 0xFFFFFFFF is about a 2x longer debounce
The max requires more ram (as it uses 32 bit variables instead of 16).

Added support for submodule capabilities files.
2015-02-28 22:13:17 -08:00
Jacob Alexander
9e3d3aaca4 Initial code for USB cable detection
- Currently actual detection commented out due to issues
2015-02-09 13:21:23 -08:00
Jacob Alexander
1e9f55a0bf Updating setup.cmake files to use Module hierarchy implicitly
- Added AddModule CMake function which simplifies specifying module requirements
2015-01-25 17:55:28 -08:00
Jacob Alexander
e95f3752f0 Fixing pinout 2015-01-25 17:55:28 -08:00
Jacob Alexander
b4f8fd0fa1 LEDs now doing something :D 2015-01-25 17:55:28 -08:00
Jacob Alexander
7dfca9cc3e Initial I2C work for ISSI IS31FL3731 2015-01-25 17:55:28 -08:00
Jacob Alexander
f5a1e1bcf5 Preparing for mk20dx256vlh7
- Not ready yet
- Will require some more changes to Lib/mk20dx.c
2014-12-31 17:13:44 -08:00
Jacob Alexander
d00c034cbf Re-Adding previous defaultMap.kll used for early Infinity PCBs 2014-12-28 20:08:33 -08:00
Rowan Decker
9df455424e Add Missing Backslash key
Fix an off by one error causing most keys to be shifted one to the
right, due to the missing backslash (\) key in the top row.
2014-12-28 20:08:33 -08:00
Jacob Alexander
ccd52d6b8f Moving MatrixARM header macros to separate file 2014-12-21 07:32:51 -08:00
Jacob Alexander
4a1aeb8af8 Small typos 2014-11-30 19:36:19 -08:00
Jacob Alexander
74e38e0797 Adding pinout list. 2014-10-25 23:56:30 -07:00
Jacob Alexander
6e4c28ef84 HUGE AVR RAM optimization (~28%).
- It's possible to get even more, but this is probably as far as I'll go
- PROGMEM is really annoying to use, and makes the code look like ass
- Now the Teensy 2++ should have enough RAM to use PartialMap easily
2014-10-02 22:09:34 -07:00
Jacob Alexander
12295e8362 More fixes to the DPH scan module.
- Typing now works on the kishsaver (including modifiers)
- Still some issues with RAM usage when using more than the default layer
2014-09-16 15:37:16 -07:00
Jacob Alexander
dd9c018378 Adding support to Macro support to DPH
- Added layout files for 50 key and kishsaver
- Not yet working (some USB issues on AVR to debug)
- Fixed an OSX issue when building AVR
- Cleanup
2014-09-14 19:27:22 -07:00
Jacob Alexander
e0a2a4806b Adding CMake build support for the KLL compiler
- Automatically downloads the kll compiler if not found
- Added capability files to each of the module that currently have them
- Split modules.cmake so kll.cmake could influence build targets (also needs info from modules.cmake)
- Updated .gitignore for kll compiler directory
- Added documentation on how to manipulate layouts using CMakeLists.txt
- Cleanup of old layout files
2014-09-14 15:51:36 -07:00
Jacob Alexander
28df956007 Updating DPH to compile with PartialLayer module 2014-09-11 10:57:30 -07:00
Jacob Alexander
d6d792fdf9 Changing decToInt to numToInt (adds support for Hex number interpreter)
- CLI now works with hex or decimal numbers
- Hex requires 0x (technically just x would work too)
2014-08-16 12:07:25 -07:00
Jacob Alexander
eabb1c546a Fixing RAM calculator and reduced actual SRAM usage
- Changed static variables to const that should have been const
- Updated CMake files to prepare for MCHCK custom bootloader
- Changed the USB ID numbers and ID number for bootloader
- Only generate DFU or Teensy binary image, not both
- Fixed RAM and FLASH calculator
- Added missing license in delay.c/h (much of it was taken from Teensy source though I've changed a bunch of it)
- Prepared mk20dx.c for upcoming bootloader addition
- mk20dx.h cleanup
- Reduced the MCHCK based flash size for the application image (bootloader changes requires more flash space)
- Fixed bugs in macro.c
- Added keyHold cli command
- Added show pending events debug message for PartialMap macro module
2014-08-15 10:49:44 -07:00
Jacob Alexander
19f42b0a81 Matrix scanning for ARM now functional.
- CLI Debugging options added
- Various bug fixes for the matrix scanning algorithm
- Changed debouncing algorithm
2014-08-02 22:19:33 -07:00
Jacob Alexander
d6345c307f Initial MatrixARM implementation
- Cleaned up Macro and USB callback naming
- Added security jumper for automated reload (MCHCK based only)
- Added additional LED position
2014-08-01 01:26:25 -07:00
Jacob Alexander
1fd777815b Initial work for partial layers and macros. 2014-07-15 21:29:56 -07:00
Jacob Alexander
366f6c9276 Kishsaver is fully working with DPH!
- More keyboard layouts and enhancements to come :D
2014-04-26 01:29:09 -07:00
Jacob Alexander
e444f96158 Adding different algorithm to re-enable problem keys.
- More generous to keys, and should reject all test points.
2014-04-25 23:53:46 -07:00
Jacob Alexander
219e90cdd3 Enabling USB keycodes.
- There are some bugs here:
  * Press/Release (this is a keymapping bug, has nothing to do with capsense press/release which is working)
  * Some keys give incorrect USB codes
2014-04-25 02:35:49 -07:00
Jacob Alexander
c3e1335678 Fixed repeated press/release of a single key bug.
Caveat: The problem is still there. When the averaging kicks in, there is a window of time where keypresses won't register
        This fix only delays the window a *really* long time, so the likelihood of hitting the delay is very low.
	Each keypress resets the countdown.
2014-04-25 02:06:40 -07:00
Jacob Alexander
1a5ae7fd68 Giving more breathing room for regular keys to be enable initially.
- Should be tested more on keyboards without test points (to see if more of a margin in necessary)
- Added more information messages on bootup
2014-04-25 01:26:45 -07:00
Jacob Alexander
ca1bf4fab9 Adding strobe detection.
- This requires that no strobes are floating.
  On Rev. 0.4, pins D1 and D0 of the teensy must be manually connected to GND
  On Rev. 0.2, when not using the 18 pin connector, pin C6 and C7 must be manually connected to GND
- Added a problem keys cli command, this is very useful to see which keys were disabled at startup because they looked like test points
  (the fastest way to get the keys to re-enable is to take off a keycap and jiggle the spring)
2014-04-25 01:08:15 -07:00
Jacob Alexander
5e9bcf012c Press/Release is working!
- Removed 'Zombie' code
- Still a bit of iffiness with the averaging algorithm (should be looked at again)
- Added more CLI debugging (averaging and press/debounce)
2014-04-20 01:08:02 -07:00
Jacob Alexander
5df7b55391 Adding compiler change detection.
- Tried to add auto cmake reset...so far unsuccessful
- Ported MBC-55X (was used to test compilers)
- Disabled in-source builds, to prevent CMake from shooting itself in the foot.
2014-04-19 01:51:25 -07:00
Jacob Alexander
a6e76d4fac Added better formatting for debugging code. 2014-04-17 00:34:27 -07:00
Jacob Alexander
c858078fde Added support for IBM 50key, better DPH debug, cleanup
- Strobe lines for IBM 50key
- Added CLI debugging for DPH, both per press and overall sense table
- Code cleanup (mostly just removal)
2014-04-17 00:11:36 -07:00
Jacob Alexander
c24f86b0ea Adding example CLI command to DPH module. 2014-04-16 00:20:45 -07:00
Jacob Alexander
bb9c009586 DPH Scan Module now compiles with recent architecture cleanups. 2014-04-16 00:15:09 -07:00
Jacob Alexander
c905bfdebf ADC0 is now working on Teensy 3.1. 2014-04-14 23:59:41 -07:00
Jacob Alexander
36c0b5f417 Adding initial code for ADC1 on Teensy 3.1 (and 3.0).
- To use the second ADC just specify ADC2 for all the commands.
2014-04-13 23:40:06 -07:00
Jacob Alexander
c25ded384f ADCTest DAC support for Teensy 3.1
- Vref of 1.2 V isn't working (may be due to missing setup/hardware)
2014-04-12 23:10:39 -07:00
Jacob Alexander
8ee8e3cb55 Adding analog.c lib from teensyduino.
- Mostly for reference, you shouldn't include it verbatim in your module.
2014-04-12 21:13:37 -07:00
Jacob Alexander
50d1f8c7e6 Updating Cygwin build environment for AVR and ARM. 2014-04-09 20:06:19 -07:00
Jacob Alexander
9d423a64a8 Major code cleanup and preparation for PartialMap Macro Module
- Code should be working, but much is untested
- All of the old modules will need to update and use the new DefaultMap keymap
- There might still be some naming conflicts with some Scan Modules
2014-04-06 11:49:27 -07:00
Jacob Alexander
15ec4ff71c Adding CLI and CDC Serial support for Teensy 2.0 and Teensy 2.0++
- Includes serial putchar and getchar cleanup (overall)
- Moved avr-capsense to DPH (renaming)
- Basic cleanup for including CLI on the avr architecture
2014-03-31 01:07:48 -07:00
Jacob Alexander
1accaf36cc Adding new kishsaver strobe map for new PCB revision 2014-01-12 11:39:25 -08:00
Jacob Alexander
909f20a937 Adding more USB codes and code cleanup 2014-01-12 11:27:10 -08:00
Jacob Alexander
61e45985c2 Added the averaged initial average as well as problem key rejection
- Any keys that exceed the high average are temporarily disabled
- If the sense value goes below the initial average sense, it is re-enabled
- Even works if *many* keys are pressed initially

- Still needs a bit of detection of consistent high keys that sometimes sneak below the threshold
  (May be able to have an elastic threshold that could deal with this)

- Removed dead code (and redundant calculations)
2013-12-01 23:07:38 -05:00
Jacob Alexander
dd1d3ad362 Increasing MAX_PRESS_DELTA_MV to measured min kishsaver value
- Enabling the test point strobe on the kishsaver really kills the sensing (many keys don't work, even at 400)
2013-12-01 17:13:42 -05:00
Jacob Alexander
2d5e6c4e12 Fixing the strobe count on the Kishsaver
- Should fix the last of the phantom keys
2013-12-01 14:52:54 -05:00
Jacob Alexander
6a4de5f356 Fixing more phantom keys on the kishsaver
- Not confirmed that this fixes all known phantom keypresses
2013-11-27 13:33:26 -05:00
Jacob Alexander
d5271befab Adding debounce and reorganized code
- Added debounce mechanism, currently looks for 5 consecutive scans
- Temporarily disabled the test point strobe on the kishsaver (spams debug messages, and not useful anymore; needs to be addressed before strobe detection is implemented though)
- Reorganized code to cleanup the main scan loop function
2013-11-19 03:18:44 -05:00
Jacob Alexander
c58e25d229 Adding initial Unsaver debug strobe map 2013-11-19 02:01:51 -05:00
Jacob Alexander
68f9de9ef5 Initial Terminal F strobe map
- Haven't fully verified all the strobes yet, but should be correct
2013-11-18 03:07:01 -05:00
Jacob Alexander
b32ab98cdf Adding strobe mapper and code cleanup
- Basic strobe mapper added (only kishsaver for now)
- Removed more (less obvious) dead code
- Moved keypress detection closer to detection
- Added more informative keypress debug messages
2013-11-18 02:46:48 -05:00
Jacob Alexander
3d98028679 Removed a keyscan layer and added more debug information
- Added a print macro for colourful convenience
- Removed the usb_keymap variable as it is no longer needed
- Changed usb_dirty to keymap_change (more accurate description)
- Removed the dumpkeys function and now detect key changes much sooner as well as displaying error messages more often
- Added a warming up information message and removed its error status (as it's not an error)
2013-11-17 19:17:54 -05:00
Jacob Alexander
6b38cfbaee Correcting license (should have been lgpl) 2013-11-17 16:42:41 -05:00
Jacob Alexander
a8e35f5cf5 Cleaning up cap sense Alpha code
- Added LGPL headers to appropriate files
- Removed *LOTS* of dead code
- Started standardizing formatting (important stuff done)
2013-11-16 19:37:16 -05:00
Jacob Alexander
afc227d515 Cap sense now functional! Alpha begins :D 2013-11-16 19:37:16 -05:00
Jacob Alexander
a8d8da88e4 Another dfj code merge. 2013-11-16 19:37:16 -05:00
Jacob Alexander
a108dbbbc3 Debugging kishsaver.
- Hardcoded strobe lines (required to make the hardware less noisy)
- Updated debug code
2013-11-16 19:37:16 -05:00
Jacob Alexander
4ce6d34cd8 Adapting the avr-capsense code to the Kiibohd Controller API
- Adding "template" keymap
- Removed "stray" functions, variables
- Cleaned up warnings
- Now builds
- Added buffered macro integration (rather than dealing with USB directly)
- Updated the print messages to use the Kiibohd print header

TODO
- Add generic matrix integration (this will require some changes to the matrix code)
- Add more comments...lots more
- Clean up dead code
2013-11-16 19:37:16 -05:00
Jo Makuch
99712e189e rsync'd over the changes 2013-11-16 19:37:16 -05:00
Jacob Alexander
473e3359f4 MBC-55x support virtually complete.
- I won't do any more, as I can't make the converter fully functional on a modern computer
- Basic typing support is working
- Some of the function modes move around the ASCII values, and this takes a while to decipher and figure out the pattern; it's not hard to do, and I don't really feel like doing it
- The hard part is already done :P
2013-02-01 16:49:32 -05:00
Jacob Alexander
d5c4a0a9fa UART0 on Teensy 3.0 now functional 2013-02-01 15:10:58 -05:00
Jacob Alexander
640c0f0686 Adding the MSBF register enable flag. 2013-02-01 12:17:52 -05:00
Jacob Alexander
4da44b8ff7 Adding initial ARM UART structure for UART0
- Transmit seems to be working
- Receive isn't working yet
- Inversion of the transmit signal doesn't seem to be working
2013-01-30 23:43:41 -05:00
Jacob Alexander
fc7998d605 Adding module compatibility check to CMake build scripts.
- All modules have a default avr compatibilty right now (since that is what they were developed on)
- As modules get tested and added, arm support has to be turned on in the respective setup.cmake file
2013-01-30 18:13:49 -05:00
Jacob Alexander
c8b4baf652 Adding initial Teensy 3 support, compiles, but not fully functional yet.
- CDC Output seems to be working
- USB Keyboard output has not been tested, but is "ready"
- UART and Timers have not been tested, or fully utilized
- Issues using Timer 0
- Initial template for MBC-55X Scan module (only module currently compatible with the arm build)
- Updated the interface to the AVR usb module for symmetry with the ARM usb module
- Much gutting was done to the Teensy 3 usb keyboard module, though not in an ideal state yet
2013-01-27 01:47:52 -05:00
Jacob Alexander
6da1558b78 Updating AVR abstraction to be compatible with ARM, nearly ready for ARM files
- Very small updates to files, mostly modifying to remove name duplications
2013-01-26 22:30:36 -05:00
Jacob Alexander
14158009b2 Preparing for Teensy 3 (ARM) integration, abstracting code hierarchy
- Abstracted USB Module
- Abstracted compiler specific includes for Scan, Macro, Debug, and USB modules
- Updated CMake build files to support changes
- Added abstractions necessary to main.c as well as a compiler specific include file
2013-01-26 15:05:28 -05:00
Jacob Alexander
105d49a65b Adding alternate Enter key to the layout
- Removed another key from the latch list to use as a normal key
2013-01-21 11:53:26 -05:00
Jacob Alexander
f674db7de3 Adding API changes introduced by the FACOM converter
- Shouldn't affect anything, and will allow for greater buffer clearing control
2013-01-20 22:36:05 -05:00
Jacob Alexander
65b4489884 Fixing slow key issues with the FACOM converter
- Required some small API changes, shouldn't affect any other Scan modules (addition of a parameter)
- Still have the latching annoyances for some of the modifiers
- Swapped Esc and Tilde for convenience
- Removed the old Esc key from the latch list (no one needs 13 latches anyways...)
- Added the control cluster mappings (Insert, Delete, Home, End, PgUp, PgDn)
- All other misc keys are currently un-assigned if a keycap legend doesn't map to anything known
  (e.g. blank keys, 000 and 00 are mapped, but your OS probably doesn't know what they mean :P)
2013-01-20 22:23:28 -05:00
Jacob Alexander
db01d733b7 Completed the FACOM 6684 converter...
Unfortunately, the protocol annoying, with only 3 keys having Press/Release signals.
Some of the keys were only meant to be pressed once, and do not have repeat functionality.

The current implementation is a bit slow, so some keys may get lost during USB sending.
This is probably fixable, not sure if I want to spend the time on it though.

There is a keyboard input protocol, but I'm not sure of what information can be transmitted to the keyboard.
The terminal does send some information back and forth between the keyboard, but I'm unclear of the purpose, as I can never get any response out of the keyboard.
2013-01-20 20:27:14 -05:00
Jacob Alexander
ccf1e1c7e5 Adding API update to the MicroSwitch8304 code.
- Should still work, but not tested
2013-01-14 21:51:02 -05:00
Jacob Alexander
6b3ba17f57 Commenting out Tandy1000 code to make compile.
- Code hasn't been compatible with the API for a long time
- It should be possible to use the hardware UART to simplify the code immensely
2013-01-14 21:48:21 -05:00
Jacob Alexander
6104eb3ed6 Commenting out lines, to get the code to compile.
- Not tested, almost guaranteed to not work
- Dual scan code was never completed (I need a project, and motivation :P)
2013-01-14 21:43:26 -05:00
Jacob Alexander
fff3212a10 Updating Kaypro1 code to use newer APIs 2013-01-14 21:40:38 -05:00
Jacob Alexander
94390571c4 Adding initial FACOM template, and buildall.bash regression script. 2013-01-14 21:31:50 -05:00
Jacob Alexander
fd6035e053 Adding more robust detection for the HP150
- All spare cycles are used to get a more accurate data line sample (waaaay more than actually needed, but this helps against noise)
- Switched to a pre/release (add/remove) rather than an add->clear mechanism (or a buffer+debounce/add->clear)
- Note that a pull-down resistor is NEEDED on the data line
2012-11-19 00:55:30 -08:00
Jacob Alexander
59e443552c Completing the HP150 converter. 2012-11-17 02:13:06 -08:00
Jacob Alexander
0c39927268 Adding initial HP150 and IBMConvertible scan modules.
- HP150 is not ready
- IBMConvertible is ready to start testing
2012-11-15 01:28:31 -08:00
Jacob Alexander
b8fddd61f5 Adding SKM67001 scan module.
- Uses the matrix module, which is now moderately working now for NKRO diode keyboards
2012-10-04 12:07:06 -07:00
Jacob Alexander
fa68d61792 Completing Sony OA-S3400 adapter.
- Fixed final bug regarding key release
- Added LED support calls
- Fixed minor keymapping bug for TAB
- Changed default keymap to Colemak
2012-05-07 13:00:29 -04:00
Jacob Alexander
65366a4e7a Adding initial version of Sony OA-S3400 converter.
- Not fully reading for usage, but 90% of the way there for typing.
- Some soldering is required for 2 keys to work properly (Shift and Shift Lock)
- Even when complete, be careful when doing multiple key combos, as the key buffer is only cleared when all general keys are released (all except Shift, Shift Lock, and Code)
2012-05-07 02:32:56 -04:00
Jacob Alexander
0ac4251e16 Adding test macros and basic "clicker" choose support
- Better macros are still needed for the clicker
- Current macros should be separated as a sub-module
- No LEDs implement yet
- Caps Lock LED seems to be burnt out...
2012-03-27 21:56:54 -04:00
Jacob Alexander
1877dcfa01 Completing the BETKB support
- Keyboard is fully functional
- LED, Beeper, and keyboard input not yet implemented
2012-03-27 00:04:43 -04:00
Jacob Alexander
9b1f7e486c Initial commit of the Burroughs Ergonomic Terminal Keyboard module (BETKB)
- Doesn't work yet
2012-03-26 19:02:46 -04:00
Jacob Alexander
fc1bf619b6 Small Univac update 2012-03-26 18:07:56 -04:00
Jacob Alexander
b1686ce7ad Adding inital outline for Univac-Sperry F3W9 keyboard.
- Not tested yet
- Packet size is large so it's not possible to use Teensy hardware
2012-03-03 21:16:41 -05:00
Jacob Alexander
e3fc873cba Final SonyNEWS commit before sending device back 2011-12-19 17:48:47 -08:00
Jacob Alexander
108b0d3e8e Cleaning up the BudKeypad module for the Buffered Macro Module
- Fixed key repeat rate issues
- Added the recent function additions to the scan module API
2011-12-18 19:02:56 -08:00
Jacob Alexander
2519ea00e7 Finishing up the Epson QX-10 module
- Typing and modifiers fully working
- Still some features left to implement
  * Stop input
  * Diagnostic test
  * Setting interval before starting repeat rate
  * More comments
  * Handling LED stats
2011-12-11 00:06:49 -08:00
Jacob Alexander
8f8de985c5 Initial commit of the Epson QX-10 Keyboard module
- LEDs are working
- Reset command is working
- Basic typing is working (USB side drops some characters)
- Changing repeat rate is working
- Querying modifiers and LEDs is working
- Initial layouts are complete
- Modifiers are not fully working yet
2011-12-10 22:48:53 -08:00
Jacob Alexander
6bf2607872 Small macro update for debugging the Sony NEWS 2011-12-06 23:49:56 -08:00
Jacob Alexander
ea2654b662 Intial commit of the SonyNEWS scan module
- Keyboard output fully working
- Not all of the features are implemented yet (input, speaker, or power
  detection)
- There is no plan for mouse support
2011-12-04 19:55:32 -08:00
Jacob Alexander
ac5f6c015d Pre Tandy1000 overhaul 2011-11-28 22:20:04 -08:00