Author Topic: BCDMK001: first mechanical keyboard build  (Read 11179 times)

0 Members and 1 Guest are viewing this topic.

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #50 on: Wed, 30 September 2015, 09:51:40 »
does anyone know if i will have issues with the columns i kinda cheated on? 10,16? they have some keys that live in the same row but are side by side not above and below each other?
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline b3Rz3Rko

  • Posts: 32
Re: BCDMK001: first mechanical keyboard build
« Reply #51 on: Wed, 30 September 2015, 10:36:56 »
Having helpers is awesome, I have a 12 y/o niece, what can I say she gives me some of the best critiques I can get, children are honest lol. Anyway will sure do, I'm still a long way to get an X-Carve though :( . Don't want to detour the topic a lot but I see you have a Makita Rotary tool instead of the one Inventables offer that integrates itself to the software, is it better? I can see it being more useful since you can take it away from the CNC use it for other projects.
Rosewill Helios RK-9200BU - Cherry MX Blues, Compaq MX 11800 Cherry MX Browns (Current Daily Driver) - Dell AT101w Black - Alps Black -Erdodox - Cherry MX Browns (Currently Selling) - Erogodox - Cherry MX Greens - Infinity Ergodox - Cherry MX Clear

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #52 on: Wed, 30 September 2015, 10:44:20 »
Having helpers is awesome, I have a 12 y/o niece, what can I say she gives me some of the best critiques I can get, children are honest lol. Anyway will sure do, I'm still a long way to get an X-Carve though :( . Don't want to detour the topic a lot but I see you have a Makita Rotary tool instead of the one Inventables offer that integrates itself to the software, is it better? I can see it being more useful since you can take it away from the CNC use it for other projects.
Following up in PM :)
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #53 on: Fri, 02 October 2015, 07:32:39 »


Getting closer
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #54 on: Sat, 03 October 2015, 16:25:06 »


Well I got this far. Now I'm needing some help programming the teency. If anyone could give me a hand getting started that would be awesome.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline VinnyCordeiro

  • Posts: 432
Re: BCDMK001: first mechanical keyboard build
« Reply #55 on: Sat, 03 October 2015, 16:39:16 »
Show Image


Well I got this far. Now I'm needing some help programming the teency. If anyone could give me a hand getting started that would be awesome.

This keyboard looks very nice. :D But to be able to help you, you need to tell us how the rows/columns are wired to the Teensy. (I hope you are using the 2.0 version, right?)

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #56 on: Sat, 03 October 2015, 16:42:01 »
Show Image


Well I got this far. Now I'm needing some help programming the teency. If anyone could give me a hand getting started that would be awesome.

This keyboard looks very nice. :D But to be able to help you, you need to tell us how the rows/columns are wired to the Teensy. (I hope you are using the 2.0 version, right?)

I am 2.0. 17 columns, 6 rows. it will take me abit to get the exact keymapping sorted. but an example based on that would be helpful to get me off the ground. i'm assuming you can use modifiers (Function keys) in order to access different layers as well.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #57 on: Sat, 03 October 2015, 18:12:43 »
Show Image


Well I got this far. Now I'm needing some help programming the teency. If anyone could give me a hand getting started that would be awesome.

This keyboard looks very nice. :D But to be able to help you, you need to tell us how the rows/columns are wired to the Teensy. (I hope you are using the 2.0 version, right?)

I am 2.0. 17 columns, 6 rows. it will take me abit to get the exact keymapping sorted. but an example based on that would be helpful to get me off the ground. i'm assuming you can use modifiers (Function keys) in order to access different layers as well.
You can set any key to whatever function you want. Check out TMK firmware on GitHub. TMK's author, hasu, provides excellent help in the accompanying thread here on Geekhack.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #58 on: Sat, 03 October 2015, 18:28:39 »
Awesome I'll check it out in afew. Been somewhat confused on the software to use etc.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #59 on: Sat, 03 October 2015, 19:09:18 »
Awesome I'll check it out in afew. Been somewhat confused on the software to use etc.
TMK is pretty much the de facto standard for custom AVR-based projects around here. It's stable, mature and well-supported.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #60 on: Sun, 04 October 2015, 14:12:52 »
i sware i'm not simple:
downloaded and installed CYGWIN, Flip, linux VM, make, TMK, mingw, gcc-arm. and for the life of me i can't make -f the phantom pjrc firmware. not sure whats up but here is the output

