65% Model F – Open Group Build

User avatar
DMA

29 Oct 2019, 02:13

manisteinn wrote:
28 Oct 2019, 23:24
Interesting, would you mind elaborating on the stick design issues? I personally don't care for click detection, but good drift detection would be important. Looking forward to your results in any case!
Contemporary sticks have 4 terminals - see patent drawings for the schematics, but there are 4 resistors in addition to the strain gauges. It is humanly possible to desolder those and have a common ground + strain gauge outputs out, but it involves desoldering 0603 SMD resistors. Which is easy if you have a JBC with tweezers, but otherwise not.
manisteinn wrote:
28 Oct 2019, 23:24
What do you have in mind for these extra pins?
I do like the idea of a custom controller with an onboard type-C port, FFC connector for the trackpoint, BLE+battery charger, LEDs etc...
I don't. You seemed to be worrying about GPIO availability.
There are literally 3 pins left unassigned on the kit, despite them not being marked on the "default pinout" picture. It only describes "user-serviceable" pins that are used in default pinout. No markings next to the pin doesn't mean it's unused.

Anyway, if you plan to attend the big meetup - I'll be there, we can chat about that.

Edit: looked into Location field. ^ doesn't seem likely.

manisteinn

09 Dec 2019, 07:48

I don't. You seemed to be worrying about GPIO availability.
There are literally 3 pins left unassigned on the kit, despite them not being marked on the "default pinout" picture. It only describes "user-serviceable" pins that are used in default pinout. No markings next to the pin doesn't mean it's unused.
I was referring to J1 pins as they're needed for the pad card. I assume only 0_2, 0_3 and 0_4 are needed on J2 and the remaining 19 GPIOs could be used for other purposes, right?
About the layout, would 90° rotated and stretched pads be a good idea for the bottom row? I noticed IBM used stretched pads for different 3741/2 enter configurations.

Anyway, if you plan to attend the big meetup - I'll be there, we can chat about that.

Edit: looked into Location field. ^ doesn't seem likely.
Did you and wcass meet and discuss the project?

Contemporary sticks have 4 terminals - see patent drawings for the schematics, but there are 4 resistors in addition to the strain gauges. It is humanly possible to desolder those and have a common ground + strain gauge outputs out, but it involves desoldering 0603 SMD resistors. Which is easy if you have a JBC with tweezers, but otherwise not.
I see. I don't think removing them is a big deal though, they're pretty accessible. You could twist them off with flush cutters in seconds or use the large tip + solder blob technique.


I disassembled the various models I have, perhaps someone'll find this useful:
Spoiler:

https://i.imgur.com/1Dcc7jo.jpg

T61
4 resistors

T41
4 resistors hiding in the middle

230e
no resistors, molded plastic heatstaked to metal backplate.

Rubber dome stick
6pin connector

M13
6-pin?

Unicomp
5-pin
None of those I have are ideal, only the 230e one could potentially be filed down to fit. It's a nice compact shape for other projects though.
Unless someone knows of an appropriate trackpoint model for this project I'll put that on hold for now. $30 for the whole assembly is a bit steep.


Case

The reason I haven't posted for a while is that I wanted to try out an idea for a fully CNC routed case. I'm impressed by the speed and surface quality I can get out of the machine I've been getting familiar with for the last couple of weeks and this seems like a great learning project. I'd much rather spend my time gaining CAM/CNC experience than cursing at 3dprinters :)

Image


My current design consists of three parts:
- Top case with ~4mm integrated plate
- A base to which the top case, sense and controller PCBs attach. The sense board on top and the controller board in a wide cutout on the bottom with a rear cutout for the wires connecting them.
- A rear bottom piece which acts as a lid for the controller board and port cutout for the type-c port. The smaller size gives me enough Z clearance (~70mm) to flip the piece for rear port cutouts, perhaps a slide switch for BLE etc. This piece could also be made thicker for permanent case tilt.

For now I'll be doing hardwood, I'm planning to cut aluminium later on but as it's more expensive and less forgiving this isn't exactly an ideal beginner project for that :)
A top mounted plate version would also be possible if a rolled/milled plate ever gets made. Milling the current plate requires ~9.5mm thick stock, I'm planning to get some POM for the beamspring project which I might try out for this.

As mentioned before I'll share the complete CAD data and also the toolpath setup in case someone wants to make their own or customize the model. For CAM I'm using FreeCAD's path workbench and while it's quite capable there are still workarounds required for some toolpaths. I'll most likely script parts of it, for example use lists of X offsets for the switch operations so that custom bottom rows are an easy change.

Process details
Spoiler:
Preparation
- Plate for angled fixtures created, with pockets for alignment when drilling locating holes.
- 2 pairs of angled fixtures created (each used for 2 of the 4 non-flat positions). Requires locating holes in two planes
- Base plate locating holes drilled. Quick and easily repeated every occasion (shared machine)

Top case
- Bottom surface facing, locating holes drilled
- Rough material removal, plate bottom 3d surfacing
- Flipped, attached to plate using dowel pins
- Rough material removal, plate top 3d surfacing
- Rough switch hole clearing (~10mm diameter), middle row can be fully cleared
- Switch to 2mm endmill, middle row alignment cutouts.
- Attach case using fixtures for the 4 remaining rows, housing and alignment holes fully cleared. The front and rear border also get cleared in those positions (parallel to switch travel).
- Case attached flat again for border finishing, chamfering etc.

