Circuit Break Podcast #426: Top Features to Add to Your Next Prototype

Podcast Title: Top Features to Add to Your Next Prototype

Release Date: 2024-04-12

Episode: #426

Today, we’re tackling a topic that’s a gold mine for any designer: crucial features you might not have considered for your prototype. From debug headers to “Swapperoo” resistors and heartbeat indicator LEDs, we’re covering it all. Tune in as we share insights, anecdotes, and maybe a few confessions from our own prototyping adventures. Plus, we dive into the importance of making your prototype testing-friendly and discuss a poll that could solve a common UART connection dilemma. This is episode 426 – your prototype’s new best friend!



Podcast Audio:

Podcast Notes:

  • Debug Headers: Taking inspiration from James Lewis’s Apple Mega 2 project, we discuss the importance of embedding debug headers directly onto the PCB. We also highlight the Tag Connect’s footprint as a space-saving, connector-free debugging interface.
  • Test Pads for Production Testing: Crucial for measuring signals ensuring that potential circuit issues are not overlooked. This measure is crucial for validating the prototype’s performance.
  • Jumper Headers in Series on Power Rails: This method allows for the quick disconnection of subsystems for individual testing, enhancing the diagnostic process without the need for circuit alterations.
  • Easy ways to hook up test equipment: By integrating connectors and test points specifically designed for easy attachment of debugging and testing tools, such as multimeters or oscilloscopes, engineers can streamline the troubleshooting process.
  • Signal Integrity Testing Points: To monitor and adjust signal quality proactively, supporting the prototype’s overall integrity.
  • Thermal Management: Managing component temperatures is a critical aspect often overlooked in the early stages of prototyping. The discussion includes practical strategies for thermal management, even in challenging environments like aerospace.
  • Prioritizing Function Over Form: Make the prototype whatever shape it needs to be to be accessible for testing and debugging, even if it means starting with a larger form factor.
  • Early Inclusion of Fiducials and Mounting Holes: The significance of adding fiducials and mechanical mounting holes at the onset of the design process aids in component placement, assembly, and effective heat dissipation.
  • Adding Pass-Through Holes: For unforeseen modifications or component additions post-design, showcasing the flexibility this can provide to a prototype.
  • Poll Discussion: When connecting two chips, each with their own TX and RX lines, should TX be connected to TX, or does TX connect to RX?

Relevant Links:

Community Questions:

  • What tips did we miss that you think are essential to prototypes?
  • Any cool features that you added to your recent prototype?
1 Like

For UART I usually use net names like devA_RX_devB_TX and devA_TX_devB_RX.
And while creating symbol in KiCad I specify pin types TX as output and RX as input, but I am always checking with pin table in datasheet. Then running ERC could save my butt also.
Have not had issues with messing up UART signals yet.
But have done it with USB signals. :dizzy_face:

1 Like

I have done the flip on USB signals before but that was because I designed the footprint incorrectly for the IP4234CZ6,125 TVS chip.

The problem comes in when you only have connector specifications for UART.
M.2 for example is a card-edge connector and receptical.
The E key flavour has pin 22: UART RxD and pin 32: UART TxD. Without devices attached, which direction is in and out?

Still looked at some datasheets - seems to have difference between socket and module to be plugged in it.
With great care should be possible to get it right.

I passed the transcript for this podcast through Google Gemini to get a summary (included below) of the PCB prototyping features you recommended. It seems to match 90% of the discussion highlights you listed on the web page for this episode. Did you produce that list manually or with AI?

AI Summary

Sure, here’s a summary of the podcast transcript in markdown format, focusing on features to add to a PCB prototype.

