Can we design the teensy alternative for keyboards?

User avatar
matt3o
-[°_°]-

06 May 2016, 20:29

mohitgarg wrote: @flabbergast, yes, that is correct, however I think designing it with the intention of using it under the spacebar is by no means wrong, just wanted to make sure we were all on the same page in terms of feasible applications.
if we can find a way to make it work in both ways would be definitely better. Can you post the board exact dimensions? (usb island position, hole position, etc)

User avatar
flabbergast

06 May 2016, 20:36

Once more about the staggered headers: the footprint that I used is from mchck. I have a spare unpopulated mchck PCB from OSH Park, and I just tried a row of pins - they are by no means absolutely tight, the pins wiggle very slightly. So I'd say these are on the 'safe' side (I haven't heard anyone complain about mchcks pins not fitting), which means that they'll probably not be completely tight. I think Matt_ is right, it is possible that the pins won't make proper electrical contact on insertion.

I personally don't mind the funky look and still think it's a plus, even if it doesn't work 100% ;)

Matt_

06 May 2016, 20:46

As long as they are not too tight, it's probably okay to keep them staggered. Best case, they work as intended (tight fit), worst case they're not different from regular pads (have to be soldered to make proper contact).

If we order a small batch for testing before making it more widely available, we'll see how that works and we'll be able to change that if needed anyway.

User avatar
chzel

06 May 2016, 20:47

IIRC, the staggered pin idea started from sparkfun, so that their DIY kits would be easier to solder, with the header pins staying upright on their own making for easier alignment. They later made them available in their Eagle libraries.
They where never meant to provide reliable unsoldered connection.

Edit: found it!

User avatar
flabbergast

06 May 2016, 21:16

Nice find - I knew it's originally from Sparkfun but didn't know about this article. Now I'm gravitating towards going back to the normal ones... Ah well.

Matt_

06 May 2016, 21:17

Yes, this where it comes from. I've been using them for breakout boards in audio projects and they worked great (well, 50% of them worked great :D). As you say they are not meant to replace a proper connector between two PCBs, but they're useful for prototyping, or for non-critical (read, non-commercial) applications.

Regarding this controller, as long as pad holes are properly sized... at worst, they'll be no different from regular pads. But I understand that one may prefer to scrape off the idea altogether.

User avatar
matt3o
-[°_°]-

06 May 2016, 23:26

okay I seem to understand that the staggered pads are just vanity :) I'm okay at reverting them back to a straight path, but I leave the last word to flabbergast.

User avatar
flabbergast

06 May 2016, 23:35

Yea, no worries. I remembered them being better than they really are - and now that Matt_ shared his experience (and now I also recall that bpiphany experimented with friction-insert pins for his replacement controllers as well, and also not entirely successfully) I'm fine with going for the normal ones. (And once more, apologies to Mohit. I'll owe you a beer!)

Matt_

07 May 2016, 16:34

flabbergast wrote: If I read this right, Mohit is concerned that this can't be mounted on a PCB directly underneath a switch, like the Teensy or his original design could. This is a valid point; I thought that it's supposed to be mounted primarily underneath a spacebar.
I think if we want to make it mountable directly underneath a switch, a 'taller' board is much better (i.e. pretty much Teensy 2.0 dimensions).
About that, here is a quick comparison between what a Teensy and mohitgarg's controller allow:

Image

All of the Teensy's pads are usable (if you can route tracks around the switches), but only 21 pads are comfortably usable (23 max) on the custom controller. That should be enough for a 60% board, and you can always run wires between the PCB and the controller if you need more.