CODE:
$ make -f Makefile.pjrc
sh: dfu-programmer: command not found
sh: dfu-programmer: command not found

-------- begin --------
sh: avr-gcc: command not found
../../tmk_core/rules.mk:406: recipe for target 'gccversion' failed
make: *** [gccversion] Error 127
/CODE:

if i can get the program files to make -f then i can probably figure the rest out on my own and from reading the forums. but i guess i'm missing something. help?
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline VinnyCordeiro

  • Posts: 432
Re: BCDMK001: first mechanical keyboard build
« Reply #61 on: Sun, 04 October 2015, 14:37:38 »
i sware i'm not simple:
downloaded and installed CYGWIN, Flip, linux VM, make, TMK, mingw, gcc-arm. and for the life of me i can't make -f the phantom pjrc firmware. not sure whats up but here is the output

CODE:
$ make -f Makefile.pjrc
sh: dfu-programmer: command not found
sh: dfu-programmer: command not found

-------- begin --------
sh: avr-gcc: command not found
../../tmk_core/rules.mk:406: recipe for target 'gccversion' failed
make: *** [gccversion] Error 127
/CODE:

if i can get the program files to make -f then i can probably figure the rest out on my own and from reading the forums. but i guess i'm missing something. help?

Why did you downloaded gcc-arm? You need avr-gcc.

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #62 on: Sun, 04 October 2015, 15:22:14 »
i sware i'm not simple:
downloaded and installed CYGWIN, Flip, linux VM, make, TMK, mingw, gcc-arm. and for the life of me i can't make -f the phantom pjrc firmware. not sure whats up but here is the output

CODE:
$ make -f Makefile.pjrc
sh: dfu-programmer: command not found
sh: dfu-programmer: command not found

-------- begin --------
sh: avr-gcc: command not found
../../tmk_core/rules.mk:406: recipe for target 'gccversion' failed
make: *** [gccversion] Error 127
/CODE:

if i can get the program files to make -f then i can probably figure the rest out on my own and from reading the forums. but i guess i'm missing something. help?

Why did you downloaded gcc-arm? You need avr-gcc.

downloading/installing now. should i assume i use that or cygwin to make the file?
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #63 on: Sun, 04 October 2015, 15:43:58 »
OMG ITS KIND OF ALIVE! THANKS SO MUCH.
now to map it properly :/
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #64 on: Sun, 04 October 2015, 20:06:32 »
getting closer. got it loaded. make some keys work. now my make file is giving me an error when i'm trying to reload it. its been made in the same folder as the other time i loaded it. the rows and columns are right for my pinning. any ideas guys?

$ make -f Makefile.pjrc
sh: dfu-programmer: command not found
sh: dfu-programmer: command not found

