Breadboard Electronics

…I did suspect and just confirmed that Pmods must plug into the correct “interface type.” …

I assume you mean that specific interface pins from the uC, for example, RX/TX for UART, must be connected to the correct corresponding pins on a Pmod UART module. This is true, but there may be additional pinout flexibility that is dependent on the how extensive or granular the IO mux for the specific uC.

I’m not if the placement of SPI and I2C pins has been standardized on various Pmod modules. If not, then that could be an issue for a constrained uC IO mux.

OT: My use of Pmods has been exclusively with FPGA, where there are no ‘preferred’ pins for IO such as SPI, I2C, UART. Which is, coincidentally, why FPGAs are sooo much fun - any pin can be any function you want!

1 Like

Yeah it looks like there are 9 or 10 different pinouts, depending on the interface supported by the particular socket. So you can’t necessarily expect to be able to plug any module into any socket.

FPGAs do sound like a lot of fun. Kind of above my current pay grade. Maybe I’ll try to track down some sort of educational kit to start dabbling in it. Need to stay focused though… Almost went down a PLC rabbit hole in the last couple of days.

2 Likes

Not the cleanest solution for fixing pin mismatches, but these Pmod probe boards can have traces cut and easily swapped around. It’s rather odd that the 6-pin test header is $2 more than the 12-pin???

Pmod TPH2: 12-pin Test Point Header, $4.99

image


Pmod TPH2: 6-pin Test Point Header, $6.99

image
image


Then there’s this proto board what would facilitate the swapping, but it’s overkill. But handy for quick 1-off DIY modules.

2 Likes

Very cool. Now check this out. MikroE is pretty cool in that they share full schematics for all of this stuff so it’ll be easy to lift and shift stuff like their I/o level translation and stuff to Brady’s board if we go this way. They’ve probably also made some sensible decisions on what Pico pins to route to the microBUS connectors and we’ll see that too.

2 Likes

Disclaimer: Nothing that I post here is guaranteed. Use at your own risk.

Here is the link to my latest design. This has a few upgrades from the last board I had made and I have not tested everything. I ran out of good ideas and dumped some crazy stuff like spares and such that should be dumped. Feel free to make suggestions.

After all your great interest shown above, I decided to throw it out earlier than I had initially planned. Within a few days, I will post here a list of the parts and Aliexpress links that I am acquiring for my teenage robot club.

I hope this will encourage a group of us to move forward to develop and publish plans for a wonderful DMS development board.

1 Like

If you used the link above, you have pulled my shared project to your PC. For those that did not, here are the EasyEDA schematic and pcb images.


@urbite did a great review of the project and very respectfully and politely (words we do not often see on forums) sent it to me privately! I think it would be great for all to see and many can learn with me from it. First here is my private response to his review and I’m requesting him to post the full review.

Your messages are fantastic! My only wish is that you would post it on the open forum. No changes needed. Feel free to say something like, I PM-ed this to Brady but he wanted it posted openly so others could benefit from it. I’ll thank you for it and respond to several points.

TL-DR - Not at all. I’ve had it at least three times. I love the very clean way you showed power and ground. I’m like a kid that gains access to a power tool and tries to see what all he can do with it.

Strip_top and side are for WS2812B LED strips. You can see both in my photo in replay 6 of the thread. Top will be less than 4" and will be soldered and glued down. Strip_side is for a 90 degree female header facing to the right. I use strips about 24" long for some classes and I just have three pins of a male header soldered to the source end of it. The hole is for a rotary encoder that I might mount. The board has a place for a five pin header for the encoder. The plan is to make soldered blue wire connections.

This is clearly a beginner effort to put a few parts on a board that was so successful that it grew up too fast. I learned much from your messages and will implement some of it but some of it, like auto-routing, I’ll keep going my very non-professional way.

I see you are in the class next Thursday and look forward to talking but I’m retired and always open to a call. It’s best to PM or text your number because I flush most everything w/o a name to vmail. I’m only slightly familiar with gate array concepts. 18 layers boggles my mind!

1 Like

@bpamplin - thanks for the kind words. Here’s the ad hoc review of Brady’s design that I sent to him via PM. Kudos to Brady for diving headlong into creating a design with a new set of schematic/pcb tools and learning on the fly.

[begin reposted review]
Thanks for uploading and linking the latest EasyEDA design. I was able to clone/copy the design and am playing around with the routing a bit.