Base
- Bottom surface facing, locating holes drilled
- Controller pocket, wire cutout, mounting holes.
- Flipped, attached to plate using dowel pins.
- Rough material removal, 3d surfacing.

Bottom rear cover
- Bottom surface facing, locating holes and mounting holes drilled.
- Flipped 90 deg, rear port cutout created
- Flipped to top, all but rear wall cleared

Image gallery https://imgur.com/a/UkrjUHG

I'm open to suggestions if someone has CNC experience to share :)
As for fasteners I'll initially just M3 tap the wood, but these seem ideal. Unfortunately they're not widely available and quite expensive in Europe.
I also plan to use 3x20mm dowel pins for precise top/bottom case alignment, they're ~€0.1 each so it seems like the best solution.

Here's a Chyron style navigation cluster SKCM test case I did using walnut and beech, a good indicator of what to expect: https://imgur.com/a/uFHMYgn
Videos
⌀6mm endmill, 8mm depth of cut https://gfycat.com/defiantcoldkitfox
Assembled (with sound): https://gfycat.com/agreeableenchantedanole

Controller PCB proposal

I also did a PCB mockup to fit the case:
Image

I personally prefer the longer, centered port version.
DMA: Would you be interested in doing the board layout for this? An optional BLE and battery charging section would be really cool

The battery cavity is currently ~130x30x5mm, I'm considering extending it to fit this 135 x 45 x 5 mm battery: https://www.olimex.com/Products/Power/B ... PO3000mAh/

Let me know what you think, and if there are specific features you'd like to change or add.

User avatar
DMA

09 Dec 2019, 08:38

manisteinn wrote:
09 Dec 2019, 07:48
I was referring to J1 pins as they're needed for the pad card. I assume only 0_2, 0_3 and 0_4 are needed on J2 and the remaining 19 GPIOs could be used for other purposes, right?
8R+24C+4(ExpHdr)+2(I2C) don't leave much already.
Image has 9 relatively unmarked pins, of which only 3 are truly unused.
manisteinn wrote:
09 Dec 2019, 07:48
About the layout, would 90° rotated and stretched pads be a good idea for the bottom row? I noticed IBM used stretched pads for different 3741/2 enter configurations.
For beamspring, yes. For model F - not really, because effective contact area is less than 10x14 mm and flipper-to-PCB distance is uneven. The model F usable pad space has vertical symmetry, but not horizontal. If you really need half-key spacing, you may experiment with wider pad having complementary pads on both sides. Like, R1 C1C R1.
manisteinn wrote:
09 Dec 2019, 07:48
Did you and wcass meet and discuss the project?
A bit, but no specifics.

Awesome CNC magic, man!
manisteinn wrote:
09 Dec 2019, 07:48
DMA: Would you be interested in doing the board layout for this? An optional BLE and battery charging section would be really cool
Sure, but I need to actually go and integrate BLE for reals first.

I have a board with two bucks (3v3 for keyboard and 2v1 for radio) and LiPo charger, QFN PSoC5 and a BLE module (which is not even programmed), and I have 2 cypress kits (058+143) jury-rigged into a CS-BLE - which kind of works, but requires pressing buttons on the 143 to pair to the device, so quite far from prod-readiness.

3Ah should be enough for like a month - IIRC 500mAh was good for ~20h full bore operation. My worry is current power controller won't be able to get anywhere near 600mA recommended current.

Also not sure it's time to do all that BLE stuff - it looks like cypress plans to release PSoC64 soon(https://www.cypress.com/products/32-bit ... -m4-psoc-6) - and that will allow for a single-chip USB+BLE.
Which will be awesome, but will require some serious rework of everything - software, power, 4-layer PCB for the BLE antenna.. 0.9V _might_ be too low to drive sense card..
Although they promise that for 2+ years as of now, so not sure if waiting worth it.

manisteinn

15 Dec 2019, 22:20

8R+24C+4(ExpHdr)+2(I2C) don't leave much already.
Image has 9 relatively unmarked pins, of which only 3 are truly unused.
I thought reserving 24+8 pins for projects with smaller matrices (20 total in this case) wasn't necessary, is it?
For beamspring, yes. For model F - not really, because effective contact area is less than 10x14 mm and flipper-to-PCB distance is uneven. The model F usable pad space has vertical symmetry, but not horizontal. If you really need half-key spacing, you may experiment with wider pad having complementary pads on both sides. Like, R1 C1C R1.
The half-key method is interesting, but in this case the actual positions are just 2.4765 and 4.953mm apart (see layout from my previous post)
Awesome CNC magic, man!
It's a lot of fun :)
I finished the walnut test case with gunstock oil, added to end of gallery in previous post.
Sure, but I need to actually go and integrate BLE for reals first.

I have a board with two bucks (3v3 for keyboard and 2v1 for radio) and LiPo charger, QFN PSoC5 and a BLE module (which is not even programmed), and I have 2 cypress kits (058+143) jury-rigged into a CS-BLE - which kind of works, but requires pressing buttons on the 143 to pair to the device, so quite far from prod-readiness.

3Ah should be enough for like a month - IIRC 500mAh was good for ~20h full bore operation. My worry is current power controller won't be able to get anywhere near 600mA recommended current.
Isn't that a maximum recommendation for improved lifespan? I can't recall ever seeing a minimum mentioned, only fast charging negatively affecting the life.
I'm curious about your power controller if you don't mind sharing.