-------- begin --------
avr-gcc.exe (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


mkdir -p obj_phantom_pjrc
Compiling C: keymap.c
avr-gcc -c -mmcu=atmega32u4        -gdwarf-2 -DF_CPU=16000000UL -DPROTOCOL_PJRC -DBOOTMAGIC_ENABLE -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_phantom_pjrc/keymap.lst -I. -I../../tmk_core -I../../tmk_core/protocol/pjrc -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_phantom_pjrc_keymap.o.d  keymap.c -o obj_phantom_pjrc/keymap.o

mkdir -p obj_phantom_pjrc
Compiling C: matrix.c
avr-gcc -c -mmcu=atmega32u4        -gdwarf-2 -DF_CPU=16000000UL -DPROTOCOL_PJRC -DBOOTMAGIC_ENABLE -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_phantom_pjrc/matrix.lst -I. -I../../tmk_core -I../../tmk_core/protocol/pjrc -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_phantom_pjrc_matrix.o.d  matrix.c -o obj_phantom_pjrc/matrix.o
matrix.c: In function 'select_col':
matrix.c:210: error: called object '1' is not a function
matrix.c:210: error: expected ':' or '...' before ';' token
../../tmk_core/rules.mk:551: recipe for target 'obj_phantom_pjrc/matrix.o' failed
make: *** [obj_phantom_pjrc/matrix.o] Error 1

Code: [Select]
/* Copyright 2012 Jun Wako <wakojun@gmail.com>
 *
 * This is heavily based on phantom/board.{c|h}.
 * https://github.com/BathroomEpiphanies/AVR-Keyboard
 *
 * Copyright (c) 2012 Fredrik Atmer, Bathroom Epiphanies Inc
 * http://bathroomepiphanies.com
 *
 * As for liscensing consult with the original files or its author.
 */
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "debug.h"
#include "util.h"
#include "matrix.h"


#ifndef DEBOUNCE
#   define DEBOUNCE 0
#endif
static uint8_t debouncing = DEBOUNCE;

// bit array of key state(1:on, 0:off)
static matrix_row_t matrix[MATRIX_ROWS];
static matrix_row_t matrix_debouncing[MATRIX_ROWS];

static uint8_t read_rows(void);
static void init_rows(void);
static void unselect_cols(void);
static void select_col(uint8_t col);

#ifndef SLEEP_LED_ENABLE
/* LEDs are on output compare pins OC1B OC1C
   This activates fast PWM mode on them.
   Prescaler 256 and 8-bit counter results in
   16000000/256/256 = 244 Hz blink frequency.
   LED_A: Caps Lock
   LED_B: Scroll Lock  */
/* Output on PWM pins are turned off when the timer
   reaches the value in the output compare register,
   and are turned on when it reaches TOP (=256). */
static
void setup_leds(void)
{
    TCCR1A |=      // Timer control register 1A
        (1<<WGM10) | // Fast PWM 8-bit
        (1<<COM1B1)| // Clear OC1B on match, set at TOP
        (1<<COM1C1); // Clear OC1C on match, set at TOP
    TCCR1B |=      // Timer control register 1B
        (1<<WGM12) | // Fast PWM 8-bit
        (1<<CS12);   // Prescaler 256
    OCR1B = LED_BRIGHTNESS;    // Output compare register 1B
    OCR1C = LED_BRIGHTNESS;    // Output compare register 1C
    // LEDs: LED_A -> PORTB6, LED_B -> PORTB7
    DDRB  |= (1<<6) | (1<<7);
    PORTB  &= ~((1<<6) | (1<<7));
}
#endif

inline
uint8_t matrix_rows(void)
{
    return MATRIX_ROWS;
}

inline
uint8_t matrix_cols(void)
{
    return MATRIX_COLS;
}

void matrix_init(void)
{
    // To use PORTF disable JTAG with writing JTD bit twice within four cycles.
    MCUCR |= (1<<JTD);
    MCUCR |= (1<<JTD);

    // initialize row and col
    unselect_cols();
    init_rows();
#ifndef SLEEP_LED_ENABLE
    setup_leds();
#endif

    // initialize matrix state: all keys off
    for (uint8_t i = 0; i < MATRIX_ROWS; i++)  {
        matrix[i] = 0;
        matrix_debouncing[i] = 0;
    }
}

uint8_t matrix_scan(void)
{
    for (uint8_t col = 0; col < MATRIX_COLS; col++) {  // 0-16
        select_col(col);
        _delay_us(3);       // without this wait it won't read stable value.
        uint8_t rows = read_rows();
        for (uint8_t row = 0; row < MATRIX_ROWS; row++) {  // 0-5
            bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
            bool curr_bit = rows & (1<<row);
            if (prev_bit != curr_bit) {
                matrix_debouncing[row] ^= ((matrix_row_t)1<<col);
                if (debouncing) {
                    dprint("bounce!: "); dprintf("%02X", debouncing); dprintln();
                }
                debouncing = DEBOUNCE;
            }
        }
        unselect_cols();
    }

    if (debouncing) {
        if (--debouncing) {
            _delay_ms(1);
        } else {
            for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
                matrix[i] = matrix_debouncing[i];
            }
        }
    }

    return 1;
}

bool matrix_is_modified(void)
{
    if (debouncing) return false;
    return true;
}

inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
    return (matrix[row] & ((matrix_row_t)1<<col));
}

inline
matrix_row_t matrix_get_row(uint8_t row)
{
    return matrix[row];
}

void matrix_print(void)
{
    print("\nr/c 0123456789ABCDEF\n");
    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
        xprintf("%02X: %032lb\n", row, bitrev32(matrix_get_row(row)));
    }
}

uint8_t matrix_key_count(void)
{
    uint8_t count = 0;
    for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
        count += bitpop32(matrix[i]);
    }
    return count;
}

/* Row pin configuration
 * row: 0   1   2   3   4   5
 * pin: F7  F6  F5  F4  F1  F0
 */
