geekhack

geekhack Marketplace => Vendor Forums => techkeys.us => Topic started by: ArchieTect on Tue, 14 June 2016, 18:19:54

Title: 6KB EasyAVR Support / Comments
Post by: ArchieTect on Tue, 14 June 2016, 18:19:54
Anyone know if anybody is working on this? If it's easy to do, or easy to port, can someone chime in. Of course assuming we are still on an AVR chipset.

I love my 6KB, thanks for making it happen.
Title: Re: 6KB EasyAVR Support / Comments
Post by: suicidal_orange on Tue, 14 June 2016, 19:07:59
What's it say on the chip?  If it's listed in the EasyAVR thread it will be easy to add, just needs someone with one preferably with a multimeter or good eyes to see what's connected to what on the PCB.
Title: Re: 6KB EasyAVR Support / Comments
Post by: ArchieTect on Wed, 15 June 2016, 07:59:26
Looks like an ATmega16U2.

(http://cdn.shopify.com/s/files/1/0218/4886/products/PCB_1024x1024.jpg)

Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Mon, 18 July 2016, 17:36:35
Hello. im just got my 6keyboard today and i would really like to be able to reprogram it using the Easy AVR tool. i took my multimeter out and just finished measring. all the keys have one common pin that is connected to gorund and the other pin is conneted to the microcontroller  (ATmega16U2) as follow.
Key1 PC7
key2 PB7
key3 PB5
key4 PD6
key5 PD1
Key6 PD4

Should i contact someone or make a formal request or how shall i proceed.

Finkey.
Title: Re: 6KB EasyAVR Support / Comments
Post by: i3oilermaker on Wed, 20 July 2016, 19:49:46
I will submit the request - thanks for digging up that info.
Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Thu, 21 July 2016, 17:30:46
Thanks for the reply. i decided to give it a shot and modified the threekeyboard file and got the all the keys to work.
 Here is the modified file. http://pastebin.com/dLGmJ5b1 the led on the back is not configured corretly.
Title: Re: 6KB EasyAVR Support / Comments
Post by: suicidal_orange on Thu, 21 July 2016, 17:38:22
I made a config for this in the EasyAVR thread but no-one confirmed it worked (or not) and I don't have a board to test.

I had the LEDs as all being on separate pins - does this work?

Code: [Select]
led_definition = [
    ('1', 'Unassigned'),
    ('2', 'Unassigned'),
    ('3', 'Unassigned'),
    ('4', 'Unassigned'),
    ('5', 'Unassigned'),
    ('6', 'Unassigned'),
    ('Underglow?', 'Unassigned')
]

led_hardware = [
#       Port    Pin    Direction
    ( REF_PORTC, 6, LED_DRIVER_PULLDOWN ),
    ( REF_PORTB, 6, LED_DRIVER_PULLDOWN ),
    ( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 5, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 2, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 3, LED_DRIVER_PULLDOWN ),
    ( REF_PORTC, 4, LED_DRIVER_PULLDOWN )
]

backlighting = True

bl_modes = [
    ( 0, 0, 0, 0, 0, 0 ),
    ( 1, 1, 1, 1, 1, 1 ),
    ( 0, 1, 0, 1, 1, 1 )
]
Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Thu, 21 July 2016, 18:05:49
wow, i wish i used the seach function more before i started measuring and screwing arrownd.
My board dosen't have the LEDs yet, i will solder some and test it during the weekend.
Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Fri, 22 July 2016, 14:09:54
i just soldered some leds to my board and was unable to make them work. i did some measuring and all the leds have a common anode that is connected to the power line and each anode is connected to its own pin on the microcontroller with a 470ohm resistor. the assigned pins on the config file seems to be correct.
Title: Re: 6KB EasyAVR Support / Comments
Post by: suicidal_orange on Fri, 22 July 2016, 14:26:54
Well they default to off so you might want to change the top line to 1,1,1 etc, unless you assigned a key to switch them on?
Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Fri, 22 July 2016, 16:34:55
I changed the top line to  1, 1, 1, and also tried assigning a bl mode and a bl enable key. I also tried some random settings on the led configuration menu and got the led 1 to light up if i set it as "usb ok" but if i set it as backlight it stays dark.

Here is the current code i'm using for testing.
Code: [Select]
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

"""Keyboard definition for the Techkeys ThreeKeyBoard."""

import easykeymap.templates.ATmega16U2_16MHz_CARD as firmware
from easykeymap.ioports import *

description = "6KEY"
unique_id = "SIXKEY_001"
cfg_name = "SIXKEY"

teensy = False
hw_boot_key = True

display_height = int(3*4)
display_width = int(3*4)

num_rows = 1
num_cols = 6

strobe_cols = False
strobe_low = True

matrix_hardware = [
#     Port mask     Dir mask
    ( 0b10100000 , 0b00000000 ),    # REF_PORTB
    ( 0b10000000 , 0b00000000 ),    # REF_PORTC
    ( 0b01010010 , 0b00000000 )     # REF_PORTD
]

matrix_strobe = [
#     REF_PORTB    REF_PORTC    REF_PORTD
    ( 0b00000000 , 0b00000000 , 0b00000000 )
]

matrix_sense = [
#      Port        Pin mask
   
( REF_PORTC , 0b10000000 ),
( REF_PORTB , 0b10000000 ),
( REF_PORTB , 0b00100000 ),
( REF_PORTD , 0b01000000 ),
    ( REF_PORTD , 0b00000010 ),
    ( REF_PORTD , 0b00010000 )
]

num_leds = 7
num_ind = 0
num_bl_enab = 2

led_definition = [
    ('1', 'Backlight'),
    ('2', 'Backlight'),
    ('3', 'Backlight'),
    ('4', 'Backlight'),
    ('5', 'Backlight'),
    ('6', 'Backlight'),
    ('Underglow?', 'Unassigned')
]

led_hardware = [
#       Port    Pin    Direction
    ( REF_PORTC, 6, LED_DRIVER_PULLDOWN ),
    ( REF_PORTB, 6, LED_DRIVER_PULLDOWN ),
    ( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 5, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 2, LED_DRIVER_PULLDOWN ),
    ( REF_PORTD, 3, LED_DRIVER_PULLDOWN ),
    ( REF_PORTC, 4, LED_DRIVER_PULLDOWN )
]

backlighting = True

bl_modes = [
    ( 1, 1, 1, 1, 1, 1 ),
    ( 1, 1, 0, 1, 0, 1 )
]

KMAC_key = None

keyboard_definition = [
    [((4, 4), (0, 0), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (0, 1), 'HID_KEYBOARD_SC_S'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_D')],


[((4, 4), (0, 3), 'HID_KEYBOARD_SC_F'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_H')],

   
]

alt_layouts = {}

Title: Re: 6KB EasyAVR Support / Comments
Post by: suicidal_orange on Fri, 22 July 2016, 17:42:31
I guess we may have exceeded one of the random undocumented limits in the firmware - change the template from 'CARD' in the first import, you want the one that's for 60%s (not JUMBO or COSTAR - you'll have to check the exact name in the builds folder)
Title: Re: 6KB EasyAVR Support / Comments
Post by: Finkey on Sat, 23 July 2016, 05:06:35
i checked the builds folder and the only file for the ATmega16u2_16MHz is the "card" one.