It seemed like a good bang for buck battery, but this 1200mAh one from Adafruit is perhaps a more reasonable option and easier to fit. Also available locally (3pcs at ~10€ each)
Also not sure it's time to do all that BLE stuff - it looks like cypress plans to release PSoC64 soon(https://www.cypress.com/products/32-bit ... -m4-psoc-6) - and that will allow for a single-chip USB+BLE.
Which will be awesome, but will require some serious rework of everything - software, power, 4-layer PCB for the BLE antenna.. 0.9V _might_ be too low to drive sense card..
Although they promise that for 2+ years as of now, so not sure if waiting worth it.
That does seem like a neat solution, I don't mind waiting and really appreciate your effort.
I came across this, seems like they're getting close to release.

As for my own time estimate, I expect to complete the CAD/CAM and make the initial case by mid January.

Based on the battery I modified the rear cavity to 292x35x5mm, leaving about 220mm width for the PCB.

Throwing another idea out there:
I did a numpad PCB with integrated USB hub a year ago (all type-c ports) which also has a hub bypass function for low power/problematic hosts using a pair of muxes (FSUSB42), a single signal switches the data pairs and holds the hub IC in reset.
For future projects I'm planning to replace the expensive and tiny TUSB321 port controllers with TPS25810/25821 integrated port controller/PMIC for the DFPs.
Any interest in including a hub as an optional feature? I'm thinking it'd fit a larger PCB using the 1200mAh battery and I like making use of space when available :)

I might as well go ahead with a non-BLE PCB in kicad based on my mockup and the current cypress chip with minimal circuit, to potentially swap out for a BLE version in the future. It's just 10$ for 10 boards and useful for prototyping my planned hub improvements.

wcass: Any thoughts on the updated case/pcb arrangement?

Image

Image

User avatar
DMA

16 Dec 2019, 05:12

I thought reserving 24+8 pins for projects with smaller matrices (20 total in this case) wasn't necessary, is it?
Not necessary, but will need exact knowledge of matrix dimensions plus some mousing (shrink column MUX, delete pins and per-pin logics, etc).

As for hub - never designed those, not even sure USB PD will work with USB2.0 FS.

For stem repositioning - 3mm can simply be ignored if all pads are electrically connected (please don't do that "floating pad" shit. IBM made that when vias weren't free). 5mm much less so but a good candidate for the A|B|A pad.

andrewjoy

16 Dec 2019, 12:47

USB PD is a separate spec than the speed rating ( 1.1 2.0 3.0 etc) but i highly doubt any USB 2.0 rated stuff will be in spec for PD. official spec for 2.0 rated stuff is 500mA but i think you could prob get away with an 1A at a push.

manisteinn

18 Dec 2019, 15:23

DMA wrote:
16 Dec 2019, 05:12
Not necessary, but will need exact knowledge of matrix dimensions plus some mousing (shrink column MUX, delete pins and per-pin logics, etc).
Ok, that's what I expected.
DMA wrote:
16 Dec 2019, 05:12
For stem repositioning - 3mm can simply be ignored if all pads are electrically connected (please don't do that "floating pad" shit. IBM made that when vias weren't free). 5mm much less so but a good candidate for the A|B|A pad.
Then I assume for 3mm having the sense pads between the positions would be ideal, with a 1.5mm offset for each. I wasn't planning to modify the board myself, that's up to wcass to decide.
DMA wrote:
16 Dec 2019, 05:12
As for hub - never designed those, not even sure USB PD will work with USB2.0 FS.
andrewjoy wrote:
16 Dec 2019, 12:47
USB PD is a separate spec than the speed rating ( 1.1 2.0 3.0 etc) but i highly doubt any USB 2.0 rated stuff will be in spec for PD. official spec for 2.0 rated stuff is 500mA but i think you could prob get away with an 1A at a push.
Indeed, there are some rules regarding versions and allowed PD states IIRC. I'm not implementing PD though, this is the simpler Type-C Current method with a 3A 5V maximum. spec pdf

I'm not concerned with 100% spec adherence but do make an effort to avoid unsafe states, for example current limiting the upstream port to keep total power consumption under control.
My implementation also incorrectly reports as a self-powered device instead of bus-powered, the HHKB2 hub is a good example of the annoyances of the strict 100mA per port limit dictated by the bus-powered spec.
The use case is connecting desktop peripherals, not charging phones, tablets etc. During actual use I've had few problems, I can reliably use my 3278 with solenoid and a mouse on my android phone :)

For this board I'm going for the 3A capable TPS25810 for 4 DFPs and configurable eFuse (TPS25942) for the UFP on a 4-layer board, with a separable commonsense section. For the remaining boards I have some uses for externally powered higher current ports in other projects. the eFuse also provides overvoltage and reverse current protection.

I've mostly populated (not properly laid out) the board; 85parts for the full hub circuit with ESD diodes and chokes and 9 for the minimal non-hub version.

Image

User avatar
DMA

18 Dec 2019, 17:48


manisteinn

19 Dec 2019, 21:09

DMA wrote:
18 Dec 2019, 17:48
There's thru-hole USB-C connector.
https://www.newark.com/gct-global-conne ... p/72AC6905
I prefer SMD connectors as they're IMO much nicer to work with, especially to remove/replace.
The ones I currently use are these ridiculously cheap ones from LCSC, currently $7.23 for 30pcs and free shipping with JLCPCB orders.
I haven't had a single issue for the year I've been using them, there's a lot less to screw up on the receptacle side for type-c with the plugs having the more complex and fragile design.
I can solder those in seconds using my favorite tip with some flux or hot air.

