Comments (9)
Thanks for the details :) . Unfortunately, it's probably something to do with you system, as I've heard of my firmware working on Ubuntu, at least, as well as Windows and OS X; and if the blink demo works, and you're able to flash it over USB, the Teensy probably isn't to blame. The only thing I can really suggest is that you try a firmware built from the partial-rewrite branch as well (which should be stable, but I don't promise not to change things in the future). If that doesn't work, you might try cub-uanic's port of hasu's tmk firmware here (announced on geekhack here; never personally tried it, but I've heard it works quite well). I think Hasu's can also be configured to use a different USB stack (my firmware still uses very lightly modified PJRC code for that), which might be worth trying. Hope you get it working!
from ergodox-firmware.
Thanks for the advice!
I did some more troubleshooting yesterday. To try to narrow down the problem I loaded this simple program with Teensyduino to check that serial communication worked:
void setup() {
Serial.begin(38400);
}
void loop()
{
Serial.println("Hello World");
delay(1000);
}
It turns out that this prints random data to the serial monitor on my computer ONCE. Here is an example of that data:
�#9<
HZ
So I guess the problem lies with the Teensy itself or my soldering and not the firmware at all.
I posted a forum thread at PJRC to see whether they can help me (http://forum.pjrc.com/threads/26755-Teensy-2-outputs-random-data-to-Teensyduino-Serial-Monitor-when-quot-Hello-World-quot-is-sent).
I'll guess I have to recheck my solders and if I don't find anything I'll just order a new Teensy and try with that.
Thanks again
from ergodox-firmware.
Hmm, interesting. Thanks for posting back. Good luck!
from ergodox-firmware.
I have an update on my issue. The reason I was getting random data was because I had misconfigured the Teensyduino.
Now serial communication works as expected!
I moved on to check if just usb communication works without the Ergodox functionality. I used a precompiled hex from PJRC (https://www.pjrc.com/teensy/hid_listen.html) that uses usb_debug_putchar
to send test data to the computer and a program that listens for hid data.
The device shows up in /var/log/kern.info
when using this test program:
Oct 11 12:45:58 shinji kernel: [10902.457876] usb 6-2: new full-speed USB device number 23 using uhci_hcd
Oct 11 12:45:58 shinji kernel: [10902.631908] usb 6-2: New USB device found, idVendor=16c0, idProduct=0479
Oct 11 12:45:58 shinji kernel: [10902.631914] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 11 12:45:58 shinji kernel: [10902.631918] usb 6-2: Product: Your USB Device
Oct 11 12:45:58 shinji kernel: [10902.631922] usb 6-2: Manufacturer: Your Name
Oct 11 12:45:58 shinji kernel: [10902.637125] hid-generic 0003:16C0:0479.0018: hidraw4: USB HID v1.11 Device [Your Name Your USB Device] on usb-0000:00:1d.2-2/input0
And I recieve data from the device:
zed@shinji:~/build/hid_listen$ ./hid_listen
Waiting for device:
Listening:
dah dahChar S: dit dit dit
Char O: dah dah dah
Char S: dit dit dit
Char S: dit dit dit
Char O: dah dah dah
Char S: dit dit dit
I must have missed something when soldering, but I can't seem to figure out what. Are there any steps that are performed before registering the usb device that can fail due to hardware?
from ergodox-firmware.
IT'S WORKING!
I reflowed all solders and now it works! :D
Thanks for the help and the firmware!
from ergodox-firmware.
Glad you got it working!
from ergodox-firmware.
It's quite interesting that I see this behaviour on my ergodox too. Twice or even more key press and after resoldering switch (not replacing them) it starts working. Interesting is that I have two ergodox keyboards and I can see this only on one with MX Clear switches (some switches I resoldered even more than once) - other with blue is working still fine. And both was soldered with same equipment :) Maybe harder switches push more force on PCB or something like that...
from ergodox-firmware.
The switches are plate-mounted. Soldering can be tricky, and it requires practice to get it right. Key matrices are more complicated than your average circuitry, too. Little mistakes can have further reaching consequences. I wouldn't be ready to blame the hardness of the key :)
from ergodox-firmware.
Yeah, I haven't much experiencis with soldering but on the other hand I completed both keyboards and this problem has only one :) Just thought that bigger physical power on switch can probably badly soldered switch break sooner. For whatever reason this is happening, true is that resoldering switch mostly resolve issue with multiple presses :)
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.