static void init_rows(void)
{
    // Input with pull-up(DDR:0, PORT:1)
    DDRB  &= ~0b00111111;
    PORTB |= 0b00111111;
}

static uint8_t read_rows(void)
{
    return (PINF&(1<<7) ? 0 : (1<<0)) |
           (PINB&(1<<6) ? 0 : (1<<1)) |
           (PINB&(1<<5) ? 0 : (1<<2)) |
           (PINB&(1<<4) ? 0 : (1<<3)) |
           (PINB&(1<<1) ? 0 : (1<<4)) |
           (PINB&(1<<0) ? 0 : (1<<5));
}

/* Column pin configuration
 * col: 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16
 * pin: C7  C6  D3  D2  D5  D1  D0  B7  B3  B2  D6  B1  B0  D7  B4  B5  B6
 */
static void unselect_cols(void)
{
    // Hi-Z(DDR:0, PORT:0) to unselect
    DDRC  |= 0b11000000; // PC: 7 6
    PORTC |= 0b11000000;
    DDRD  |= 0b11111111; // PD: 7 6 5 4 3 2 1 0
    PORTD |= 0b11111111;
    DDRE  |= 0b01000000; // PE: 6
    PORTE |= 0b01000000;
    DDRF  |= 0b11110011; // PF: 7 6 5 4 1 0
    PORTF |= 0b11110011;
}

static void select_col(uint8_t col)
{
    // Output low(DDR:1, PORT:0) to select
    switch (col) {
        case 0:
            DDRC  |= (1<<7);
            PORTC &= ~(1<<7);
            break;
        case 1
            DDRC  |= (1<<6);
            PORTC &= ~(1<<6);
            break;
        case 2:
            DDRD  |= (1<<3);
            PORTD &= ~(1<<3);
            break;
        case 3:
            DDRD  |= (1<<2);
            PORTD &= ~(1<<2);
            break;
        case 4:
            DDRD  |= (1<<5);
            PORTD &= ~(1<<5);
            break;
        case 5:
            DDRD  |= (1<<1);
            PORTD &= ~(1<<1);
            break;
        case 6:
            DDRD  |= (1<<0);
            PORTD &= ~(1<<0);
            break;
        case 7:
            DDRB  |= (1<<7);
            PORTB &= ~(1<<7);
            break;
        case 8:
            DDRB  |= (1<<3);
            PORTB &= ~(1<<3);
            break;
        case 9:
            DDRB  |= (1<<2);
            PORTB &= ~(1<<2);
            break;
        case 10:
            DDRD  |= (1<<6);
            PORTD &= ~(1<<6);
            break;
        case 11:
            DDRB  |= (1<<1);
            PORTB &= ~(1<<1);
            break;
        case 12:
            DDRB  |= (1<<0);
            PORTB &= ~(1<<0);
            break;
        case 13:
            DDRD  |= (1<<7);
            PORTD &= ~(1<<7);
            break;
        case 14:
            DDRB  |= (1<<4);
            PORTB &= ~(1<<4);
            break;
        case 15:
            DDRB  |= (1<<5);
            PORTB &= ~(1<<5);
            break;
        case 16:
            DDRB  |= (1<<6);
            PORTB &= ~(1<<6);
            break;
    }
}
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #65 on: Sun, 04 October 2015, 20:09:30 »
You are missing a colon after the 1 on line 209.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #66 on: Sun, 04 October 2015, 20:11:41 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #67 on: Sun, 04 October 2015, 20:12:31 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #68 on: Sun, 04 October 2015, 20:15:53 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

true but the error should have pointed me right there :/

at any rate. the board isn't registering any keystrokes now. not sure whats going on. i'll have to check out the matrix file and see what i can figure out. it should be almost the same as a phantom TKL which is what i'm basing this on. only difference is afew keys here and there.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #69 on: Sun, 04 October 2015, 20:19:50 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

true but the error should have pointed me right there :/

at any rate. the board isn't registering any keystrokes now. not sure whats going on. i'll have to check out the matrix file and see what i can figure out. it should be almost the same as a phantom TKL which is what i'm basing this on. only difference is afew keys here and there.

Are you using hid_listen for debugging?

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline VinnyCordeiro

  • Posts: 432