If you're concerned about robustness I'll be tightly sandwiching the connectors/pcb and case with screws between every connector for a solid assembly.

User avatar
abrahamstechnology

19 Dec 2019, 21:58

SMD pats are easy enough if you have a good temperature-controlled soldering station and use leaded solder.
Amtech 60/40 is my favorite.

Allthough I still like the extra robustness through hole connectors provide. Which is why I used a through-hole connector on the customized Alps64 I modded.

User avatar
DMA

20 Dec 2019, 00:21

manisteinn wrote:
19 Dec 2019, 21:09
I prefer SMD connectors as they're IMO much nicer to work with, especially to remove/replace.
Exactly.
I am worried about surprise removal. PCI-SIG official term, believe it or not.
I.e. the socket will break off the PCB before connector will break off the cable. NOT a situation I want anybody without a good soldering iron to be in.
Even with.. that socket might take the traces with it and you'll need to greenwire to the USB current limiting resistors, if you're lucky to have them outside of the MCU. True story!

One thing one should never do is to go cheap on connectors. Connectors must be soldier-proof.
I mean, yes, cost is a consideration - but lower than having a connector which you can't accidentally tear off.

manisteinn

21 Dec 2019, 19:47

DMA wrote:
20 Dec 2019, 00:21
Exactly.
I am worried about surprise removal. PCI-SIG official term, believe it or not.
Does that really refer to this situation? It sounds more like a software routine to handle surprise disconnection of cards.
DMA wrote:
20 Dec 2019, 00:21
I.e. the socket will break off the PCB before connector will break off the cable. NOT a situation I want anybody without a good soldering iron to be in.
Even with.. that socket might take the traces with it and you'll need to greenwire to the USB current limiting resistors, if you're lucky to have them outside of the MCU. True story!
For type-c the plug is designed to fail before damaging the receptacle (3.8.1.7 Wrenching Strength) but that obviously requires a sufficiently strong receptacle assembly.

For the open port holes used on many cases (presumably abrahamstechnology's alps64 one?) I agree it'd be a bit fragile, although a lot better than the fully SMD mini/micro-b ones due to the four TH shield pins.

In this case however it's effectively clamped in place, there'd be quite some force requried to deform the pcb/case material enough to rip the actual connector and traces off. Now I'm curious about the actual strength, I have a bunch of these connectors and extra boards with the footprint on them I could do some desctructive testing on :)
DMA wrote:
20 Dec 2019, 00:21
One thing one should never do is to go cheap on connectors. Connectors must be soldier-proof.
I mean, yes, cost is a consideration - but lower than having a connector which you can't accidentally tear off.
I didn't choose it purely because of cost, it's simply the first model I tried after the JST one I originally decided on in 2015 (still going strong in my HHKB), there weren't any single row USB2 ones readily available at the time. I saw people were happy with it in other projects and decided to try it out.

The extra ~$6/board and TH soldering really isn't a big deal and more robustness doesn't hurt. Also, the shape is actually a better fit for the project as it allows for a thick rear cover without deep port pockets. Thanks for the suggestion!

I made a kicad footprint and MCAD model for it, here's a view of the updated assembly:

Image

I'd like to keep the mounting hole pattern compatible with the potential future BLE version, any concerns regarding this layout?

User avatar
DMA

22 Dec 2019, 01:05

manisteinn wrote:
21 Dec 2019, 19:47
DMA wrote:
20 Dec 2019, 00:21
Exactly.
I am worried about surprise removal. PCI-SIG official term, believe it or not.
Does that really refer to this situation? It sounds more like a software routine to handle surprise disconnection of cards.
t'was a joke. Like "Rapid Unscheduled Disassembly".
"Surprise removal" is usually a downstream device malfunction when you're lucky and it doesn't fuse the power rail to the ground plane. In this case - somebody tripping on the USB cable and breaking off (_hopefully_!) the plug.
manisteinn wrote:
21 Dec 2019, 19:47
For type-c the plug is designed to fail before damaging the receptacle (3.8.1.7 Wrenching Strength) but that obviously requires a sufficiently strong receptacle assembly.
That is true, but I experienced "..and takes the traces with it" firsthand. Plated holes are significantly sturdier. Can be ripped out if you get serious about ripping them out - but it will Take Some Effort.
I'm not against SMD for the pins, the main problem I see in most of those cheap sockets are anchors being too short and not sticking out on the other side sufficiently (standard 1.6mm PCB + reasonable 1mm => min. 2.6mm below the base).

Case must not contact the receptacle (if it's not case-mounted) - case holes must be at least one assembly tolerance away from the receptacle, to prevent case pushing on the receptacle and eventually deforming it.

Port pockets must stay tho - and not only because it's cruel to force people to fish for 2.4mm-high connector at the bottom of 2cm pit with walls obstructing the view.

Yes, spec sez overmold is 6.5x12.35mm max with rounded edges, but looks like at least sandisk doesn't give a damn. https://www.amazon.com/dp/B01BUSN0DO/ (6.6 x 19.3mm - kind of within spec for locking connector) - but there are things like this 25.47mm wide monstrosity: https://www.amazon.com/dp/B01M127X8F/

Specs:
https://www.usb.org/sites/default/files ... 202019.pdf - thermal and state machines are quite cruel reading.

https://www.usb.org/sites/default/files ... 0309_0.pdf - locking connectors can be 20mm wide

User avatar
DMA

22 Dec 2019, 04:43

Ah, yes, the power management. Almost forgot.
BLE-power.png
BLE-power.png (20.95 KiB) Viewed 4275 times
3V: VddIOVddD (Lowest allowable for USB operation) & VddA (must be highest voltage on the chip)
2V VddR (radio) & VddIO
1.8V: VccD/VccA (PSoC5 LP cores).
PSoC5 LP internal LDO turned off to save power.

This is kind of ridiculous, but I almost lost the BOM. Almost. Luckily U5 properties contained the name.

U5: LTC3559EUD: https://www.analog.com/media/en/technic ... 3559fb.pdf

U4: MIC5504-1.8YM5-TR: http://ww1.microchip.com/downloads/en/D ... 06006B.pdf

Lessons:
1) NO QFN. Or rather "No PCBA = NO QFN".
1.5) castellated edges on subassemblies is a must
2) Stick to 100mil pin pitch.

