Page 1 of 4
A Smaller Xwhatsit
Posted: 06 Apr 2016, 03:31
by wcass
I have been a hobby draftsman for about 30 years and have a fairly good understanding of plumbing, so I thought I could rearrange Xwhatsit’s Model F controller to make it more convenient to use in new capacitive keyboards; this despite having no electronics experience or training at all. I tried a bunch of EDA software and … let me just say that, IMHO DipTrace is vastly superior to KiCAD and is free for hobbyists (up to 300 pins).
Lucky for me, when I started this, Red had just published a DipTrace redesign version of Xwhatsit’s and I started with his schematic. Red had designed for 0.05” pitch ribbon cable; I considered that to be too fine for normal folks (like me) to hand solder, so my design goals were 0.1” pitch ribbon (easy to source) all in-line, expansion header on left or right side, and convenient mount holes – all in a nice small package so as to easily fit in small places.
Like Xwhatsit and Red, resistors and capacitors are 0805 (except for resistor packs). Red chose to replace the ultra fine pitch surface mount component shift register that Xwhatsit used with a larger (but functionally equivalent) footprint and that seemed like a reasonable replacement to me. I changed RP1 and RP2 for a single bussed resistor pack (RP12) and went for a much smaller crystal to save space. Changing the crystal meant that I had to change the value of the load capacitors slightly. I made a few assumptions that I believe to be true; the big one being that row order do not make any difference at all. This allows me to route the row traces with a little more freedom. The design I came up with is this …
- xwhatsit3.JPG (291.15 KiB) Viewed 19092 times
- xwhatsit4.jpg (73.92 KiB) Viewed 19092 times
I ordered PCBs from OshPark ($15 for 3 copies), a stencil from OshStencils ($7), and components for 3 copies from Digikey ($50). The stencil and components came quickly, the PCB took two weeks.
- xwhatsit.jpg (192.25 KiB) Viewed 19092 times
Notice the USB connector? Those holes are supposed to be slots (compare to design). Something that I missed when ordering the PCBs is that OshPark does not do slots and because of that, the connector side tabs don’t fit. The back tabs fit (but are off center), so I just bend the side tabs up, solder away, and hope that the pins solder OK.
For those of you who have not tried hot-plate reflow, you should. These video shows you how easy it is …
https://www.sparkfun.com/tutorials/59
https://www.youtube.com/watch?v=vLMTDwBuCiw
I use a Cuisinart CSK-150 that I picked up at Goodwill.
https://www.cuisinart.com/products/elec ... k-150.html
Anyway, this is what I ended up with. The problem is ... it is not working. When I connect a USB cable, it does not detect a new device, so I can't program the processor. It might just be the USB connector, but i'm not sure. Suggestions would be welcomed.
- xwhatsit 002.jpg (188.04 KiB) Viewed 19092 times
Posted: 06 Apr 2016, 03:48
by Ellipse
FYI all - I am hoping to use this redesigned controller with the F62/F77 keyboards.
wcass in Windows device manager does it say ATMega device when you plug it in?
Here are the troubleshooting/firmware installation steps I suggested to wcass over PM (I assume they did not work for wcass): To install the firmware using Windows (I don't know about the other OS installation procedures), after assembly you would install atmel flip, plug in the USB on the controller and plug it into the computer, then go to device manager, right click the "Atmel" device, click have disk, go to the Atmel Flip installation folder, allow searching subfolders, and install the driver, then load atmel Flip 3.4.7, click the chip icon "select a target device" and pick atmega32U2, click OK, then click the USB icon, click USB, click Open, then click File, Load HEX file and select the firmware hex file, then click run. After it says verified/pass then unplug the cable, wait 10 seconds, plug it back in, wait another 10 seconds, then open xwhatsit's newest version of the GUI (0.9.0?) and if it opens then you were successful.
Posted: 06 Apr 2016, 04:33
by wcass
OS detects nothing when i plug it in. I was hoping that the macro picture would show a bridge somewhere or a flipped component. if there is one, i can't find it.
Posted: 06 Apr 2016, 05:27
by Engicoder
It looks like there is a via in the VCC line off the connector that goes to the ground plane on the back, but I may be mis-interpreting it.
Posted: 06 Apr 2016, 06:21
by wcass
Engicoder wrote: ↑It looks like there is a via in the VCC line off the connector that goes to the ground plane on the back, but I may be mis-interpreting it.
Thanks for looking Engicoder.
that is a silkscreen layer (green) dot to mark pin 1. sorry, the picture is not clearer.
Posted: 06 Apr 2016, 06:29
by wcass
Does the ATmega32U2 chip come with/without a bootloader pre-loaded?
If so, how would i find out which i got?
From my DigiKey invoice ...
ATMEGA32U2-AU-ND
IC MCU 8BIT 32KB FLASH 32TQFP
HTSUS: 8542.31.0000
ECCN: EAR99
LEAD: LEAD FREE
ROHS: ROHS COMP
REACH: REACH UNAFFECTED DEC-2015
COUNTRY/ORIGIN: PHILIPPINES
CAGE: 1FN41
Posted: 06 Apr 2016, 07:36
by Engicoder
Yes, it is preprogrammed with the Atmel flavor DFU bootloader. According to Sections 25.2 and 23.6.3 of the
datasheet, the HWBE (Hardware Boot Enable) fuse is programmed from the factory so that the bootloader can be hardware triggered by holding PD7 low on reset.
Posted: 06 Apr 2016, 11:39
by vvp
If you can get to ISP leads then you can try to connect it to a programmer. I think (but I'm not sure) that the programmer will find the chip even if the external oscillator/crystal does not work. The communication with the programmer should happen before the chip switches to the external clock source. The only thing actually required to get the part recognized by the programmer is the power source for the chip. On the other side, USB requires the external oscillator working.
Posted: 06 Apr 2016, 12:28
by flabbergast
I also think that if you can get an AVR ISP programmer connected, the crystal and fuses should not matter. However you've made some unusual choices in routing - 2x3 connectors looking like that are usually connected to the pins that allow you to hook up an ISP there; in your case they go to some random pins. Hooking up an ISP would require you to solder wires directly to MCU pins.
Crystal - I thought that the load caps should be physically as close to the crystal pins as possible (not sure how much does that matter - I guess the issue could be the traces' capacitance). Don't know whether this could be a problem.
If the bootloader is there (which I think it is - it seems to me that almost noone in the KB world ever flashes a bootloader, including hasu and bpiphany who do 32u2 MCUs), then I think it will run regardless of the HWBE fuse/HWB pin status, because the rest of the flash is blank. However you might want to pull HWB low just to be on the safe side.
Posted: 06 Apr 2016, 14:15
by 0100010
Ellipse wrote: ↑FYI all - I am hoping to use this redesigned controller with the F62/F77 keyboards.
Why? Seems better to me to use a proven design, especially for touting a complete working product.
Posted: 06 Apr 2016, 14:17
by 0100010
Also remember that xwhatsit made his controller as wide as it was because of the original ribbon cable width and to fit at least one of the grounding / mount points.
Posted: 06 Apr 2016, 14:20
by Ratfink
0100010 wrote: ↑Ellipse wrote: ↑FYI all - I am hoping to use this redesigned controller with the F62/F77 keyboards.
Why? Seems better to me to use a proven design, especially for touting a complete working product.
Ellipse needs a smaller controller to fit inside the smaller case he's developing. If he can use the smaller controller for all of the 'boards he produces, there's one fewer part to change if you decide you want to switch to the smaller case.
Posted: 06 Apr 2016, 15:06
by 0100010
I would just have folded the controller under the bottom plate using slightly longer wires.
Posted: 06 Apr 2016, 18:23
by vvp
flabbergast wrote: ↑
If the bootloader is there (which I think it is - it seems to me that almost noone in the KB world ever flashes a bootloader, including hasu and bpiphany who do 32u2 MCUs), then I think it will run regardless of the HWBE fuse/HWB pin status, because the rest of the flash is blank. However you might want to pull HWB low just to be on the safe side.
I'm not sure about ATmega bootloader but ATMEL ATXmega128a4u bootloader always enters the bootloader mode if the flash is blank. Regardless of everything else. I would expect ATmega to behave the same way.
Posted: 06 Apr 2016, 21:02
by 0100010
wcass wrote: ↑Engicoder wrote: ↑It looks like there is a via in the VCC line off the connector that goes to the ground plane on the back, but I may be mis-interpreting it.
Thanks for looking Engicoder.
that is a silkscreen layer (green) dot to mark pin 1. sorry, the picture is not clearer.
What is C6 for?
Posted: 06 Apr 2016, 21:34
by flabbergast
0100010 wrote: ↑What is C6 for?
I'd guess it's one of the several
contradictory options to connect the shield...
Posted: 06 Apr 2016, 22:32
by wcass
My C6 is the same as what Xwhatsit's C6. Clips of his schematic and design below.
- xwhatsit6.jpg (18.98 KiB) Viewed 18852 times
- xwhatsit5.jpg (78.76 KiB) Viewed 18852 times
Posted: 06 Apr 2016, 22:54
by 0100010
If you look from the back edge of the USB connector - do the pins look like they are all in contact with the board? I've been staring at your layout and the populated PCB pics for a while now - I don't see anything wrong with it. I can't see what is under the USB connector though.
I am curious if your combining RP1 and RP2 will be OK from a capacitive scanning POV - but that wouldn't be affecting the USB to controller side of the circuit.
Posted: 07 Apr 2016, 00:00
by vivalarevolución
This is wonderful. Thank the heavens for hobby plumbers.
Posted: 07 Apr 2016, 05:57
by Ratfink
Just a note for when you order a revised version of this board: it's generally a bad idea to put vias inside of or directly adjacent to pads. Since they're plated-through holes, they'll get filled with solder, making you use more than you need to.
Posted: 08 Apr 2016, 04:55
by Ellipse
Here's a high res version of the original size xwhatsit controller for a visual comparison, split into two photos:
- 20141205_220518(0).jpg (726.91 KiB) Viewed 18762 times
- 20141205_220526.jpg (924.16 KiB) Viewed 18762 times
Posted: 08 Apr 2016, 05:22
by hasu
Schematic and component values would be useful for inspection. Design files cannot be open in public? Even if it is DipTrace file it would be far easier than visual inspection with pics by eyeballs
All of three PCBs were assembled and all of them don't work? If not the case you can solder another PCB carefully by hand and see what it happens.
Posted: 08 Apr 2016, 05:55
by wcass
I'm using __red__'s schematic with just the 3 changes already listed (crystal, RP12, rearranged rows).
crystal is 535-12830-1-ND with caps at 30pF. did is miscalculate that value?
I'm going to swap the USB connector for one with no pins to see if that helps.
Posted: 08 Apr 2016, 10:07
by hasu
I couldnn't find __red__'s schematic with my quick search. But assuming that __red__'s design were already confirmed and your skillet soldering works well(yes, it looks good to me) the changes you made seem to be first suspect to be examined.
From your PCB pics it seems your are using other smaller crystal thatn 535-12830-1-ND. Anyway, if you are actually using 30pF capacitors in your design it sounds to me too much for the cyrstal's load capacitance. From my experience, if you use wrong capacitors X'tal cannot oscillate and MCU doesn't boot sometime. If you have decent oscilloscope check if your X'tal really oscillates.
You can refer this note to understand Xtal's load capacitance. (To be honest I can't understand this thoroughly
)
http://www.foxonline.com/pdfs/xtaldesignnotes.pdf
But just use this rules of thumb if you can't understand it.
https://blog.adafruit.com/2012/01/24/ch ... ur-design/
Posted: 08 Apr 2016, 10:13
by flabbergast
I never really given the crystal load caps too much thought ... but just typing that crystal part number into google seems to tell me 18pF caps (e.g.
digikey description) and 60Ohm feedback resistor (although I've never seen that one used in hobby projects).
EDIT: Yes, what I write above is wrong. hasu - thanks for the links!
Posted: 08 Apr 2016, 15:57
by 0100010
Both C1 and C2 are 30pF? If yes and assuming the PCB has a stray capacitance of 4pF gives:
CL = (C1 * C2) / (C1 + C2) + Cstray
((30*30)/(30+30))+4 = 19CL [close to the 18CL specified]
C1, C2 = 2*CL – 2*Cstray
Or, (2*18)-(2*4) = 28pF [close to the 30pF caps used]
If CS=3, then the 30pF and 18CL values are spot on
If CS=5, then you get 26pF and 20CL
Have an oscillator?
Posted: 08 Apr 2016, 22:22
by wcass
__red__'s schematic and design. I'll send him a PM and ask him to take a look at this thread.
https://github.com/redvers/xwhatsit-diptrace
I don't know what the boards stray capacitance is. how would I best measure that?
Also, I have no scope. I'll
Posted: 08 Apr 2016, 22:38
by __red__
OH HAI.
I'm out and about right now and won't be back at my lab until later Wednesday evening. I actually dropped the project because there was a 3 week backlog on one of the components then got distracted by life.
I'll go ahead and re-order and should be able to build and test on Thursday (assuming I don't fall out of the sky on fire).
wcass - if you can't even program the micro-controller that's good news. Faults on that side of the board and a LOT easier to debug than the analog side.
Posted: 08 Apr 2016, 23:13
by 0100010
Without a scope to see what the rate is; I would just swag it.
You have a pair of 30pF caps now (C1=C2), and it appears not to be working (or in other words if CS was 3, then your 30pF should be good for an 18CL on the crystal). So I think we can ASS-U-ME that the CS =/= 3.
If we go with a CS=4, then since your C1=C2, and you have 18CL target :
CL = ((C1xC2)/(C1+C2))+CS
Since C1=C2 then the equation becomes:
CL=((C1xC1)/(2xC1)+CS
CL=(C1/2)+CS
Rearranging:
C1=2(CL-CS)
The crystal load capacitance is 18pF, and assuming CS=4pF, then:
C1=C2 = 2(18pF - 4pF) = 28pF
Said all that to say - can you try a pair of 0805 28pF caps?
Posted: 15 Apr 2016, 06:20
by Ellipse
So red how did your updated test go?