A few bits of (intended to be) constructive feedback regarding the design.

  1. The Pi Pico symbol doesn’t have pin numbers, but instead duplicates the pin labels as pin numbers. Convention for schematics and PCBs is to use pin numbers. This makes it much easier when probing a board, as one can find a specific pin numbers without a schematic reference. It may be that a pre-existing Pi Pico symbol was used that didn’t have pin numbers.

  2. Only 2 of the GND pins on the Pico is connected, the rest are not connected. It is strongly encourage to connect all power and GND pins on a device - especially the GNDs.

  3. Cosmetic/style - In a schematic, by convention, GND symbols shouldn’t have a ‘sideways’ orientation. Also preferable for power symbols

  4. Mounting holes in corner of board are preferred to be aligned and uniformly spaced from board edge

  5. Leave trace-free clearance around mounting holes, so that traces aren’t underneath metal mounting screw heads

  6. Traces coming out of part pad should come straight out from pad, then bend. Also, note how close trace is to adjacent pin pad [measured 7.5 mils here]

    image

  7. Thinner traces can be used for routing signals. Current design uses 1.0 mm traces. This prevents routing traces between Pico pads. Measured the inter-pad gap to be 30 mils, leaving space for a 10 mil trace with 10 mil gap on each side.

  8. After all routing is done, it’s a good idea to do a copper pour for GND. Although this can be tricky to make sure that there aren’t any non-connected copper islands in the pour.

  9. The ease or difficulty of most PCB layout is a function of component placement, especially so on a 2 layer board. On a 2 layer board, I like to minimize the power supply rail routing distance between components to make it easier to connect with thick traces or small copper pours. The signal routing is less critical for the relatively low speeds of most of the peripherals on this board.

IIRC from your comments, this board was auto-routed. While it is an ‘easy’ button for hobbyist work, most of my PCB design buddies avoid it. If they do use it, there’s a lot of setup of routing constraints to insure that the best results can be achieved.

Speaking of constraints (or classes), I wasn’t able to find any way to set any. For example, it would be nice to be able to have a power trace type/class with 1 mm width and a signal trace class with 0.254 mm (10 mils). Then the trace type could be selected without having to enter the specific width when changing.

OK, I’ve gone overboard here. You’ve done a great job and I don’t mean to diminish your accomplishments at all. Just giving some feedback.

For background, I’m not a PCB designer. I’ve done a few very simple boards myself. But, I’ve done a lot of very complex FPGA designs with layer counts up to 18. For those designs I’ve worked with gifted PCB designers, in a role where I give a layout guide with some of the above constraints and a bunch of others. So, I know what I want in a PCB design but that doesn’t mean I’m skilled enough to drive the tools to get what I want.

I have attempted to update the design to use pin numbers for the Pico, and have updated the schematic. But I’ve been completely stumped regarding how to make the corresponding change in the PCB footprint. I can’t even locate the symbol in a way that I can clone/copy it and make the changes.

I found a user-contributed footprint that looks identical and made the modifications and saved it. But I can’t find it anywhere to substitute in your cloned design - I’m still stumbling my way through EasyEDA :slight_smile:
I’m open to any suggestions you may have.

FYI, here’s what the update Pico schematic symbol looks like with: pin numbers instead of names, all GNDs connected, power connections made ‘vertical’

Hope this wasn’t TL;DR :slight_smile:
[end reposted review]

3 Likes

Are we talking about putting pin numbers on the silk? I’ve never seen that except on dev boards like the Pico itself.

Edit to clarify: pin numbers on silk are generally on boards like the Pico where you have the ability to connect something to a pin - so you know what pin you’re connecting to. That doesn’t seem to be the case on this board, though that does bring up an idea - a through-hole pad just outboard of each Pico pin to make it easy for folks to wire in their own stuff.

In any case, if you guys want me to help with that and to help associate the new footprint with the schematic symbol, I’ll be happy to do it.

As for #8, copper pours in EasyEDA don’t leave islands by default but there is a checkbox to control that when you create the pour.

1 Like

I was thinking of doing that on my next update but thought it would look goofy to more experienced makers.

I don’t think there’s anything wrong with it at all. Most of your pins are available on other places on the board but without referring to documentation they’d be hard to track down. I think it can be done in a non-goofy way :slight_smile:

One other thing to consider is adding a spot for a small breadboard. I do mean small. Like this:

1 Like

No pin numbers on the PCB, just on the schematic. Since the Pico module is essentially a DIP format, it’s nice to be able to count pins on the board when debugging

That thought crossed my mind, definitely a good addition

That thought flitted across the brain also. With some rearranging of connectors, we could make an array of square pads that matched the breadboard. This would allow a more permanent addition after the breadboarding had proven the circuit.
Would probably want to also add a row of ground and power pads on the periphery of the breadboard area.