Prototype 0 looks like this (WARNING - 4 MEGABYTE IMAGE):
Spoiler:
BLE.jpg
BLE.jpg (3.38 MiB) Viewed 4275 times
Main MCU looks programmed (SWD headers are tinned but empty). Must be that "BLE01_USB" project.

Upd:
Battery still holds some charge.
Current consumption from battery - 20mA.
Device is discoverable as "CommonSense", but doesn't want to pair to my android phone.
Main MCU is indeed flashed, presents as a 8x16 beamspring.
Judging from all matrix cells reporting 255 - I screwed up ADC Vref traces. Not the first time.
You have a heart strong enough to power all of Iron City for years. This is lost technology. Nobody's made this stuff since... before The Fall.
I literally don't remember making this.

Upd2: updated power rail usages.
Looks like I didn't screw up the Vref after all. 5267 can only use P0.4 as ADC Vref, and I routed for P0.2. Luckily, P0.4 is routed to the edge connector and this is easy to fix.

manisteinn

26 Dec 2019, 02:07

t'was a joke. Like "Rapid Unscheduled Disassembly".
"Surprise removal" is usually a downstream device malfunction when you're lucky and it doesn't fuse the power rail to the ground plane. In this case - somebody tripping on the USB cable and breaking off (_hopefully_!) the plug.
oh.. of course.
That is true, but I experienced "..and takes the traces with it" firsthand. Plated holes are significantly sturdier. Can be ripped out if you get serious about ripping them out - but it will Take Some Effort.
I'm not against SMD for the pins, the main problem I see in most of those cheap sockets are anchors being too short and not sticking out on the other side sufficiently (standard 1.6mm PCB + reasonable 1mm => min. 2.6mm below the base).
Fair point, they are a bit shallow.
Case must not contact the receptacle (if it's not case-mounted) - case holes must be at least one assembly tolerance away from the receptacle, to prevent case pushing on the receptacle and eventually deforming it.
The pockets will clear the connector height so there won't actually be any force applied at the top of the ports (until abused :) )
Port pockets must stay tho - and not only because it's cruel to force people to fish for 2.4mm-high connector at the bottom of 2cm pit with walls obstructing the view.

Yes, spec sez overmold is 6.5x12.35mm max with rounded edges, but looks like at least sandisk doesn't give a damn. https://www.amazon.com/dp/B01BUSN0DO/ (6.6 x 19.3mm - kind of within spec for locking connector) - but there are things like this 25.47mm wide monstrosity: https://www.amazon.com/dp/B01M127X8F/
I didn't explain very well, here's a gallery to demonstrate what I mean: https://imgur.com/a/M8Uyl7P

I manually milled this walnut case for the numpad a year ago, never finished it though: https://imgur.com/a/cfhfuSb
I kind of like the deep connector pockets but they're unusable for anything beyond the spec'd plug overmold.

I have a thumb drive that wouldn't fit and I'd like to retain the thickness of the rear case piece rather than do large, deep pockets with very thin walls. Your suggested connector helps with that by offsetting the shell beyond the board edge.
The current port spacing is 25mm which is almost double the recommended minimum, so assuming standard plugs on each side it could accommodate a 37.65mm wide device.

I also milled and threaded an aluminium piece to try out the single screw locking plug a while back. I don't have it here and can't seem to find any pictures but made a quick model that I added to the gallery.

I just came across this proprietary latching solution by Neutrik, even deeper than my numpad: https://www.neutrik.com/en/neutrik/prod ... s/mediacon

The connector housing is reasonable at 5EUR but the matching 0.5/1m cables are 40EUR+. Granted it is 100W and 3.1gen2 and they emphasize proper testing.




Thanks for posting all the BLE board info, are you planning to continue development for this setup or wait for psoc64?
I'd gladly integrate it as an experimental option to the current controller board but as I mentioned I'm also fine with waiting.

Regarding the battery, I didn't realise it's an integrated PMIC/charger. The original cable won't reach across the hub section (~145mm) and there won't exactly be a lot of routing area in the middle to run power traces through. I could move the header to the CS section and solder longer cables to the battery (see gallery) unless you have some other suggestion.
Also, while kicad didn't have LTC3559 in the default libs LTC3553 popped up. At a glance it seems very similar but also contains an integrated LDO. Did you consider using that part (or similar) to replace the separate LDO?

1) NO QFN. Or rather "No PCBA = NO QFN".
Going by the product page there'll only be QFN/BGA psoc64 parts. Personally I don't mind QFN, there aren't many non-QFN/BGA USB-C parts around so I don't have much of a choice. :)

