This looks like an route-able pin connection. Some are shorter, a few are a bit more difficult.
I’m going to ask the CAD guy to consider a radical departure from the current front-end layout. There are 8 traces that have to reach each set of 4 buffers. That’s a lot to drag across the board under the RP2350 (with many vias in the center pad).
Maybe all the buffers can go close to the RP2350, instead of close to the 10P connector. At minimum the buffers should all be moved towards the USB edge of the PCB, closer to the RP2350. Then we can spread out the messy analog mux related stuff crammed between the buffer sets, giving us a nicer working area for whatever comes next.
The reason I’m suddenly interested in fleshing this out is because we’re spooling up new tooling this week and it is the once-a-year chance to move the bootloader button. I feel like it should be close to the flash to keep the CS trace as short as possible. Maybe a different, smaller button is in order?
I guess you want to postpone the change to an external ADC to reduce the necessary firmware changes for the REV0 prototype and to get started soon.
I suggest to add one more change into this REV0 prototype: the planned TVS diodes on the inputs + reduction of the 330R series resistor.
This doesn’t require any firmware changes. But it would enable you to use these prototypes for the potentially destructive testing of the new input protection. Doing this as early as possible allows you to easily revise and improve this in the next prototypes if necessary.
the button is already hard to press with a finger and i guess most people already need a small tool.
So do you want to change it the opening in the case to a small hole to use with a bent paperclip? This would allow you to use a smaller button and also better protect against accidental presses.
Yes, I’m hoping the total board rework to make a lot more space for that kind of stuff that needs to connect directly to the IO pins. I want to discuss that with the CAD guy to get his input.
Yes, something like this. I also use the hex wrench that comes with the Bus Pirate to hit the bootloader button.
The main thing at the moment is to know if that is something likely to happen. The new injection molding factory is much more professional, and can design the mold for inserts that change basic things like the programming header and button hole location. It will increase the tooling costs, but it gives us long term flexibility.
Ian … If you do get a few of those all-side prototypes made, I’d appreciate being on a shortlist to get my hands on one … especially if it has the new plastic case with different scatter light powders.
Sorry, I’ve been a bit scattered this week. I absolutely do want to discuss TVS diodes
I’ve never worked with them, but over the last year I’ve read datasheets and app notes several times. It seems simple enough.
A bipolar TVS diode is probably our preferred device?
Reverse Stand-Off Voltage (VR): Reverse stand-off voltage is the maximum voltage that can be applied to the protector without actually activating the device. The device VR should be equal to, or higher than the peak operating voltage of the circuit being protected. This is to ensure that the protection device does not clip the normal circuit operating or signal voltage. Breakdown Voltage (VBR): Breakdown voltage is the voltage at which the diode will begin to protect and conduct current. Generally, the VBR is specified at 1mA. Clamping Voltage (VC): Clamping Voltage is the highest voltage that the protected circuit will be exposed to during the test waveform event. On most datasheets, the clamping voltage is given for a 1A or 2A waveform that has an 8µS rise time. Peak Pulse Current (IPP): The peak pulse current is the maximum current the protection device can withstand.
CBI has been a dream to work with, and their prices are really good. Here’s a unipolar TVS in SOD-523.
Same part in SOD-323. Slightly different test condition. Significantly more leakage (or more likely, a poorly stolen datasheet? I mean look at the font difference for the VF and IF lol)
Tentatively, it seems like USON8 Winbond flash chips are widely available again. We stick with SOIC8 (8x5.28mm) because it’s always available and the cheapest option. For a while the USON package (6x5mm) was either hard to source or double the price.
I’m not sure its worth inviting that choke point into our supply chain to save 2mm of space.
I’ve seen you don’t have 10µ in 0402 in the schematics yet. You could probably change it to the 4.7µ you already have and change the resistor to like 820k to compensate. Or switch the 4.7µ over to 10µ, I guess the voltage regulators won’t mind a bit more capacitance. These values are all just nominal in the end, at the real voltages most of the capacitance is gone.
Will write my thoughts about TVS & input protection later.
The inside circle (red arrow) is the new keep-out. The outside circle is the old keep-out. The adjustable power supply can move up quite a bit and take advantage of the new space.
A draft board with proposed component placement is in progress now.
As we may well have a REV0 prototype assembled by end of next week, a few items:
We’re limited by RP2350 chips. We will have to pull some off donor boards. I will have 2-4 prototypes made, so I can share a couple boards. They will be available strictly to active developers because they are not FCC/CE tested end user products. It looks like PICO2 is available in China now, so we’ll probably pull chips from those.
Something that has been on my mind a bit: any ideas how to implement control for the pull-X resistors?
I agree the pullx up (R) Pin [Pin [Pin ...]] is not as clear as having distinct commands for pullup vs. pulldown … so my vote is to split the verb into two distinct commands.
Would it make sense to also have this with a noun prefix(*), such as: pin pullup (Resistance) Pin [Pin [...]]?
Two related questions:
Is at least one pin required, or is there a default set of pins if the user does not provide a list of pins? If no default, is there a shorthand for setting all pins at once? (e.g., all instead of the list of pins?)
After it’s enabled, how does one then disable the pullup/pulldown? (e.g., pin pullup disable Pin [Pin [...]]?)
(*) IIRC, you mentioned you liked the noun verb model of commands … an here it’s an immediate but volatile (not saved between resets) setting, so the noun verb concept would read reasonably well.