Looking for an Arduino proto-shield library part that I KNOW exists somewhere

I am trying to find an Arduino UNO Proto-shield library part that allows putting a breadboard ON TOP of the proto-shield - i.e. that the proto-shield board part respects the “Bring to Front” and “Send to Back” commands with respect to a white “mini” breadboard. The existing proto shields from the SparkFun and Adafruit libraries do not seem to allow this.

However, I distinctly remember having an older installation (on an older PC), that included an Adafruit proto shield, and I think it had a version number, something like “v.5”. I remember being able to put a breadboard on top of that protoshield board (in Fritzing’s Breadboard view).

I do not recall if I obtained the a library part that could do that directly, as I received it, or if I did some modification to the part, to allow the proto-shield board to go behind the mini breadboard.

Can someone please help me out with this? I need either a link to a UNO protoshield board that can be placed behind a breadboard, or instructions on how to modify an existing protoshield board part to allow it to be placed behind the breadboard.

Thanks and very best regards,
“DuinoSoar”

I expect you are looking for this:

https://forums.adafruit.com/viewtopic.php?f=31&t=36560

which at least on Fritzing 0.9.6 produces this:

The reason for the 0.9.6 restriction is that I believe breadboards are always supposed to be on the bottom and not movable, but in 0.9.6 (at least) that doesn’t seen to be true. I can make the breadboard on top. I’m not sure if this is 0.9.6 specific or I misunderstood breadboards.

edit: Learned something new again! The trick here is this part has a breadboard layerId of breadboardbreadboard rather than the standard breadboard. With the layerId set to breadboardbreadboard the part can be moved up and down relative to the breadboard (changing the layerId to breadboard makes it act like a normal part and it won’t go below the breadboard!)

Peter

Yes, THAT’s the one!

Thank you so much, @vanepp. I guess I was using the wrong search terms or something; I just could not seem to find it earlier today. Now that I have seen the forum thread again, I also remember dendoracing’s avatar/icon.

Thanks and very best regards,
DuinoSoar

@vanepp : Just read your “Edit” comment. So what series of steps do I need to perform to change a part layer ID (i.e. from “breadboard” to “breadboardbreadboard”)?

I am not (yet ; ) familiar with editing Fritzing parts.

Thanks again.
DuinoSoar

Edit: So I tried using the “Edit Part (new parts editor)…” command and opened the parts editor on the shield created by “dendoracing”. I could not find anything in there called “layerid” nor anything set to “breadboardbreadboard”. What am I missing?

Edit2: The reason I ask is because I would REALLY like to use the “Adafruit Proto Shield R3” (the blue one) in the same manner, if easily possible. It looks more realistic (with the header sockets, buttons, LEDs, etc.) than the green “v.5” part. Is there some way I can get a mini breadboard to appear on top of it by simply changing a parameter or two in the parts editor? (Or by editing a file or something?)

I doubt parts editor will do it, it can’t deal with breadboards, nor edit svgs. So to do it you need to unzip the .fzpz file to give

Adafruit Proto Shield for Arduino Kit - v.5.fzpz :

part.proto_shield_v5.fzp
svg.breadboard.proto_shield_v5_breadboard.svg
svg.pcb.proto_shield_v5_pcb.svg
svg.schematic.proto_shield_v5_schematic.svg

then edit the .fzp file part.proto_shield_v5.fzp here

and change

<breadboardView>
  <layers image='breadboard/proto_shield_v5_breadboard.svg'>
<layer layerId='breadboard'/>
  </layers>
</breadboardView>

to

 <breadboardView>
   <layers image='breadboard/proto_shield_v5_breadboard.svg'>
 <layer layerId='breadboardbreadboard'/>
   </layers>

and then edit the

svg.breadboard.proto_shield_v5_breadboard.svg

with either a text editor or an svg editor such as Inkscape and change the layerId there. This was done with a text editor:

        <?xml version='1.0' encoding='UTF-8' standalone='no'?>
    <svg xmlns="http://www.w3.org/2000/svg" width="245.0484" version="1.2" height="189.1809" viewBox="0 0 196.039 151.345">
     <g id="breadboard">

to

    <?xml version='1.0' encoding='UTF-8' standalone='no'?>
    <svg xmlns="http://www.w3.org/2000/svg" width="245.0484" version="1.2" height="189.1809" viewBox="0 0 196.039 151.345">
     <g id="breadboardbreadboard">

(the breadboardbreadboard needs to match text and case with the layerId in the fzp file.) Then rezip the .fzp and 3 .svg files in to a .fzpz file. If you use Inkscape or another svg editor you are best to run the result through FritzingCheckPart.py to clear some of the changes that the svg editors make that Fritzing doesn’t like. The text edit won’t change anything except the layerId.

Peter

@vanepp : Thank you, Peter. The green “v5” part is already set up as a breadboard - it is the the blue “R3” part from the Adafruit Arduino library that I want to try to change, but I do get your meaning. (BTW, I am familiar with XML files.)

But I notice that “dendoracing” defined all of the connector elements as also being in the “breadboardbreadboard” layer. Would I also need to do that for the Adafruit R3 part? (BTW, the file name for the Adafruit Arduino library part (the blue “R3” part) has a long hexadecimal string in the name; I found it by doing a content search for “Proto Shield R3”.)

BTW, Peter, I really do appreciate your help on this. Thanks.

The breadboardbreadboard (or breadboard) layer should be the entire svg. I often ungroup the whole svg then do an Edit->select all and group then rename the resulting group to the layerId (usually breadboard, but breadboardbreadboard in this case.) If the layerId is missing in the svgs (any of them( the part won’t export as an image (svg, pdf, jpg etc) but that is the only problem I know of. The layerId in the .fzp file is the one that the code uses to decide if this should be a breadboard or not. So yes that should be done for the new board too but as noted the fzp file is what controls how the part acts in breadboard view.

The hex value is from parts editor because the moduleId must be unique so it generates a hash based at least partly on time that will be unique. It is usually (but not always) stripped off when parts are added to core.

Peter

layer id problems in the pcb view svg also cause issues with gerber export.

@vanepp, @microMerlin : Thanks very much for your help, folks. I owe you each one virtual beer (or coffee if you prefer :grinning: ).

I present to you an ATtiny85 LV Programmer shield, implemented on an Adafruit Proto Shield R3 with a “tiny” breadboard on top:

It probably could have been on a “mini” breadboard but the “tiny” works okay.

So I edited the Proto Shield R3 .fzp file with a text editor, to change the XML “layerid” attribute (line 36) and all “layer” attributes (some 380 lines - the editor’s “replace all” feature is VERY handy :grinning: ) from “breadboard” to “breadboardbreadboard”. These attributes were not specified in the XML for any of the .svg files associated with the Proto Shield R3, so I did not change those.

FYI, this programmer would use the ArduinoISP example sketch with OLD_STYLE_WIRING defined (and ARDUINO_HOODLOADER2 NOT defined). The top (red) LED is the error indicator, and the bottom (green) LED is the “programming” indicator. (No heartbeat LED, but one could be added onto the breadboard if desired.)

Caveat emptor: I have not tested this (yet).

Edit: Sorry. I should have written that the .svg files had lots of <g> tags with the id= attribute, but none had an id set to “breadboard.” So I did not change the .svg files.

Thanks and very best regards,
“DuinoSoar”

If I only knew back then… I wouldn’t have replicated the task… :disappointed_relieved:

Good to know!

PD: this forum is golden! :yellow_heart:

Edit: I just realized that the protoboard is a different size, so maybe still useful to someone (besides us :sweat_smile:)

A great contribution, it helped me with my project that I am doing.