User avatar
DMA

29 Dec 2019, 02:16

I wanted to avoid LDOs as much as possible, so 3559. LDO 4.1 -> 3V has 73% efficiency, and 3559 buck is about 85%.

With USB disconnected the USB component draws 0.3mA, so efficiency should not be a problem - but then there's ADC (1mA) and who knows what else. I fear to measure actual current on 3V bus tho - accidentally breaking connection between 3V out and VDDD while powered will instantly kill MCU.

I looked at https://imgur.com/a/M8Uyl7P - from the spec it looks like we have 2mm from receptacle outer edge to case edge. Deep enough.

I wonder how much the hub will cost. Looks like 5 pretty intelligent/expensive ICs. Are those really needed, especially considering that this will be an USB 2.0 FS hub? Even HS will require diff pairs and will be way more expensive.

manisteinn

12 Jan 2020, 22:57

DMA wrote:
29 Dec 2019, 02:16
I wanted to avoid LDOs as much as possible, so 3559. LDO 4.1 -> 3V has 73% efficiency, and 3559 buck is about 85%.

With USB disconnected the USB component draws 0.3mA, so efficiency should not be a problem - but then there's ADC (1mA) and who knows what else. I fear to measure actual current on 3V bus tho - accidentally breaking connection between 3V out and VDDD while powered will instantly kill MCU.
My mistake, I somehow misread it as 2x bucks AND an LDO which isn't the case.
Perhaps including a current shunt resistor footprint shorted by default would be a good idea for safely measuring the 3V rail.
DMA wrote:
29 Dec 2019, 02:16
I wonder how much the hub will cost. Looks like 5 pretty intelligent/expensive ICs. Are those really needed, especially considering that this will be an USB 2.0 FS hub? Even HS will require diff pairs and will be way more expensive.

It's actually a HS hub IC and I'm indeed doing diff pairs on a 4 layer board.
ICs and connectors (digikey):
1x USB2517 $4.38
1x TPS25942 $2
4x TPS25810 $1.69
5x ESDR0502NMUTBG $0.42 (might replace with less tiny footprint(s))
5x DLW21SN900SQ2L $0.65
5x USB4085-GF-A $1.37
Total: $25.34 (some savings at 10qty for the 4-5x parts, I'll be doing a few of these boards)

The rest is relatively cheap; a crystal, EEPROM, LDO and passives

I'd like to avoid paying the $32 4-layer fee more than once and I figured I'd rather offer this as an optional extra for this project instead of doing it later on my own, fewer wasted boards that way as well.
That's why I don't want to compromise on features and AFAIK these parts are relatively inexpensive given their specs. There's a lot of tiny 0.4-0.5mm pitch QFNs and 0402 parts, but I wouldn't mind populating full boards for you and wcass if you'd like. For non-hub use there's just the CC resistors, PPTC and a couple of jumpers to bridge.
I'll also share the design files so there's nothing stopping people from substituting parts and doing simplified (or more complex :) ) versions in the future.

By default the port controllers have their control signals pulled to the appropriate rail, but for other (experimental) projects I've added a higher current BQ25980H charger at the PH2 connector and a 32u4 for controlling and monitoring ports and (dis)charging. If it'll fit I might replace the 32u4 with an at90usb1286 to run TMK/QMK as the controller for a couple of planned handwire/separate matrix board builds, perhaps connect an oled for port/battery status

I think it'd be best to run a single jumper wire from the 3359 to the square pin next to the PH2 connector (see gallery below) so that no modification to the battery is needed. That's assuming you're interested in continuing development on the current BLE setup, if you'd prefer to wait for psoc64 I'll just do the basic CS circuit.

...unless we delay the whole thing until after it's release, I'm sure they'll announce immediate availability the day after the PCBs get produced :P

There's still plenty of routing and track/zone adjustments to be done but I think it's getting close to the final overall layout.


DMA wrote:
29 Dec 2019, 02:16
I looked at https://imgur.com/a/M8Uyl7P - from the spec it looks like we have 2mm from receptacle outer edge to case edge. Deep enough.
Yeah, it's 1.6mm (recommended 6.20mm - 4.6mm shell edge>mating datum)

I've played around with the case/pcb some more and found a way to do flush ports
Image

(see gallery below for more)

I'm still figuring out the best way to do the rear/bottom cover. I'd like to avoid raising the case any further, currently the bottom row is horizontal similar to the 5291 in smallest feet position.

For a flush bottom some kind of gluing/magnets or 3d printing a piece with recessed holes would be doable, but I'd like to avoid that.

IMO a better option would be a separate 0.8mm ~305x50mm PCB ($14.3 for 10pcs) and flat head M2 laptop screws for minimal protrusion.
A similar idea I kind of like is to use a second sense board as the cover, it could look nice in matte black which doesn't incur extra fees anymore. A bit of a waste of a 4 layer board, but OTOH I'm not sure all 10 would be used anyway and they're not that expensive.

Image

I made a partial prototype of the current board assembly, before doing full cases I'll spend some time getting the best accuracy I can out of the machine to minimize skew of the larger parts (now there's a dial indicator around :D )

