The Bus Pirate has used a 74hc4066 to switch the pull-up resistors on and off since the beginning. V5 has a big handful of 74xx logic chips. The problem is that the supply chain hangover seems to make these chips a bit scarce and volatile in price. For example the 4067 was available for less than 1RMB in small quantities, but now it is going for 2.2RMB up to 3.5RMB
2x 4066 deal with pull-up resistors on eight pins. I’m pretty sure this can be replaced with discrete PFETs as high side switches, maybe in a 2 or 4 package. Once all the resistors and such are included it may actually take more PCB space, though it would be flexible to arrange.
2x 595s give extra IOs because the RP2040 doesn’t have a lot of pins. We’ve already decided to replace this with a second RP2040. It is absurd that this can be done for about the same price as 2 595s…
1x 245 does level translation. When removing the 595s we’ll actually need a second 8 bit buffer. Probably the best thing is to find a more modern/widely available buffer, as these chip are pretty common. Something in DFN would be good.
1x 4067 expands the RP2040’s paltry 4 ADC pins to 16 inputs. We also measure some digital signals through here (card detect, over current) due to lack of digital inputs. It may be cheaper to use 2 more common 8 bit analog mux, but it will take more board space. This one is hard. Perhaps there’s a more modern analog mux, but analog stuff is never cheap.
Yes, the FETs are upside down and the values don’t make sense
We’re going to try something like this to replace the 4066. The BSS84 comes in a dual version in SC70-6 package. That replaces 2 TSSOP14 chips PLUS all the little bits of stuff to prevent back powering with 4 SC70s and 2 resistors. Should be cheaper and easier to source over the long term.
There’s a reason I haven’t tried something like this before. I believe it was because 4066s were so cheap that it didn’t make sense to test and implement a different solution. Or there may be a much better reason I’ll realize shortly.
Found some old spreadsheets and see that we had two issues replacing the 4066. The first was simply cost, it didn’t make sense to replace the 4066 because it was so cheap.
The second, though, was a bit more complicated. Affordable PFETs generally don’t get much better than 1volt Vgs, so if the Vout/Vref is <1volt the PFETs can no longer be turned on. Now, the IO buffers don’t work under 1.2volts, so that’s not really a huge issue, but the programmable power supply is capable of going down to 0.8volts so it feels somehow “incomplete”.
Another thought did occur to me. A bunch of cheap op-amps with shutdowns could be used to get pullups with the full range. However, this cheap opamp in a reasonably sized package that has a shutdown feature doesn’t appear to exist.
I talked to CBI last night and it was kind of wild. So they don’t actually stock the dual PFET part we want, but they were willing to make a reel for us custom if we can wait until Monday. I said sure, but then the boss said we have to order 30K or they don’t want to do the setup. I don’t want to order 30K of a part just to test, so I will keep looking a bit today. However I had a nice conversation with the sales rep. They have four dual package parts that would work for us, but none of them are stocked. They do stock the SOT323 and SOT523 versions of the SI2301 though, which is what we’re going to replace the WST3423 with in the long term. We could replace all the PFETs with the tiny 523 version. They all have the same max dissipation, and it’s 10x what we need worst case scenario, so it’s not an issue.
We’re also going to move to 523 sized diodes, I don’t know why we haven’t yet. (Yes I do, it starts with Neo and ends with den).
We’ve replaced the 4066s with SI2301 on a prototype, it’s a really welcome update. We’ve also moved all the PFETs and diodes to a 523 package.
There is a Chinese company making versions of all the 7400 chips we use, so we’re also going to mount those on the prototype and test it all out.
If all goes well, the second batch will have these changes. These are BOM updates to improve the supply chain, there’s no difference in functionality.
We talked to I-core about their logic chips. They wont sell to us directly, but we got a primary distributor. Honestly though, I sampled them all from a shop in huaqiangbei for the prototypes and I’ll probably just stick with them.
The upshot: PCBs are out and parts ordered. Assembly before the end of the week, then some testing and off for FCC compliance. I really want this design to be ready if we burn through the initial batches, there’s a much stronger supply chain behind it.
- LMV321 (U404, U603) was GS6001
- LMV321A (U601) was GS6001
- LMV331 (U602) was RunIC part
- 74HC4067 to CD4067 (I core)
- All 74xx logic to I core
- pullup system to SI2301 pfets
- WST pfets to si2301 (brand, size change)
- 1n4148 to do 523 (size change)