I think this is acceptable (you probably can't design one controller that pleases everyone anyway), but it would be nice if those 21 pads were all connected to the MCU's I/Os (and not the USB lines and so on).

User avatar
matt3o
-[°_°]-

07 May 2016, 16:56

if you want to use the onboard USB you can use even less pads because the board has to be pushed closer to the top.

Honestly this is something I haven't thought about, but it's still pretty important. I believe it is worth exploring the possibility of making a design that could work in both scenarios.

Would it be possible to have an SVG of your schema, @Matt_?

Matt_

07 May 2016, 17:07

I placed both controllers on the top row, but as the Teensy needs a usb extension (and a properly placed USB connector on the main pcb), I figured it didn't matter if the custom controller did too (and you can place it one row lower so that the extension does not stick out from the back).

The schema is made with Eagle, it's actually a pretty messy .brd file. Let me see if I can clean that up and export to .svg.

mohitgarg

07 May 2016, 17:08

I think we can align it so that you can use more pins, AFAIR, 32 pins if you sacrifice one PCB mount pegs on the switches on the left and right of the central switch behind which the elf is mounted. I'll share an SVG.

User avatar
vvp

07 May 2016, 17:25

matt3o wrote: ... because the board has to be pushed closer to the top.
Why do you want to have the edge of the USB socket aligned to the outside surface of the keyboard case. I also do not understand why some people think the USB peninsula is a good thing (except using the peninsula as a way to add space for the connector). If you sink in the USB socket a bit into the case then you have a slightly smaller chance that you break off the connector when pulling cable to a side; especially if your USB plug has a tight fit in its case cutout. If you make the case cutout for the plug too big (so that any USB cable can fit) you are still no worse then in the case when the USB socket is flush with the keyboard case.
Actually if you want some robustness then you should sink in the whole USB plug into the case.

Matt_

07 May 2016, 17:28

If we keep the same board size, we can at least have access to 27 pads if they are arranged as on the bottom example (I did not lay out the remaining pads):

http://reho.st/self/ed341ab8f7ad1eb0ccf ... 3d89e7.png

Export to .svg seems utterly unpractical with Eagle, but here is the .brd file if anyone wants to play with it (works with Eagle 6.4.0 Light and above): https://dl.dropboxusercontent.com/u/104 ... c_test.brd
Last edited by Matt_ on 07 May 2016, 17:46, edited 1 time in total.

User avatar
vvp

07 May 2016, 17:38

Matt_, you should probably draw the controller PCB flipped so that user have access to the reset button from the bottom.

Matt_

07 May 2016, 17:45

Oh, that's right, they're all reversed. This should be better:

Image

User avatar
matt3o
-[°_°]-

07 May 2016, 17:55

this would be my idea

Image

texture is where we can put "accessible" pads

Matt_

07 May 2016, 18:01

One row of pads on the top, two columns in each space between switches? That could work. One thing to keep in mind is that routing traces to the row of pads on the top may be difficult (not that much space on the PCB), especially since the space around the switch in the middle is also filled with pads (which need their own traces too). This is why I kept the row of pads on the bottom.

User avatar
matt3o
-[°_°]-

07 May 2016, 18:09

yeah it's not optimal but it exposes the USB port a little better to the top side. here below I've added the case in yellow (4mm thickness, which is the bare minimum). As you can see it's already pretty recessed

Image

User avatar
matt3o
-[°_°]-

07 May 2016, 18:15

Probably better

Image

Matt_

07 May 2016, 18:15

Just in passing, here is how the USB port sticks out on my main board:

Image

So yeah, I'm all for a recessed USB port :D

User avatar
matt3o
-[°_°]-

07 May 2016, 18:18

please consider that we are talking "custom" keyboards here, 90% of the times you are probably dealing with "sandwich case", maybe 3d printed

Matt_

07 May 2016, 18:21

Sure. That was just to show how it looks when the USB port is too far up.

But since this is aimed at custom builds, I'm not sure what would be the safest position for it to be compatible with the widest range of custom cases.

User avatar
matt3o
-[°_°]-

07 May 2016, 18:35

I guess, best case scenario you are reusing a CNC'd poker case, I don't think you could make it align with our board, so you would need to place the controlled inside the board anyway and route the USB pads.

but we could make the USB stick a little less if you think it is better (please provide visual proof :) )

User avatar
vvp

07 May 2016, 18:53

No visual proof needed. There is a practical reason why the connector should be as recessed as possible. The less the usb plug sticks out the smaller the chance a damaging force will be exerted on it.

User avatar
matt3o
-[°_°]-

07 May 2016, 19:10

I'm pretty confident the current config is pretty robust, if one is really paranoid about USB fragility (which is totally understandable) he/she could add epoxy glue or put the controller inside the case and drive an extension cable.

Matt_

07 May 2016, 19:32

matt3o wrote: but we could make the USB stick a little less if you think it is better (please provide visual proof :) )
To be fair, I don't think that USB placement matters that much. If it's located in a way that suits my project, fine; otherwise, I'll just design my pcb to accomodate its own USB port, with traces between it and the controller's USB pads (or a USB extension), which gives me much more flexibility than if I rely on the controller itself for USB (plus this allows me to use any kind of USB port — mini, micro or C).

Likewise, people who handwire their keyboard can use a USB breakout board and place it where they want, so they don't have to rely on the controller's USB. This, by the way, would put less stress on the controller itself, so we won't have to worry that much about making mounting holes fool-proof (they just need to be practical).

All that matters to me is that a sufficient number of pads are available if I want to mount the controller on top of switches (I don't expect all of the to be, Teensy-ish would be nice already). If there is a "best" way to place the USB port and we can do this without compromizing pad location, so much the better, but I think that the latter is much more critical than the former :)

User avatar
matt3o
-[°_°]-

07 May 2016, 19:36

Totally agree with you @Matt_

Something like this (if feasible) would allow to position the board both close to the top and more recessed (and enough pins on both configs)

Image

User avatar
flabbergast

07 May 2016, 19:46

I had the impression that most people (myself included) do not route out the USB to an extra connector on a basic handwired boards (reasons: cost, it's an extra layer of work that's not entirely necessary, practicality in actually buying the parts (they usually don't come from the places from which the other parts are obtained from)) and just place the controller board close to and edge and glue it there. Of course it's better for several reasons to actually do the work (Matt_ summarised them pretty well), but...

So I am for sticking the USB socket out a little. I don't think you can easily break off a 3mm x 5mm pad sticking out of a 1.6mm thick PCB (having cut some panelised PCBs in half, it wasn't that easy).

User avatar
flabbergast

07 May 2016, 19:48

Ha! For me the challenge was to make the thing as small as possible... :P
{The only thing with this layout is that there's going to be many traces going between the middle pins...}

Post Reply

Return to “Workshop”