Post B6JtAHQ2KXORbjHh7w by dramforever@mastodon.social
(DIR) More posts by dramforever@mastodon.social
(DIR) Post #B6Jni8pgA3rv692dvM by niconiconi@mk.absturztau.be
0 likes, 0 repeats
Trying to make a passive Beneš network for swapping 8-bit GPIO data lines to an arbitrary pinout by selectively soldering resistors. #electronics
(DIR) Post #B6JsTWkxQjwyivgTBY by niconiconi@mk.absturztau.be
0 likes, 0 repeats
I was struggling to find a way to swap signal lines using selectively populated resistors, and I eventually found the answer was obvious and I completely missed it. :blobcatfacepalm: A full-bridge diode rectifier is a 2x2 crossbar network switch, it swaps two input lines by flipping between the "cross" mode and the "bar" mode in every half cycle. Replace diodes with resistors, and use the diode conduction rule to program it. #electronics
(DIR) Post #B6JtAHQ2KXORbjHh7w by dramforever@mastodon.social
0 likes, 0 repeats
@niconiconi now i wonder if you can get away with four solder pads instead of eight
(DIR) Post #B6JtAHn4wrpClC462i by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@dramforever@mastodon.social Yes but I think it's not pick-and-place compatible, because of overlapping footprints. If the pinout is fixed at PCB layout time, you can also program the switch using a single resistor only. The bar mode is just a regular trace.
(DIR) Post #B6JyLLGkr3lWVO2MIy by ignaloidas@not.acu.lt
0 likes, 0 repeats
@niconiconi@mk.absturztau.be I expect this to be a major pain to route on a PCB
(DIR) Post #B6JyLLkt31ru0q8QGu by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@ignaloidas@not.acu.lt At least it's mechanical, ad-hoc swapping is the real nightmare. 1206 resistors can skip 3 signal lines, exactly the max swapping distance of this network.
(DIR) Post #B6JyYFksfRD3AUHiKW by robryk@social.wuatek.is
0 likes, 0 repeats
@niconiconi it's obvious in hindsight but only now I realized that switching networks that support any set of disjoint connections are the same thing as sorting networks
(DIR) Post #B6JyYFvs0a03iZQUSW by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@robryk@social.wuatek.is I found one of DJB's crypto papers on his djbsort library, he used results from both fields. https://cr.yp.to/papers/controlbits-20200923.pdf
(DIR) Post #B6Jyuf5TADzw6ZbGlM by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@ignaloidas@not.acu.lt There should probably be a bufferfly/inverse bufferfly layout as the backup plan, a small subsets of lucky permutations can save 1 stage.
(DIR) Post #B6K2tK3oFsVGQ1RNsO by poleguy@mastodon.social
0 likes, 0 repeats
@niconiconi @dramforever I didn't think pick and place had any trouble with this. They are programmed with x,y and rotation, and don't know anything about "footprints." But I've never actually tried pushing this through the process.I don't think optical inspection cares either. I think the rule makers in a corporate PCB department might have a fit. :-)
(DIR) Post #B6K2tKGDVkQb2VFIDQ by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@poleguy@mastodon.social @dramforever@mastodon.social It's incompatible with the standard CAD workflow. I think you need to manually modify the output data to select the resistor placement positions, CAD's auto-generated output is unusable. If your entire project is dedicated to switching, and you have custom script, it probably works, otherwise someone is definitely going to mess it up.
(DIR) Post #B6K5QNgS0Ly37XPERM by poleguy@mastodon.social
0 likes, 0 repeats
@niconiconi @dramforever I don't see why any BOM variant wouldn't produce correct placement data for overlapping footprints. But if space is not constrained there is no need to find out.Swapping like this is an interesting problem in general. Are you restricted to single sided topologies?If you did consider shared pads, I wonder what madness you could cook up with 1206 combined with 0402 etc. to allow variable length jumps... :-)
(DIR) Post #B6K5QNqjO8BtdQDRSq by niconiconi@mk.absturztau.be
0 likes, 0 repeats
@poleguy@mastodon.social @dramforever@mastodon.social I see. Overlapping single parts (rather than a custom 4-pad footprint with no ready-made coordinate data) sounds like a workable solution. Indeed, the motivation is single-layer routing, with automatic signal swapping.
(DIR) Post #B6K7mzZK1tNstjytKy by poleguy@mastodon.social
0 likes, 0 repeats
@niconiconi @dramforever I see now. Yes, a custom footprint would break the flow. You could do both though: custom copper in the PCB with overlapping schematic parts (e.g. with tiny land pads that completely land within the custom copper) populated to provide placement information.