Re: BCDMK001: first mechanical keyboard build
« Reply #70 on: Sun, 04 October 2015, 20:21:53 »
You forgot a ':' at line 209. It should be
Code: [Select]
case 1:

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #71 on: Sun, 04 October 2015, 20:25:07 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

true but the error should have pointed me right there :/

at any rate. the board isn't registering any keystrokes now. not sure whats going on. i'll have to check out the matrix file and see what i can figure out. it should be almost the same as a phantom TKL which is what i'm basing this on. only difference is afew keys here and there.

Are you using hid_listen for debugging?

and why would a n00b like me be using a tool like that xD

thanks ;)

update: so the board is connecting then immediately disconnecting. going to restart and see if that makes any difference.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #72 on: Sun, 04 October 2015, 20:26:44 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

true but the error should have pointed me right there :/

at any rate. the board isn't registering any keystrokes now. not sure whats going on. i'll have to check out the matrix file and see what i can figure out. it should be almost the same as a phantom TKL which is what i'm basing this on. only difference is afew keys here and there.

Are you using hid_listen for debugging?

and why would a n00b like me be using a tool like that xD

thanks ;)

update: so the board is connecting then immediately disconnecting. going to restart and see if that makes any difference.

That probably means the firmware is crashing right away for some reason.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #73 on: Sun, 04 October 2015, 20:33:19 »
You are missing a colon after the 1 on line 209.
:thumb:
thanks ive gotten to the point where i'm just over looking stuff for no reason :( maybe i need to give it a day and revisit it if i dont start making progress soon.

It's always easier to find bugs and typo's in someone else's code because you haven't been staring at it a long time.

true but the error should have pointed me right there :/

at any rate. the board isn't registering any keystrokes now. not sure whats going on. i'll have to check out the matrix file and see what i can figure out. it should be almost the same as a phantom TKL which is what i'm basing this on. only difference is afew keys here and there.

Are you using hid_listen for debugging?

and why would a n00b like me be using a tool like that xD

thanks ;)

update: so the board is connecting then immediately disconnecting. going to restart and see if that makes any difference.

That probably means the firmware is crashing right away for some reason.

i'd hazard a guess its my pin configuration. because thats the most heavily modified file ive messed with. u_u
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #74 on: Mon, 05 October 2015, 07:54:14 »
well i figured out the crashing but now its on to more issues. not even sure how to begin troubleshooting so i'm dumping my entire firmware build folder here. base on the TMK Phantom TKL design i haven't even modified the keymap yet. matrix.c reflects my pins.

HID Listen shows Listening... Done. immediately after plugging the keyboard in. no keystrokes are showing.

any help or suggestions is again much appreciated.

on another note. if i load the blank default phantom firmware with no modifications it seems to somewhat work. keys are all crazy and alot dont seem to work but there is life. i have likely bashed up the matrix.c file and will continue to look over it.
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #75 on: Mon, 05 October 2015, 08:05:26 »
i found something that looked out of place. and moved the DDRF PORTF around to reflect the pins used for rows and columns. DDRB was in the rows and i'm using F pins. all and all it has the same result in the output. keyboard isn't functioning properly.

Code: [Select]
static void init_rows(void)
{
    // Input with pull-up(DDR:0, PORT:1)
DDRF  |= 0b11110011; // PF: 7 6 5 4 1 0
    PORTF |= 0b11110011;

}

static uint8_t read_rows(void)
{
    return (PINF&(1<<7) ? 0 : (1<<0)) |
           (PINF&(1<<6) ? 0 : (1<<1)) |
           (PINF&(1<<5) ? 0 : (1<<2)) |
           (PINF&(1<<4) ? 0 : (1<<3)) |
           (PINF&(1<<1) ? 0 : (1<<4)) |
           (PINF&(1<<0) ? 0 : (1<<5));
}

/* Column pin configuration
 * col: 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16
 * pin: C7  C6  D3  D2  D5  D1  D0  B7  B3  B2  D6  B1  B0  D7  B4  B5  B6
 */
