Git Product home page Git Product logo

Comments (9)

benblazak avatar benblazak commented on July 19, 2024

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.

rzetterberg avatar rzetterberg commented on July 19, 2024

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.

benblazak avatar benblazak commented on July 19, 2024

Hmm, interesting. Thanks for posting back. Good luck!

from ergodox-firmware.

rzetterberg avatar rzetterberg commented on July 19, 2024

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.

rzetterberg avatar rzetterberg commented on July 19, 2024

IT'S WORKING!

I reflowed all solders and now it works! :D

Thanks for the help and the firmware!

from ergodox-firmware.

benblazak avatar benblazak commented on July 19, 2024

Glad you got it working!

from ergodox-firmware.

spamik avatar spamik commented on July 19, 2024

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.

grahamc avatar grahamc commented on July 19, 2024

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.

spamik avatar spamik commented on July 19, 2024

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)

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.