Image gallery

runninghack

16 Jan 2020, 21:10

manisteinn wrote:
09 Dec 2019, 07:48

My current design consists of three parts:
- Top case with ~4mm integrated plate
The case design looks very good to me. I wonder how the 4mm plate will be sound like. Have anyone tried 4mm plates with Model F flippers before?

manisteinn

19 Jan 2020, 23:52

runninghack wrote:
16 Jan 2020, 21:10
I wonder how the 4mm plate will be sound like. Have anyone tried 4mm plates with Model F flippers before?
I CNC'd a 2-key tester out of oak before the chyron case, just realised I never posted that.
Here's a quick sound sample: https://gfycat.com/welldocumentedsmallcusimanse

The thin acrylic "PCB" obviously affects the sound, so it's not a great reference.
I've also done some 3d printed ones but not a large case.

Also, check out wcass's milled aluminium case in case you haven't seen it, I'm not sure about the exact thickness.
viewtopic.php?f=7&t=19278
viewtopic.php?f=7&t=20505
runninghack wrote:
16 Jan 2020, 21:10
The case design looks very good to me.
Thanks, I thought it would be cool to have the top curvature fit the keycap profile with (almost) perpendicular front/rear edges.
Until now I haven't paid much attention to the bottom case, there are a few things that need to be adjusted.
The rear screws need to either be moved forward or material removed (which I'd prefer). I'm considering a curve similar to the top, makes the case less chunky and easier to pick up as well.
Image


A slight rear angle mirroring the top case angle could also look nice, I used a 15deg cutter for the base of the chyron test piece:
Image
(Click for larger)

I revisited my original single piece rear cover idea, by moving the PH2 connector to the other side and shifting the battery it seems a robust enough cover could be made. The minimum thickness would be 2.3mm with thicker edges and supports in the mid-section. Quite thin for wood but an ideal piece for POM/aluminium experiments, readily available 50x15mm aluminium stock fits perfectly and at ~25EUR for 3pcs it's not too bad.

Image

I'll also be making some small adjustments and adding fillets/chamfers, I'll soon have some ball endmills to play with :)


I've also been thinking about rear switches/LEDs for BLE etc. I suggested the change to lightpipes+dual color LEDs for the alt HHKB BT board back in revC and designed slide switch caps and covers (I recently made a resin cast version) so I had something similar in mind.

There's however not a lot of room at the rear on the actual controller PCB for switches (although a future PCB without the hub could certainly accommodate that), one option is slide/DIP switches accessible from below, for example:
- 3PDT switch for selecting charging current: disabled, low, high (seems doable with the LTC3559 using the SUSP and HWPR pins)
- Power switch for battery mode/BLE toggle (perhaps redundant)
- hub bypass toggle (hub version only)


As for LEDs there are footprints for three on the sense board aligned with OR between the top right keys, those were added before I decided to try CNCing the thing and might not be the best solution as they're not connected directly at the commonsense header. I wouldn't mind breaking devboard support which would enable rearranging the header and routing them there, otherwise they could be handwired by those who want them. I added 3mm holes and SLP3-150-100-R pressfit lightpipes for demonstration, those are similar to the HHKB alt BT indicators. Flat, flush ones are also an option.

Image


Higher res gallery: https://imgur.com/a/7Kx7Hj6

I think the feature creep is reaching it's end, I've covered every feature I'd want at this point :P

cods

04 Feb 2020, 10:34

Amazing.
I have no useful skills in this arena, and am sorry that all I can add is that, so long as it remains a 65% (ie. arrows are part of it) then I will help you with the consumption end of the project.
Consider me an MOQ Contributor!

manisteinn

08 Feb 2020, 08:54

cods wrote:
04 Feb 2020, 10:34
Amazing.
I have no useful skills in this arena, and am sorry that all I can add is that, so long as it remains a 65% (ie. arrows are part of it) then I will help you with the consumption end of the project.
Consider me an MOQ Contributor!

Thanks for the interest, initially I thought there'd only be the pair of boards made so there isn't really a MOQ. :)

Somewhat related to the arrows; while I doubt anyone would want to leave those out blocking key locations on the top case is a possibility in the future if there's interest.



There hasn't been much exciting progress on my end, mostly CAD/CAM related.
I've restructured the model and added bounding boxes for stock, constraints for minimum thicknesses around screws etc making adjustments much nicer. Still some adjustments and CAM left to do but the first case shouldn't be far away. Ball endmills and ones better suited for aluminium have also showed up.

Image


I finally got a wheelwriter, a like-new one that came with a dust cover. :)
I'll do some 7u test pieces (I don't have a 5.75u spacebar) and add wire stabilizers to the model.

Image
(click for larger)

I'll also try casting the code key as mentioned previously, but I'm still looking for 2-piece key stems for those.

manisteinn

22 Feb 2020, 07:55

Some progress:

Image

This is a test piece for the top case in the first of 8 orientations.
I didn't have time for the final 2mm operations (mounting holes, housing alignment holes and perimeter), just barely had time to fix the incorrectly set 100% stepover to eliminate seams.

I've constrained the non-center rows' housing minimum remaining thickness to 1mm, final clearing for each row should be quick with a 2mm endmill in an outward spiral with no toolchanges required.

Image

When I've optimized the toolpaths I can fit 2-3 pieces at a time to reduce tool changes and run somewhat unattended with a dust shoe attached.