Really boneheaded that the Pi people put the pin numbers on the bottom of the Pico. Just a few pins are marked on the top.

I just uploaded the modified version of Brady’s design. Not trying to confuse things by getting different versions going, but rather looking for feedback on the changes that were made.

The changes made were:

  1. Connected all of the Pico GND pins, and connected them together at the Pico, using a combination of copper pours and wide traces
  2. Kept the 1mm traces for power and ground for the low power peripherals. For the LED strips, bumped up to 100 mil graces
  3. Changed all signal traces to 10 mil (0.254 mm) width. This allows 1 trace to fit between Pico pins and still leave a comfortable 10 mill gap between trace and Pico pads
  4. Moved some connectors around to make routing easier. The 5V stuff was moved to roughly the upper right quadrant.
  5. Moved the encoder connector above the encoder cutout. This also eased routing as it shortened the signal wires to the Pico
  6. Repositioned connector labels so that function is above connector and pin function is below
  7. When moving connectors, tried to place on 100 mil grid. This can be useful if this board is ever plopped down on a larger 100 mil blob board as part of a larger project
  8. PCB passes DRC; 0 errors

This is still a WIP. For example, when the Pico layout footprint was modified to change the pin numbers from labels to numbers, a footprint with the debug pins was used as the starting point. However, the Pico schematic symbol was not updated to add the debug pins.

As I mentioned in a previous post, I’m not a PCB layout guy (as will be obvious by viewing mods/hacks). @mdredmond and @bpamplin (or anyone else), please review - any feedback is appreciated.

This is my first foray with EasyEDA, so I have no idea why my shared project share name has multiple concatenated of ‘_copy’ at the end???

1 Like

I do not have time to see it this morning but I am glad that you are taking control and cleaning it up. Feel free to dump my original name, initials, email… When you have a version that will be stable for a while, I’ll grab it, probably make a few changes and then order some for my classes.

Yeah, I don’t understand it either. I think you can do a Manage/Edit and clean it up.

It has been implied before but, I want it to be clear to those that have not tracked it closely.

You can pull a copy of @urbite board using his link, optionally make changes and from the pcb screen, choose Fabricate to order five boards for $3.50 including postage.

Do not use my board. It will go into the dustbin of DMS history having provided a wonderful stepping stone toward where this project is today.

1 Like

One thing to note. If using a Pi Pico W, there is an antenna located in the area I’ve highlighted. The design as drawn will probably will be okay IF the Pico is installed in male headers soldered to the dev board. But the footprint used is intended to allow both a socketed installation or SMT soldering the Pico. A Pico W soldered down will definitely have issues with traces under that keep-out area.

15eb0bf9b873d0aef0419b6bbeb61a440fc8bef6_2_505x500

2 Likes

@mdredmond - good feedback on the Pico W keepout.

I didn’t really intend to go this far down the rabbit hole. My intent was to clone Brady’s design and tweak it a bit. But the tweaking never ends :slight_smile: I haven’t gone and looked at any of the datasheets for the components or the Pico. Probably should do that as a sanity check.

Since my last post, the following mods have been made.

  1. Change mounting hole diameter to 0.125" with 0.250 clearance, which will accommodate 4-40 or 3 mm pan head screws. Mounting holes spacing is now uniform
  2. Move the rotary encoder hole to make space for the mini breadboard area suggested by @mdredmond
  3. Reposition various connectors to accommodate changes and ease routing

Additional changes planned or in work. Not sure if they’ll all get done

  1. Add space for solderless breadboard. This will be an array of 90 mil square pads with 40 mil holes. A 90 mil pad size makes it easier to solder blob adjacent pads to make wiring runs. May even bump this to the max size allowed by fab pad-to-pad spacing rules. 40 mil hole size is to comfortably accommodate 25 mil square headers.
  2. Remove copper from underneath Pico W RF area, per @mdredmond’s suggestion.
  3. Modify footprint to add male header pin hole to next to each Pico pin, to allow easy connection for use cases that differ from current board function

Here’s a current pic of the board.The white rectangle in the lower right quadrant is the size of the mini solderless breadboard.

@bpamplin - regarding the connector placement, are there connectors that shouldn’t be moved? I can see that the OLED display needs to avoid any connectors underneath that. And the rotary encoder connector still needs to be horizontally aligned with the encoder hole. The LED strip connectors are appropriately placed and oriented (I think). But other than that, I didn’t see any critical connector placement. Please advise otherwise.

I’m going to put a little time into this too.

If you add additional board area for a solderless breadboard I suggest that you fill it with a pad field on 0.1” grid to the extent practical.

Solderless is great for prototypes but not a good idea for builds