static void unselect_cols(void)
{
    // Hi-Z(DDR:0, PORT:0) to unselect
    DDRC  |= 0b11000000; // PC: 7 6
    PORTC |= 0b11000000;
    DDRD  |= 0b11111111; // PD: 7 6 5 4 3 2 1 0
    PORTD |= 0b11111111;
    DDRE  |= 0b01000000; // PE: 6
DDRB  &= ~0b00111111;
    PORTE |= 0b01000000;
    PORTB |= 0b00111111;
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #76 on: Fri, 09 October 2015, 09:10:26 »
Odd i get returned key strokes when i use the default phantom files but when i use my custom ones nothing. keys from the phantom setup don't return proper key strokes for the keys pressed. which file and which section am i supposed to modify for my custom pinnout and keymap? also when making the hex file how should i indicate ansi? "make -f Makefile.pjrc ansi' ???
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #77 on: Sat, 10 October 2015, 13:12:59 »


Odd i get returned key strokes when i use the default phantom files but when i use my custom ones nothing. keys from the phantom setup don't return proper key strokes for the keys pressed. which file and which section am i supposed to modify for my custom pinnout and keymap? also when making the hex file how should i indicate ansi? "make -f Makefile.pjrc ansi' ???

If the filename is keymap-ansi.c, then you want make KEYMAP=ansi

You'll probably get faster answers and more experts attention in the TMK thread.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #78 on: Wed, 14 October 2015, 08:30:26 »


Odd i get returned key strokes when i use the default phantom files but when i use my custom ones nothing. keys from the phantom setup don't return proper key strokes for the keys pressed. which file and which section am i supposed to modify for my custom pinnout and keymap? also when making the hex file how should i indicate ansi? "make -f Makefile.pjrc ansi' ???

If the filename is keymap-ansi.c, then you want make KEYMAP=ansi

You'll probably get faster answers and more experts attention in the TMK thread.

thanks. i tried that with no resolve. i have a feeling its because of the pattern i soldered the wires onto the board (rows, columns) its not the standard because at the time i didnt know there was a standard. learning process. i jumped in with 2 feet so i kinda figured i'd hit a brick wall or 3. hopefully i can get some assistance if not just "your doing it wrong solder the pins in the right order"

Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline njbair

  • Posts: 2825
  • Location: Cleveland, Ohio
  • I love the Powerglove. It's so bad.
    • nickbair.net
Re: BCDMK001: first mechanical keyboard build
« Reply #79 on: Wed, 14 October 2015, 08:37:21 »
At this point you're already in over my head, as I've never had to configure a new matrix in TMK... Just new layouts for existing ones.

Alpine Winter GB | My Personal TMK Firmware Repo
IBM Rubber Band "Floss" Mod | Click Modding Alps 101 | Flame-Polishing Cherry MX Stems
Review: hasu's USB to USB converter
My boards:
More
AEKII 60% | Alps64 HHKB | Ducky Shine 3, MX Blues | IBM Model M #1391401, Nov. 1990 | IBM SSK #1391472, Nov. 1987, screw modded, rubber-band modded | Noppoo EC108-Pro, 45g | Infinity 60% v2 Hacker, Matias Quiet Pros | Infinity 60% v2 Standard, MX Browns | Cherry G80-1800LPCEU-2, MX Blacks | Cherry G80-1813 (Dolch), MX Blues | Unicomp M-122, ANSI-modded | Unicomp M-122 (Unsaver mod in progress) | 2x Unitek K-258, White Alps | Apple boards (IIGS, AEKII) | Varmilo VA87MR, Gateron Blacks | Filco Zero TKL, Fukka White Alps | Planck, Gateron Browns | Monarch, click-modded Cream Alps

Offline Zustiur

  • Posts: 235
Re: BCDMK001: first mechanical keyboard build
« Reply #80 on: Wed, 21 October 2015, 09:40:05 »
I saw you posted in the TMK thread. Have you got it working now? I may be able to help with the firmware when I get home this weekend if you're still stuck.

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #81 on: Wed, 21 October 2015, 09:48:42 »
I saw you posted in the TMK thread. Have you got it working now? I may be able to help with the firmware when I get home this weekend if you're still stuck.
No not yet still messing with it
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #82 on: Sat, 24 October 2015, 15:53:53 »
I'm thinking about just tearing it apart and doing a JD40 or 60%
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case
                             
    

Offline mrbishop

  • * Maker
  • Thread Starter
  • Posts: 799
  • Location: South Carolina USA
  • Evil Genius
    • Bishop Computer Design web
Re: BCDMK001: first mechanical keyboard build
« Reply #83 on: Sat, 31 October 2015, 09:39:30 »
So this happened

I think I have a making problem lol
Projects
Build to give back, 40% | Alps/Matias Removal ToolUltraHack 67% Hackdura  | ErgoDox case