-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial Chico files, largely limited to new custom Choc V1/V2 hotswap… #12
Conversation
… doublesided footprint and PCB tinkering
Sorry, it looks like this one's not ready yet. Regarding "Chico" - I do love me a good portmanteau - but the lineage naming convention is fairly well established. The Sofle is descended from the Corne lineage, which set the precedent for the naming structure [base]-[varaint], so in this case it would be I'm gonna close this PR for now. Once you get farther along, perhaps to the point of prototyping, I'd be happy to review a new PR. I think that the Choc switches are popular enough to warrant a variant, but spinning one out that's done really well can take a while. Perhaps we should keep the discussion going over here? |
Yeah, sorry, didn't intend to check anything in anywhere but my private fork. I don't know Git or GitHub well, have only used private SVN servers. One of the many skills in hoping to improve with this project |
Question regarding your footprints: D_DO-41_SOD81_P10.16mm_Horizontal"" The dual package diode includes both the thru-hole pads and a redundant via for the anode. Was that just to save you time in routing, or some way of trying to game JLCPCB for quote by using pad primitives rather than vias? Trying to infer your intention while making a functional equivalent for SOD123 and DO-41 |
@JellyTitan 90° are normally fine, the only thing you should avoid is 45°. I have also heard that acid traps more or less are a thing of the past now, but @TheWerle will probably be a lot more knowledgeable about that :) |
Thanks! A while back you sent over a link about acid traps. I re-read it and found the bit about them not really being a thing. It's too late though - i'm enjoying the aesthetic of the gentle curves. |
Oh yeah the various loopy / teardrop / shapes are definitely fun aesthetically. Generally speaking designers still avoid acute angles <45° out of habit and because they're generally not beneficial, but its basically true that acid-traps are a thing of the past. Modern photoresist and cleaning processes have eradicated the issue, which is good because trying to prevent it with copper pours would be a real nightmare. |
For your most recent board order, how did the RPI socket thru-holes with the one-sided soldermask tenting turn out? I like the idea of using that to infer correct socket placement, but there's a chance in fabrication that the vendor would plug the holes with soldermask and the user would have to chip/drill/ream it out in order to fit the solder-pins. |
Turned out great! I've been using it all over the place, Cantor MX, ErgoDonk Zero, and at least 4 iterations of Sofle. I've only been ordering from JLC lately though. Somewhere in the Sofle lineage this staggered double sided footprint was introduced. Those holes are pretty close together for people just learning to solder. I've seen MCU solder bridge issues come up a few times on Sofle build threads. The one-sided soldermask, along with the increased offset space should cut down on those issues. (Plus i've got the annular rings dialed in just how I like em!) |
https://github.com/TheWerle/Sofle-Chico.git Initial schematic capture and PCB layout for minimalist changes "choc" version are checked into my Fork if either of you would want to take a look. Definitely focused on functional electrical changes, with hopefully zero to no required mechanical / packaging changes outside those directly related to the switches. I'd love some feedback, I still haven't built a keyboard yet so there's undoubtedly some details devils I'm missing. Rules Changelog Mech/footprints Changelog: Added SOD-123 alternative pads for TH Zener Diodes Created "SK6803 MINI-E_v2" footprint to simplify pads and relabel pins to actual package markings. (I personally just couldn't stick with that one-off datasheet, pin1 package markers are standardized and SK68xx pinouts carry over to different packages for a reason). Expanded LED cavity for a bit more tolerancing assurance, spaced pads for copper-to-edge manufacturing rules) Silkscreen simplification for some footprints to reduce errors where it goes out of the board outline / onto exposed copper / overlaps mask expansion Added on-board fiducials for ASSY assist, but will likely remove if I figure out better panelization setup Electrical Changelog Added reversible minimalist TRRS dual-power protection diode PFET (Q1) with Jumper bypass option. Could install just one, two w/ bypass jumper pins, or bypass it altogether Relabeled "VCC" as "VDC" with notes to more clearly indicate that its a ~5.0V rail, not 3.3V VCC like legacy Sofle and pro-micro designs would use Swapped GND / VDC Zones between top/bot and did extensive prioritized routing/stitching for power flow and signal return coupling improvements for i2c/UART/LED data signals. Added some optional decoupling cap pads for VDC TODO: |
A lot of the aesthetics serve a function here though, particularly for the poke-yoke consistent component orientation choice you made. It makes some of the board routing a little more busy or difficult, but the benefits to the end-user during assembly will be worth it. My layout teardown was overall not super necessary, I largely did it to help me think things through end-to-end. Biggest functional change I made in layout was a ground-up emphasis on prioritized routing of digital signal traces for signal+GND coupling and trace topology coupled with more power stitching.
I'll give it a shot. You've clearly done time in the trenches there, but man the methodology for custom pad modification in the KiCad footprint manager sucks. Other tools allow merging of shapes rather than forcing complex outlines by coordinates. Apparently KiCAD 8 can natively import Altium libs, I might start hybridizing stuff like that for easier tools.
I'm with you, Silk minimalism is the way to go. Infer the minimums for orientation, pin1/polarity notation is a must, but after that it just becomes visual noise and DRC problems to solve.
On second thought, per-key handedness markings are redundant with the socket outlines for assembly indicators. I'm now thinking a better option would just be a prominent Right/Left hand graphical indicators for each board side, add handprint clipart to some open-space maybe? That would serve as the pre-assembly visual reference with less clutter and would contribute to your effort to make things less English-language coded.
I'd be curious for more of your thoughts/priorities on the value in optimization/tinkering with panelization. After reviewing JLCPCB's documentation online and tossing up some quicky fab packages I don't think there's much more to be gained in terms of reducing board Fab costs. The only further board simplification I see would be changing the routed LED voids for big circles to further reduce "slot" fees, and I don't think that's remotely worth it relative to the soldering hassle it would introduce. One method that does seem to work for enabling single-pass assembly of all the SMT components would be making the schematic hierarchical with two nested copies of the existing sheet, but there's tradeoffs. You can manually copy-paste the existing board layout as a flipped image, reassign the designators for that half, and then generate a single Pick and Place file that covers both halves of the board. However, its no longer a true "dual-sided" design at that point and you would have to either update/maintain the copied layouts going forward or repeat that process every time. Any other solutions inherent to panelization would require some other way of merging the pick-n-place coordinates that they'll probably call foul on. For the connected boards like you show, the remaining rough spots are called "mouse bites". With the low-cost model of these fabricators the only way I can imagine avoiding them would be to do the panelization with v-scores, which is not worth it. The most I'd do is add a 4-5mil soldermask pullback to board edge outline, that way you can sand the bites less risk of chipping mask. |
TLDR version is "if you've got a digital data signal make sure its route path goes over unbroken GND for signal integrity". Bad ground returns create noise. Its basically what ubberice did in his routing pass, but I did even more. This is why higher complexity boards use Ground Planes, it radically simplifies good signal returns. In Pico's case the highest priority of routing would be the I2C / UART / LED traces, any time they cross a break in the GND copper on the opposite layer you should put a GND jumper trace roughly parallel to the signal to reconnect the GND return. The data-rates are so slow for a keyboard that its likely immaterial, but once there's additional peripherals like the trackpad included signal integrity may become more of a factor. Here's a signal return simulation video that shows signal returns like a heat-map, it really helps you get the idea of the impacts of good returns as data rates or frequencies get higher. https://youtu.be/4nEd1jTTIUQ?si=-38V_ukHplw8Lfnn&t=494
"Racing stripes make you type faster" is a fun theory, shame it didn't pan out.
Yeah, I think the versatility of that approach is worth it. KiCAD seems to make it fairly simple to maintain a single-half SCH/PCB, then just use hierarchy to reannotate and flip the copied layout. The assembly outputs would then be scalable, you could upload two assembly file-sets of BOM+PnP files at either of the "low-cost SMD" or "special-parts SMD w/ upcharge" levels and let end-users do their own time/effort/cost budgeting between the two. Between the optimizations for either "panelization" or "single-sided" solutions the single-sided path seems the sweet spot for cost/effort/benefit in relation to the use-case. I spent some time yesterday combing thru JLCPCBs "basic" parts to identify drop-in replacements for the diodes/PFET/level-shifter and generate the cheapest/quickest "low-cost" option. I'm hoping to have an orderable prototype turnkey package for both a modified Pico and "Chico" by the end of the week. Whenever I get those (and assuming they pass thru my initial basic checks), if you're interested I'd be willing to ship you a spare pair of the boards to try out. I also looked over your keyplate instructions and modified my switch footprint yesterday to generate a SVG, but don't yet have a clue on how to evolve that into a STEP. I downloaded FreeCAD to try, but haven't gotten further yet than importing the SVG.
I think I'm of a similar mindset to you in that regard, "if this is easy to buy/build then more people will adopt it and I can piggyback off their code improvements." If viewed in terms of "I want to sell kits and be required to offer formal customer support" then absolutely not. In my mind the #1 way to ruin a good hobby is to try to make money off it, and compared to my real job my hobbies can't afford me. I need a better ergo keyboard for my RSI (left ulnar nerve is currently jacked) and to up my game in 3D printing and basic coding skills so I can tinker with more hobby electronics in costumes/gadgets/etc. |
@TheWerle I don't know if anything changed - but the level shifters are not necessary. The data lines of the RGB LEDs are both 3.3 and 5v compatible. That's why there is a bypass solder bridge - worked for me at least. As for keyplate problems, none here - the PCB actually is 'floating' between the top and bottom plates - at least for the ones I printed when I made my board. |
With the Acylic or FDM plates, there is a 2mm gap between plate and PCB, so there's plenty of clearance for the level shifter. In all honesty, i stopped using them after the first two rounds of prototypes. |
I appreciate you taking the time to do this! That's super helpful.
I'd be delighted! Let me know when you're at that point, and i'll send a USPS pre-paid shipping label.
I"m sorry - that's no fun. :C Thats what got me started down the ergo path. When I started out with ergo stuff, the ErgoDox was fairly expensive, and then a few years later the 'ergodone'. started showing up on AliExpress, which made them far more accessible. Lately i've seen the Sofle and Corne popping up on AliExpress too, which i think is a good indicator the appetite for splits is growing. I'd love to make the Sofle Pico family so easy to build and use that vendors start picking it up and driving the price point down. |
Just resubmitted it with the middle slot removed and enough extra traces attached, that gets me thru at least the initial "multi-design" check. Its wired where it could be remapped as a single "batwing" board if i ever get to the point where I wanna try that out. I'll have to score/snap it myself and clean it up on the belt-sander or see if I can get access to a router at work, but I wanted to try it just for the sake of doing so. The price for soldering 300 diodes is definitely worth it... but in reality I only need to solder 60 and I'm paying for spares. I think focusing on enabling assembly maybe a dead end for the project tho, just too many changes required that move it away from the target DIYers audience. You could check in two packages to the repo for "DIY hand solder" versus "board kit vendor" but I doubt its worth that much configuration management versus leaving the choice to end-users. I'll let you all know when they arrive, would happily send each of you a spare. https://github.com/TheWerle/Sofle-Chico/tree/main/Sofle_Chico_Panel |
I'll do some initial board power/voltage drop tests and let you know if I stand by the recommendations, but it should be pretty safe. The 1N4148s are of course fully interchangeable, the final MOSFET chosen is a name-brand Vishay component, and I dropped the level-shifter buffer per @uberrice's note that the SK6803s will be 3.3V logic tolerant.
@JellyTitan Shipping notice arrived, the boards should be here by next Monday. Would you prefer I ship you a connected "wing" or go ahead and split it? I'm hoping to get access to either a V-scoring machine or a mill at work to clean up the edge nicely. |
Exciting stuff! I'd prefer a pre-split board if you can. |
After I split the boards there shouldn't be any intended deviations, I think it should be procedurally identical. I'll make a changelog list for added/modified steps as I go through my own initial build. There's aesthetic changes from my silkscreen simplifications and stuff but your current instruction sequence seems like it should largely match. The diodes are preinstalled so obviously that's step one handled, any further changes will be new instructions for stuff like jumper-bypassing the TRRS cable protection FET on whichever board is designated as "secondary", but procedurally that's a repeat of the old level-shifter drag-solder instructions. I modified the footprint on the jumper to remove the soldermask sliver between the pads to see if it makes bridging with just solder more reliable. I'm also tinkering in Autodesk, I've got my first-draft keyplates done and a combination OLED+40mm Cirque plate designed. They're updated for 4x4mm Choc switch apertures with a 0.5mm retention clip notch, and I've modified the case-assembly 2.5mm holes to be 2.5mm/4.1mm counter-bore holes so I can recess the M2 screw heads a bit and added a fillet at the outer plate edges where the user's wrist might make contact. I'm going to add some polish to all that today, I want to place windows in the keyplate for the PICO logo on the PCB. I also plan to add some screw slots/holes for flush-mounting the OLED to the top plate, rather than have the plate floating above the display. With the supply chain variability / support for multiple variants of the display this will probably require me to jumper-wire it rather than use pin-sockets, but I'd personally prefer that over the floating oversized window. I'll create a non-Cirque integrated version with that sort of mounting as well, I'm personally planning to forgo the right-hand rotary encoder in favor of the trackpad but I want to support the baseline design. I'll have to wait until my OLED displays arrive to fully verify all that, my parts will be arriving over the next 2-3 weeks, but I'm confident I can knock something out that will improve the FDM case aesthetics. Relatedly, where did you get your 3D model for the OLED display? I've adjusted the display window based on the AliExpress dimensions and the KiCAD STEP model, but the dimension drawing doesn't include the mounting. If you've got a better datasheet or mechanical drawing I'd love to see it. Oooh aaaaah |
Looks great! I'm looking forward to seeing it. It feels like there's always a ton of llittle gotcha's that pop-up when it comes time to put all the little pieces together. I really don't use the RH rotary encoder anymore, but it's part of the Sofle heritage now. I usually end up grabbing most of my 3d parts from grabcad, if I can't find it in a popular part library. I think the 128x64 OLED .step was one of these guys: |
This is where I'm running into "newbie" problems, I've never done 3D CAD of any sort so a lot of the tool names are still opaque to me. I'm pretty happy that after a week of effort I'm basically as good at it as a 9 year old who plays Roblox. It took me an embarrassingly long time to both convert the keyplate SVG to a sketch and figure out I needed to use "project" to make the body shape, I was stuck for like a full day on that alone. Converting the logo SVG to a sketch got me the current aperture, but it has hundreds of faces that won't simplify and I can't figure out a way to select them all such that push-pull does a "scale it larger" operation like I want. The easiest answer is "just reimport the logo sketch and make it bigger" but I'm trying to force myself to learn how to "do it right"
Yeah, not sure yet what I'll use encoders for even outside of "more awkward scroll wheel", so bumping it for the trackpad seems like a no brainer. Getting to where I understand QMK enough to actually compile that in is the daunting problem for the future, I am still utterly baffled by how to do any of that. My coding skills have utterly decayed. Angling it is definitely a goal, but I figured I'd knock out a "flat" design that's easy to print first before trying too many new planes/faces. I'd like to get a functional feel for how "good" the trackpad actually operates as a mouse before I sink too much time into it.
I've got some rough ideas but no skills to implement them, graphic design in particular is an area where I'm going to need help. I still like the snappiness of the "Chico" portmanteau, but appreciate your "implied design heritage" argument for the "Sofle-Pico-Choc" nomenclature. I don't have strong opinions there. The only logo idea would be something to infer "choc" by blending the raspberry pips or leaves to somehow look like a chocolate bar / wrapper or cocoa bean, but I don't know if it would be intuitive enough to justify being overly busy. |
@JellyTitan Saw your uploaded foam gasket file, I really like the idea. I've had my in-laws Cricut just sitting here unused for months, finally going to get some use out of it. First pass came out rough, I cleaned it up with an X-acto. Ideally my final case-files and recommending assembly hardware will be sufficiently low-profile that I won't use a top-gasket, but a bottom gasket to compliantly fill the component gap and dampen noise could be really nice. I'd be curious to try a thinner rubber mat option as well, not sure if that would work with cricut but could be doable with a laser-cutter. I've got a friend who owns a 3-in-1 Snapmaker 3D Printer / CNC/ Laser machine, I'm hoping to try at least one case prototype using each of those processes. I'm really trying to lean into the "low-profile" benefit of the chocs, working on redesigning the FDM bottom plates to make a reversible plate with mirrored top/bottom counter-bore 4.4mm/2.5mm mount-holes or even hex-slots for holding a nut in place. It seems like that should be feasible for either FDM or CNC case processes. What would you think about modify the existing FDM bottom plate designs to include that as a common feature for Pico/Chico? There's no reason I can see that the Pico bottom plate couldn't also use recessed screw heads / nuts. I need to get some additional options for spacers and standoffs, the smallest pieces I've got right now are hex M2*5+6 standoffs and they don't cleanly pass through the mounting holes, but once I have optimal hardware the total thickness should be ~3/8" for the case, ~3/4" from the bottom to the top of the keycaps |
I've got a love hate relationship with Chocs - mostly because I'm chasing short actuation distance, and there's not a whole lot of options in Chocs. (Maybe 10ish + frankenswitching)? I've built the sofle choc, and i found the keyplates to be difficult to use, and unnecessary. That said, I used pcb plates. Because theres only .8 gap between the plate and the pcb, when you are pressing the switch in, the plates tend to push down to the pcb, so it makes putting all your switches in a total PITA. As for the functionality of the plates with Chocs, the 5-pin design and the low height keeps those switches in place just fine without the plates. SA keycaps on MX switches can get pretty tall, and they will sometimes tip-out of the thumb cluster - but Chocs generally don't have those problems. That being said - i think FDM Choc plates are a good solution for aesthetics. I've made some myself: I think it would be good to have a choc specific fdm case. You can see how well love and shared the corne is https://www.printables.com/search/models?q=corne%20case I'd encourage you to make a Choc fdm case. As for recessing the screws, in my experience, 'the juice isn't worth the squeeze'. Most split keyboards have rubber bumpers on the bottom to keep them from sliding around the desk. Even a really tiny 2mm bumper is enough to keep a 2mm cap srew head off the desk. I'm not sure the added complexity of recessed screws would be offset by added utility. If the case is purely fdm, you can abandon the standoff passthroughs entirely, and use the holes to attach bottom to top plate: |
I'm 100% new to gasket's in keyboards. I see them a whole lot more in traditional keyboards, rarely in splits. I was kinda bummed that the cricut cut came out so rough. If you do try out the lazer cutting, can you update the experience? |
Ah, so presuming standard ~1.6mm plates you're both maintaining a gap and failing to lock in the retention clips into the 1.3mm retention zone. Its never going to feel good typing on a trampoline, but that would potentially be a case where a thinner membrane like rubber could help. If you can't fully engage the switch retention clips I'd have to think you'd be better off oversizing the gaps and keeping the plate flush-mount for pure aesthetics rather than push it up onto the switch bodies. At least for the FDM solution it works very nicely, I built in the retention lip similar to your MX keyplate / what I'm seeing in these Corne cases. My prototype plate is 2.2mm thick PLA with a 1.1mm plane halfway up for the retention clips and it all sits clean flush with the mating surface. Any bowing while typing will be inherent to the underbody support. I'm still waiting for my Choc-sockets and LEDs to arrive/be installed for final fit checks, but I think that part of the design will work cleanly.
Providing at design files for FDM and Acrylic designs on a simple sandwich-case equivalent to your Sofle-Choc is a requirement as far as I'm concerned. Fancier versions from there I'm going to leave to more skilled hands. I mainly went down the counterbore path to reduce any chance of collisions under the keycaps if somebody used hardware large nuts/heads. I just don't like the lumps hanging off the bottom, and the pockets turned out surprisingly clean for a lower-end PLA print. They're a compromise due to the thinner plates, I don't want to weaken the joint too much, but I think if the surfaces largely stay flush that will be fine. I am going to need to increase the head clearance diameters on my next print to provide more tolerance for disparate hardware. EDIT: OK no, I can go thinner/simpler still. I snagged some M2.5 screws from work, screwed them directly into the 3D printed holes, and it works well enough that I'm taking the plunge for M2 socket heat inserts. Anyone with a soldering iron can install these, they'll reduce total thickness and increase stability, and if you don't want to use them you can just install other hardware.
This is neat, but I have to imagine it would exacerbate the trampoline typing issue, at least until I've done enough iterations that I can confidently measure the stack-up. That's why I'm jazzed about the foam layer, with the right spacers I should be able to effectively "float" the case and keep noise/vibration down with a compliant material layer.
Will do. I saw that they sell X-acto style knife heads for Cricut which apparently work better on foam than the standard cutting blades, but I don't think I want to invest much into the gadget when I've got access to cooler and more versatile options. It's just a bit self-evidently limited for my interests, and I hate the monetization intrusiveness of its application. Honestly the better solution for creating these might be to 3D print a cookie-cutter "tool" and stamp cut them. You could possibly even derive or outright integrate it into a bottom-plate design. |
@JellyTitan I'm getting the boards milled today, and the bulk of my remaining components arrived so I've begun soldering in my LEDs/switches. If you email me your address (send to peter.werle@gmail.com) I can get you a singulated pair in the mail soon. I got your QMK fork setup in QMK MSYS and compiled the default code earlier as well, so making progress. With luck I'll have a functioning keyboard by Sunday. |
… doublesided footprint and PCB tinkering