Resistor-array?


#1

Hello there!

I’m currently developing a project which is in need of several resistor-arrays (various number of pins and both types: star- and parallel-circuit).

Is there any way to get those? Sure, I could instead simply place resistors in the schematic, but that would clutter my pcb-design which I’d like to use to actually make the boards.

Any help would be greatly appreciated. Building the parts – if noone has ever done that – should be no problem for me if there were any illustrations to use as I’m not good in designing/drawing.

Thanks in advance for any comments on this!


#2

Do a Goo search and you might find something.

https://www.google.com.au/search?client=opera&q=Resistor-array&sourceid=opera&ie=UTF-8&oe=UTF-8#q=Resistor-array+fritzing+


#3

Thanks for the suggestion. Of course I already did that. I only found a GitHub Repo with custom parts and tried to import it, but got error messages along the way. The closest I could get was a resistor array pcb. Which is far from what I need.


#4

WOW! You’r not asking for much… There may be away, need to dig a little deeper into it… How may different arrays are you talking about. Can you send me some datasheets links and I will see what I can do…

Edit: Any graphics you have made will help too, give me somewhere to start. I had thought about working on a 8-pin array awhile back…


#5

As English isn’t my native language, I’m not sure about the linguistic subtleties. May I ask if you’re being ironic? :sweat:

If I’m really asking for too much, please don’t bother about it. I thought that someone already has some parts ready for this, as for me resistor-arrays are more basic components. If not, I’d try to wrap my head around it. A typical datasheet is linked here.

As I said, I’m really bad at designing, so that I didn’t even start to make any graphics prior to asking. That said, the schematics-view shouldn’t be a problem, the pcb-view also shouldn’t. For the breadboard-view I could try to crush a few components together (e.g. overlapping graphics for ceramic capacitors).

If that’s not much work and someone is already on it, he/she could also go for everything? The values of the resistors are uniformly distributed. So one value for that should be custom (if possible) similar to normal resistors. For the star-configuration (one common pin and n-1 outputs) I find the most common ones are 5 to 10 pins (i.e. 4 to 9 resistors). The parallel-type must come with an even number of pins. The common ones seem to be 6, 8 and 10 pins (i.e. 3 to 5 resistors running parallel). Most importantly for me personally are the smallest networks (5-pin star, 6-pin parallel).

Thanks in advance for your comments/help on this!


#6

Not ironic, no subtleties, he just want to know which part you want because making 33 parts is a lot of work.

In the Fritzing world arrays are not a basic part because FZ was mainly made to cater for the beginner breadboard user. There has now been a push to make it do more advanced circuits, but it will take time.


#7

Sorry about that; I thought I read that you were good in designing and drawing… guess I overlooked the “not” part. Sucks getting old… Thought that I could make a coupe of parts for you and you could make the rest… (see one, do one, teach one).

As far as I am aware, no one has made any array resistors for FZ, and If someone had made them a long time ago they would’t work anyway…

The smd array-4 appear the be the most common array resistor, although it come is various packages… Each one of these needs to be a separate part. To make each package in a number of arrays you can multiply that by each package… then multiply that number by types… Then you have through hole… well, you get the picture. Some FZ core part (like connectors) are generated by a parametric script to generate the number of pin required, Unfortunately, I don’t have the knowledge to write the parametric resistor array script for FZ, so I have to make individual parts.

When I make a part for someone, it needs to be fully functional so it can eventually be added to the core parts and everyone can use it.

FZ has also added SPICE modeling information to Fritzing parts. This is use for the resistor value selection, I believe It can added it to the array resistors… but of course only one value can be selected.

What I have gathered so far, is that this project you are working on is all tht and there are no smd components on it at all… Is that correct? Is the a project where you are going to make a pcb or do you just need the breadboard view for some kind of presentation…


#8

Thanks a lot for the explanations. I thought that there was a way to “script“ dynamic parts with multiple headers or something.

You’re right. I’d like to make a PCB with only through-hole-connections. I first looked into eagle but it seemed like a real overhead for my project. So I decided to look into Fritzing. The breadboard-view I’m not using at all (I’m prefering the schematics).

Anyway. I sat down and modified the code (as I’m no designer) of the SVG generated by the core resonator as it looks somewhat similar. If you think that this is good enough, I’m happy to write a small python-script, that generates this SVG-images. Same goes for PCB and schematics-view (the latter shouldn’t be that easy as I’ve got no part that I could extend in the code). If there are any manuals on how to set the parts settings (connectors and so on) via a textfile I could even code this, so that with a click of a button all parts are generated.

Please note for the attachment: I got an error while uploading the svg. So I zipped it. As zips can’t be uploaded normally, I renamed the file. So after downloading please rename it to blabla.zip and then extract it. Sorry for this inconvenience.

Thanks again for all your help!

resistorarray.svg.fz (1.6 KB)


#9

The svg’s use to upload and suddenly they created an error, they can’t figure out why it does that. The .fz worked great, it unzipped without the blabla.zip. The res is a good place to start, I will play around it to make it look more like a resistor.

You are way over my head now, even if you did create all there scripts I would’t know what to do with them or how to use them is FZ… Maybe someday you can assist the FZ project and add them to the core… They are always looking for volunteers. :relaxed: As for right now to get you project going, it is probably best to do it the old fashion way… one part at a time.

You can check out the FZ git, maybe you can figure out how the scripts work. Here is a link to the Part file format: https://github.com/fritzing/fritzing-app/wiki/2.1-Part-file-format

I will work on a couple of these arrays to get a template started so we can create the rest of them you need for this project.


#10

Glad it worked out! What I tried to say is the following:

To create that svg I simply copied the SVG for the resonator that is provided in the core-libraries. Then I changed the sourcecode of that svg (copying the headers, extending the body of the resonator to form the array etc.). I could automate this task for any number of headers by creating a simple python script. If that script could also generate the PCB-view and Schematics-View and also generate the right files for packaging everything up in a part-file, then all of this process could be automated.

I’d only need to type something like cool-resistorarray-generator.py -star -rs 5 and it would generate a part for 5 resistors in a star-circuit.

Anyway: Thanks in advance for your work on “my“ part. If only one of each type is done, I could replicate them in the described fashion for any sizes.


#11

Do you want me to just start out with a 2 or 3 resistor (end sections and one middle section) and then you can write the code and expand from there?

I see where you are going with this… it may work… I am not a coder, but it would be interesting to see how it all comes out.

The one you sent me, the bendable legs lost something in translation, (a minor issue) but I really do see why this part needs bendable lets anyway. In real life they don’t have bendable legs… I will draw it up where it can be expanded and the center section can be duplicated and you can take it from there…


#12

That sounds excellent! End sections and one middle section should do the job perfectly!

I only have traces of bendable legs in there because I wasn’t that competent to remove them. I just used the resonator which also has them. I don’t know if they are really necessary as I’m using those networks only to declutter my designs and make everything more compact. It could make placing them in the Breadboardview more easy. But it also could clutter the view up rapidly.

As soon as you have one part ready I’ll start to code. Thanks in advance for your work! :slight_smile:


#13

I took a 6-pin image and overlaid the artwork, that is way you have a 6-pin array. I then shrunk it down to a 3-pin array and cut out the center pin section. The body you need to expand, right moves right. and center-duplicate is for your multiples 0.1" (2.54mm).

After I cut it all up, I thought maybe the third pin (last pin) should be the duplicated pin along with the center section so that it could be consecutively numbered. Otherwise the last pin would need to be renumbered.

Anyway… see what you think. :confused:

Resistor_Array.fz (3.5 KB)


#14

I changed it a little bit… self explanatory; copy, renumber, and move right pin-3 group. Pin-1 and 2 are stationary in left group. This one has left, center, and right section.

Resistor Array_expandable_v2.fz (1.8 KB)


#15

Joining the discussion a bit late, it could use a dot on pin 1 (which in the bussed or star version of this is the common pin). Again in the bus version (which is mostly what I use) the common sizes are 5, 9 and 10 pins for 4 resistors plus common, 8 resistors plus common and 9 resistors plus common. This was on my list to do once I get parts creation figured out but if someone else is doing it so much the better :slight_smile: .

Peter Van Epp


#16

Where you been Peter… you leave me out here all by my lonesome… Yea… I thought about the dot. There is other labeling that needs to go on it… haven’t got that far yet. I was wondering if there was a way to generate the value on it… This is kind of an experiment using a Python script to generate parts. I might learn something here. I want to create a working model before I get to far on it


#17

Several days of playing with motors and opto interrupters (which aren’t as fast as I’d like :slight_smile: ) which finally ended up with me deciding that the optical encoder disks on cheap ebay motors are worth buying some more of (throw the motor in the corner as basically useless and use the optical encoder which with enough care can be pried off the motor shaft to be redeployed on more powerful motors.
This approach should work fine in stuff like this which has identical sections of varying size. Either perl or python can parse xml (I expect there is a python xml parser as well as the perl one, but even the normal text tools in either language should work for something as simple as this). I’ll admit to thinking that perl/tk might be an alternative to Inkscape for svg creation since I believe tk is vector based (I haven’ t actually used it in for years though and may be misremembering) and going from the vectors to xml shouldn’t be that big a deal. A lot of the problems I’m having with Inkscape are because it is trying to do way more than I actually need and that makes it complex and painful to use.

Peter Van Epp


#18

Thanks a lot for creating that image! I finished the script for creating the breadboard-images. You can find it along with generated content in the attachment (same as before: a zip hidden as fz).

Is the generated output usable/helpful? If so, I’m glad to extend this for the schematics and PCB-view!

Resistor_Array.fz (26.6 KB)


#19

Works perfect… there are a couple of little things I should clean up on the image. That is pretty slick. I had made 32 connectors for the core library… took me days. When I wanted to edit one, I had to edit all of them, one at a time.

Two things: This may be a very dumb question. When I open one of the resistors up in Notepad++, it is all one long line run together, difficult to read. How do I change the format so that each function starts off on a new line number?

How do you write and run these Python scripts?..

I guess you can write the .fzp files the same way.

I will put the rest of the files together for you along with FZ format.

~ see one, do one, teach one ~


4x5 Key switch pad with LEDs (YL-4)
#20

Glad to hear that it works out that well! :blush:

It is really easy to do those things in Python once you figured it out one time. It’s only a bit tedious to convert the svg into this “dynamic“ format. I’m using a library to generate those svgs (called svgwrite). There are however a few things to watch out for:

  • The library is really strict about the syntax. So the extra fritzing-tags aren’t possible. What I’m doing is placing the gorn-attributevalues as classes and later rereading the file and replacing class with gorn.
  • I’m not sure, why there are no linebreaks. I noticed it, too. I guess the library doesn’t generate some. If it’s a real issue I could add a quick fix and insert linebreaks after each tag upon rereading the file. Adding the correct indentation could be hard however (alternatively I could search for a XML-tidier, should exist already).

To run this script (assuming you have python installed), firstly you need to install svgwrite e.g. via pip install svgwrite. Then running python r-array-gen.py should do the trick. Currently the last five lines generate the actual output. I’m planning once whole parts are created to change it that you could pass parameters via the terminal into the script. E.g. r-array-gen.py -star -r 5.

Thanks again for your help! If this works out, maybe the script can be abstracted to generate all sorts of variable components.