@@ -35,7 +35,7 @@ The remaining [keybrd tutorials](tutorials) show how to create custom keybrd fir | |||
Example complex keybrd sketch | |||
----------------------------- | |||
The keybrd_DH emulates the DataHand keyboard. | |||
It has 72 keys, 4 layers, a sub-layer, 2 matrices, and many features. | |||
It has 72 keys, 4 layers, 6 sub-layers, 2 matrices, 8 LEDs, and blinking LEDs. | |||
The keybrd_DH and its instantiation files contain about 800 lines of code. | |||
[mainSketch.ino](https://github.com/wolfv6/keybrd_DH/blob/master/examples/keybrd_DH/mainSketch.cpp)<br> |
@@ -7,6 +7,10 @@ keybrd version 1.0.0 will be released when the public API is stable. | |||
## [Unreleased][unreleased] | |||
## [0.3.1] - 2016-05-30 | |||
### Changed | |||
* Rename StateLayers to LayerState | |||
## [0.3.0] - 2016-05-09 | |||
### Changed | |||
* Restructured the project directory to conform to Arduino library manager specifications |
@@ -190,7 +190,7 @@ Hardware items to check: | |||
* 5 volts across power and ground | |||
* To validate keyboard hardware, modify the simple single-layer keybrd sketch from the tutorial. | |||
<!-- todo after teensy LC bb, linke to minimal keybrd sketch | |||
<!-- todo after teensy LC bb, link to minimal keybrd sketch | |||
[minimal keybrd sketch](blob/master/tutorials/keybrd_2_single-layer_annotated/keybrd_2_single-layer_annotated.ino). | |||
--> | |||
@@ -2,7 +2,7 @@ planned_features is a view of where the keybrd project is headed. | |||
Top priority | |||
============ | |||
Add interrupts for I2C | |||
Redesign elements of debouncer. | |||
Med priority | |||
============ | |||
@@ -12,7 +12,7 @@ Add 16x16 matrix capability (currently limited to 8x8 matrices) | |||
Low priority | |||
============ | |||
Add matrix-to-layout transform array (to decouple matrix from layout) | |||
Add matrix-to-layout mapping array (to decouple matrix from layout) | |||
Change tutorial sketches from teensy 2.0 and PCA9655E-D IOE to Teensy LC and MCP23018 IOE | |||
@@ -3,14 +3,6 @@ | |||
/* LED is an abstract base class | |||
Each LED object is an IC pin that is used to power an LED on and off. | |||
Connect the LED in series with the resistor: | |||
Calculate current-limiting-resistor value (100 Ohms to 10k Ohms will work with 5 volts) | |||
R = (Vs - Vf) / If | |||
http://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-led-series-resistor | |||
Connect the LED's anode (the longer lead) to the AVR output pin (+) | |||
Connect the LED's cathode to ground (-) | |||
Never connect a LED directly from ground to power. Doing so would destroy the LED. | |||
*/ | |||
class LED | |||
{ |
@@ -17,7 +17,7 @@ When you finish this tutorial you will be able to be able to modify a multi-laye | |||
## Pseudo code for simple layer scheme | |||
The following pseudo code has just enough detail to show how layer schemes work. | |||
**Key_Layer** objects select the active layer. | |||
**Key_Layer** objects are used to select an active layer. | |||
The "layer" variable is a layer id number. | |||
When a Key_Layer object is pressed, it tells LayerState to update the active layer. | |||
``` | |||
@@ -40,9 +40,9 @@ class LayerState | |||
} | |||
``` | |||
**Key_Layered** objects contain multiple Key pointers, one Key pointer for each layer. | |||
Layer ids are used like indexes to select the appropriate key. | |||
When a Key_Layered object is pressed, it gets the active layer from LayerState, and then sends the key of the active layer. | |||
**Key_Layered** objects contain multiple elements, one element for each layer. | |||
Layer ids are used like indexes to send the appropriate element. | |||
When a Key_Layered object is pressed, it gets the active layer from LayerState, and then sends the appropriate element. | |||
``` | |||
class Key_Layered | |||
{ |