I’ve been putting a couple hours every evening into the long, long list of hobby projects that haven’t been touched for the last 10 or so weeks. One of the successes on this front is getting to touch the Spiffchorder I was working on.
I had to pull the reusable parts (always socket your uC…) and trash the one I assembled on perfboard; after all the modifications and false starts it was a non-functioning mass of solder balls and lifted pads. I then threw one down on a breadboard, as other had reported sucess starting that way even though breadboarding something with a 12Mhz clock is a little bit electrically dubious.
I got this version working on the second try, and second only because the version of the code I modified to work with a (generally drop-in compatible and easier to source) ATMega 328p, instead of the 168 or 8 recommended by the original design is still not working properly. I suspect it is more of the issues with V-USB interrupt behavior on -p type chips, but haven’t attached it to anything that can trace fast enough to watch USB. That said, the code works fine on the one 168 I have in the parts bin (I think it was stolen from an updated arduino diecimila?), and the crappy first-pass keyboard I made for testing is… good enough to feel out the chords on, but not much else. The chord-set is actually pretty easy to work with, and I can see how it would be a comfortable (particularly in terms of “not further accelerating the joint damage to my hands”), convenient and fast input system.
Now to build a working board, a better keyer/keyboard[s], and fix the 328p code so I’m not tying up my only 168.
I found you spiffchorder post on your old blog, and your problems looked a bit familiar.
I also build a device with avr and soft usb some time ago, and I also experienced strage errors and random stability issues. I found out that I used a bad usb cable. My cable came form a usb mouse, what seemed like a good idea, but for some wired reason it did not the job (the mouse did not have any problem). When I used a usb-b socket and a normal usb a->b cable, everything worked fine.
Perhaps you experienced similar issues?
Btw. I also plan to buld a Spiffchorder in a few days / weeks, waiting for some parts for now.
I actually have it working now, but haven’t had time to write it up. The trick to making a 328p work in place of a 168 with VUSB is compiling against a 168 and telling the programmer to write the resulting binary to the 328p – you lose the additional features/memory of the 328p, but they aren’t used anyway, and it is a truly drop-in compatible part.
Pingback: More Spiffchorder | PAPPP's Rambling