Comments (1)
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.hexavr-size --target=ihex firmware.eep
text data bss dec hex filename
0 0 0 0 0 firmware.eepyou 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)
- Will a non-soldered teensy be recognized as a keyboard? HOT 2
- Any way to give Ergodox the full control over layout? HOT 8
- PROBLEMS FOR UK KEYBOARD USERS HOT 1
- Is 80 key version of ergodox supported in your code ? HOT 9
- Compose key not registered HOT 1
- Latch Keys Not Working HOT 3
- changing key from `1` to `_grave` causes unexpected behavior
- "Simple macros" don't work on Mac OS Sierra HOT 4
- How to release the 'RightAlt' upon leaving a layer. HOT 4
- Updating the USB stack HOT 1
- How to use layers? HOT 1
- Readme still links to the defunct .org site in the title HOT 1
- Set what is sent on shift HOT 1
- Random sticky/unresponsive HOT 11
- Always switched to layer 2 on the first system startup HOT 3
- Hold letter key for another key entirely HOT 1
- About the drop page cannot download .HEX files HOT 1
- Keyboard doesnt boots after tried to flashing with another firmware HOT 4
- Using ancient frozen customized fork of your firmware (didn't set it up, kinda inherited it, don't really understand it). If I get a new ergodox, could I just flash my current firmware on to it? (Paranoid the old microcontroller in my current one *might* be starting to fail...) HOT 11
- default Make target (dist) fails running gen-ui-info.py with KeyError: '_kb_layout' HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ergodox-firmware.