Summary of Features to Add to a PCB Prototype

  • Debug Headers: Include headers for debuggers like JTAG or ISP. TagConnect (https://www.tag-connect.com/) is a great option for programming cables.

  • Test Points: Add test points for probing signals, especially near sensitive circuits. Consider untenting vias to provide additional test points.

  • Ground Test Points: Distributed ground test points for easy connection of multimeter/oscilloscope ground.

  • Switchable Subsystems: Use headers with shunt resistors to isolate different subsystems (power, MCU, analog, etc.) for measurement and debugging.

  • Thermal Management: Consider heat dissipation and ways to measure thermal behavior (thermistors, thermal probes).

  • “Oh Shit” Holes: Add additional holes purely for passing wires through in case of mistakes or changes.

  • Mounting Holes: Design mounting holes to secure the PCB during prototyping.

  • Fiducials: Add fiducials early to aid in automated pick and place assembly.

  • Heartbeat LEDs: Include simple LEDs driven by a GPIO pin to visually verify basic microcontroller function.

  • Indicator LEDs: Add LEDs to monitor crucial power or status signals.

  • Swapparoo Resistors: Add a zero-ohm resistor configuration that allows swapping of TX/RX signals if necessary.

  • Inline Resistors on SPI Lines: Add zero-ohm resistors on your SPI lines (clock, data, CS) to facilitate the option of adding inline impedance for signal integrity.

  • Extra Op-Amp Pads: Add additional pads in op-amp feedback loops to accommodate potential capacitors or other components.

Additional Considerations

  • Prioritize Functionality: Focus on getting the circuit working correctly before optimizing size or appearance.

  • Easy Access: Prioritize easy access to test points and avoid placing them next to large components.

Key Links:

Let me know if you’d like more details on any specific feature!

1 Like

The list is built off the notes I wrote to prep for the podcast plus anything we come up with. Wouldn’t surprise me if AI is close since it’s a summary.

The original list is mostly from that Twitter thread.

Maybe I should look into using AI to generate the show notes :thinking:

I like how the AI picked up on the oh shit holes. Lol.

Did you use an AI tool to generate the transcript?

Yeah. I am using the built in tool from transistor.fm which is our podcast host.

Isn’t that what the specification is supposed to clarify though?

PCIE Express M.2 Specification Rev 1.1, so from card point of view, Lines 1348 and 1349.

  1. UART_RXD (Input): Receive Data
  2. UART_TXD (Output): Transmit Data

Just searched for “UART RXD” and found it pretty quick.

Thanks Eric, for reminding me that going back to the source is usually the best thing to do. Much better information than random pages from the internet.

And I am lucky, I am designing the card first. So according to the suggestion from Parker in the podcast, I am allowed to name the nets whatever I want. :speak_no_evil:

TX/RX. Well, there IS a standard specification for this in the RS232 documentation, and it depends on whether your widget is considered “Data Communications” or “Data Terminal” equipment, the original meaning being a terminal connected to a modem or a computer’s terminal interface. Now, even though I know this, I don’t even remember which is which.

The problem is that we use asynchronous communication for so many more things these days that it is often hard to determine which is which. Even in cases when you can make such a determination, things can change when the circuit operates in a different mode, or when the link is considered from a system rather than local, on-board, point of view.

One of my clients did a similar thing about naming, prepending a tag to the net names such as M2I_TX for MCU to IMU, for example. That helps. Generally I ignore the historical DCE/DTE concept and just think of it as master / slave, or should it be main / not-main point of view. But even this fails if you’re connecting two peer MCUs.

Stephen:

You mentioned getting heat off the PCB using conduction. Many moons ago, our company had a contract with NASA to build a novel “low-cost” engine test controller for use at some test stand. It had to be built to full flight specs, including the enclosure which was a $50K+ chassis build like a tank (6U VME cards with heat conducting clamps along the card edges where they slid into the rails). Most of the boards in the box were standard OTS conduction-cooled designs, having PCBs with an inner core of metal to conduct out the heat.

We designed one or two boards as part of an experiment into NOT using inner metal layers, and to conduct the heat off the board using very thick outer layers of copper (like 6 oz, or more? been too many years to remember exactly). Don’t know if this concept ever gained traction or not. In many cases, as I recall, the heat flow worked out, but the thick copper had some limitations even back in the 90s for finer pitch packages. I think also total board thickness was a challenge for many thru-hole parts as well (couldn’t get long enough pins to satisfy the soldering requirements).

I don’t even remember what happened to that project in the end. But I clearly remembered the anger the whole engineering team felt when the project leader came back from a trip to Stennis, having discovered there was absolutely no reason for this box to be so rugged … it was to be located about 50 feet outside an air-conditioned lab, and could have easily been just an industrial rack-mounted design.

If you’re curious, I think I can dig up some reports and/or analysis of this scheme.

1 Like