Video of CNC operations (enable HD)
Some realtime, other sped up to match the 1min limit. Made in blender VSE, still getting used to 2.80 :)

Next up are the angled fixtures, then the top surface and finishing.


Keycaps

Image

I've also done a couple of mold base test pieces, one for attaching master caps (pic below, bottom) and the other for casting (pic below, top). In both cases the stems would clip in place like on a keyboard, flush with the base.

I'll probably use POM for the final ones and turn the stabilizer pole insert on a metal lathe to avoid much thicker (=expensive) stock.
I might do multiple bases for various stem placements and narrower non-stabilized caps, the model is mostly parametric but there are some issues with path generation on changes.

Image


The narrower caps would be made by filing down one side of a solid cast at the correct angle, then rounding the edges and recast. Depending on the results I might do a fully convex bottom row for my own board (as on the 3278). The same technique could be used to do larger caps (3u+) using a spacebar as the master, but that obviously requires a lot more silicone.

I have a possible source for stems but it'll be delayed a couple of months, other sources still appreciated :)

Higher res image gallery with a few more pics

manisteinn

25 Feb 2020, 16:58

Another quick update:

Image

I somehow messed up while Z probing last time, I needed to remove 0.3mm more material. Not a bad thing as I could try some things out.

I reduced stepover to 25% (1.5mm) for a much nicer surface finish and offset the first and last to match the edges. Still need to reduce the lift distance as it's relatively time consuming, but a rough + final 3d surface seems like a good idea.

Middle row alignment holes were also done, forgot to set ordering to Individual, hence the already half-done holes in the video

I've done most of the fixture/row CAM but won't get a chance to run it for the next ~10days.

Video (enable HD)

A few more pics

manisteinn

02 Jul 2020, 08:18

Progress update

There's not much additional case progress, I did make fixture "wedges" but discovered some rounding errors in the CAD assembly. I poked around a bit and made some changes but never completed it. Anyway, I'm planning to get back to it

Image


Gallery (just for testing, final ones won't be plywood :) )

My potential sources of model-f stems fell through, so keycaps have also been on hold.

Custom PCBs

I ordered most of the usb-c related components (2 board's worth) and made a footprint test piece for the usb-c connector.
I used a ⌀0.2mm 15° engraving bit and varied the drill depth to match hole widths, quite impressed by the results (0.85mm pin pitch)
Image

Seems like a nice connector with firm plug retention.

I noticed psoc64 preliminary datasheets have been released, as well as some evaluation board previews.

It seems only BGA packages have USB:
124-BGA and 104-MCSP; with USB
116-BGA, 104-MCSP, and 68-QFN; no USB
The module doesn't have usb pads, so I assume it's a qfn package under the shield.

The least painful 124BGA package has 0.65mm pitch, of those only one is currently available on mouser (no 124BGA on digikey): https://www.mouser.se/ProductDetail/Cyp ... RqiA%3D%3D

124BGA versions

I did a quick mockup in kicad, it's doable without vias inside the grid and <6.7mil tracks. Otherwise more expensive 0.2/0.4mm via option is needed at JLCPCB.
Image

Annoyingly most power, USB and antenna balls are in the same corner
Image

the datasheet (pdf) calls for individual bypass (Page 34). I don't know how the chip behaves without every called for bypass cap and/or longer loops, ideally you'd want to avoid adding 20+ caps on the opposite side of the pcb...
I remembered reading about some bypass tests in the CS thread, curious how those would translate.


JLCPCB has further reduced prices of 4-layer boards, you now get 5pcs <=102x102mm for 7$!
It seems like a good idea to prototype the circuit before spending 40$+ for the extended hub board. The closest USB-C port of the current case design could still be used
Image

To my surprise all USB-C ICs I used except for hub IC are available in their extended part library, meaning it could be almost fully assembled relatively cheaply.
They don't offer assembly for externally provided parts or BGA, I'd image a provider that does would be a lot more expensive.

I have quite limited BGA experience, these chips aren't cheap and reballing 124 balls in case of failure isn't exactly fun.
I'd still be willing to try it out on a couple of boards.

This 20$ devboard might be of interest, at least for other commonsense projects:
https://www.digikey.com/product-detail/ ... ND/9739909
Presumably the kitprog could be reflashed with a HID interface and linked to the module with a couple of wires, maybe even over SWD (not sure if it's easy to repurpose after boot).
Just 5$ more than the 059 devkit, although you'd still need the battery PMIC. No SMD soldering necessary for those who'd like to avoid that.


DMA: Thoughts? Is there any need for the 64 specifically instead of the currently available 6x-series ones? At a glance I'm only seeing additional security features.

User avatar
DMA

03 Jul 2020, 22:32

Antenna would likely require bigger keepoff.

I would expect USB-powering VDD, radio bypasses and low-voltage power banks (which also look like bypasses) vital for stability, the rest very optional.

I'm not soldering BGAs either.

Kitprog is indeed programmable and I use that in sun and ADB converters. 2 problems - serial link and reflashing the 6 without reverting kitprog (and amending FC to flash via kitprog). Not the directions I want to spend my resources on.

quaker

12 Jul 2020, 13:33

Well, I'm not really familiar with all the CADs and being in army really limits what I can do.. But I do hope it has genuine steel support inside. X shaped chassis etc.. For both weight and sturdiness

Post Reply

Return to “Workshop”