Git Product home page Git Product logo

Comments (1)

benblazak avatar benblazak commented on July 19, 2024

Hey,

So, layouts in the master branch are super hard to read (which is why I changed that in partial-rewrite), it’s been a while since I’ve touched that code, I don’t have a keyboard with me to test, and I’m pretty busy with school at the moment (lol — so many disclaimers today), but it looks to me like layer 2 should be the only one that’s working, if anything. You only have 2 layer keys — both, on press, are pushing layer-number 2 onto the stack with layer-stack-id 1 (if I’m remembering my master branch terms correctly), and then popping that layer off the stack on release.

In case you don’t know (never mind if you do), the number in _kb_layout[] controls which layer-number is pushed onto the stack, and the number at the end of lpush* controls the layer-stack-id. It looks like in my original layouts I kept the numbers matching, so that layer 1 was pushed with id 1, and so on, but I don’t think this is necessary.

I dunno if that answers any of your questions, but I hope it’s helpful somehow. As long as you’re writing the layout from scratch, I’d recommend the partial-rewrite branch, unless you’re using any of the features specific to master. Feel free to let me know if you’re still having problems :) I’ll answer if I have time.

~ Ben

On Sep 1, 2014, at 11:56 PM, Bob [email protected] wrote:

Hi there,
I'm attempting to get this working on my ergodox and I'm having problems with layers that shouldn't be happening. I can't seem to push anything besides layer 1 onto the stack; neither layer 2 or 3 work (all from layer 0), while layer 1 works fine. Furthermore on layer 1 I must press shift first if I want to get shifted keys; pressing shift after I press my layer key results in only lowercase keypresses.

I'm on master right now but this didn't work on partial-rewrite either. I'm on Ubuntu 13.10. My make output looks like this:

--- making keyboard/ergodox/layout/qwerty-kinesis-mod.o ---
avr-gcc -c -mmcu=atmega32u4 -DF_CPU=16000000 -DMAKEFILE_BOARD='teensy-2-0' -DMAKEFILE_KEYBOARD='ergodox' -DMAKEFILE_KEYBOARD_LAYOUT='qwerty-kinesis-mod' -DMAKEFILE_DEBOUNCE_TIME='5' -DMAKEFILE_LED_BRIGHTNESS='0.5' -std=gnu99 -Os -Wall -Wstrict-prototypes -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -MMD -MP -MF keyboard/ergodox/layout/qwerty-kinesis-mod.o.dep keyboard/ergodox/layout/qwerty-kinesis-mod.c -o keyboard/ergodox/layout/qwerty-kinesis-mod.o

--- making firmware.elf ---
avr-gcc -mmcu=atmega32u4 -DF_CPU=16000000 -DMAKEFILE_BOARD='teensy-2-0' -DMAKEFILE_KEYBOARD='ergodox' -DMAKEFILE_KEYBOARD_LAYOUT='qwerty-kinesis-mod' -DMAKEFILE_DEBOUNCE_TIME='5' -DMAKEFILE_LED_BRIGHTNESS='0.5' -std=gnu99 -Os -Wall -Wstrict-prototypes -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -Wl,-Map=firmware.map,--cref -Wl,--relax -Wl,--gc-sections main.o keyboard/ergodox/controller.o keyboard/ergodox/controller/mcp23018.o keyboard/ergodox/controller/teensy-2-0.o keyboard/ergodox/layout/qwerty-kinesis-mod.o lib/key-functions/private.o lib/twi/teensy-2-0.o lib/usb/TODO.o lib/key-functions/public/basic.o lib/key-functions/public/device.o lib/key-functions/public/special.o lib-other/pjrc/usb_keyboard/usb_keyboard.o --output firmware.elf

--- making firmware.hex ---

from the WinAVR makefile template (modified)

avr-objcopy -O ihex
-R .eeprom -R .fuse -R .lock -R .signature
firmware.elf firmware.hex

--- making firmware.eep ---

from the WinAVR makefile template (modified)

avr-objcopy -O ihex
-j .eeprom
--set-section-flags=.eeprom="alloc,load"
--change-section-lma .eeprom=0
--no-change-warnings
firmware.elf firmware.eep || exit 0

------- done --------------------------------------------------

avr-size --target=ihex firmware.hex
text data bss dec hex filename
0 9744 0 9744 2610 firmware.hex

avr-size --target=ihex firmware.eep
text data bss dec hex filename
0 0 0 0 0 firmware.eep

you can load "firmware.hex" and "firmware.eep" onto the
Teensy using the Teensy loader


and my layout.c, for brevity, is posted on pastebin here: http://pastebin.com/1rXa7MPr

is there anything crazy I'm doing wrong? Is this done another way in the Massdrop Configurator? My layers used to work fine on that, but sadly the configurator isn't working right now and I didn't save any of the source code from the layouts I generated with multiple layers.

Thank you


Reply to this email directly or view it on GitHub.

from ergodox-firmware.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.