NodeMcu V3 parts library

I’m trying to find a fritzing part for the LoLin NodeMcu V3. I initially used the https://github.com/roman-minyaylov/nodemcu-v3-fritzing library. However, after production I found out that the pin distance (only 22.7 mm) is incompatible with the actual board dimensions. Anyone in a position to avail or direct me to a proper library.

A quick search indicates there likely isn’t a better part available so you (or someone :slight_smile: ) would need to modify the one you have. A look at the picture of the part here:

against the fritzing part you referenced indicates that mounting holes look to be the problem, they are too close to the connector strips (or at least look to be from the pictures what may be deceptive). If you have the correct dimensions of the board you have it shouldn’t be a big deal to modify the Fritzing part to change the mounting hole position (I’m assuming the actual connector pins are .1 inch standard pins and are correct as they stand). There have been a number of similar parts posted lately but I don’t currently see a match for this exact board (although I may have missed it).

Peter

Thanks Peter for attending to this issue. Lay-out is the same. It’s just a matter of widening the board and pin row distance. I need to explore whether the files in https://github.com/roman-minyaylov/nodemcu-v3-fritzing or https://github.com/squix78/esp8266-fritzing-parts/tree/master/nodemcu-v1.0 offer the opportunity to edit the parts and what is needed (software tools) to do the same. I have not carried out a parts modification in the past and completely alien to this issue. Any guidance if available would be appreciated.
Rgds
Dick

Any Fritzing part in fzpz format contains the necessary files to modify it (an fpz file and 4 svg files all zipped typically). However I’m unclear what the pin spacing issue is. From the photo the pins appear to be standard .1 in (2.54mm) spaced header strips. That matches the pin spacing in the part from github. Does the board you have use something like 2mm headers? Or is the issue spacing between the sets of pins (the github part is .9 inches wide which is pretty standard for these types of thing is yours more or less than this spacing)? Parts modification is fairly complex although useful to learn if you want to use Fritzing. If this is all you want to do it may be easiest for me to make the changes for you. To do that I need the dimensions of the changes you need made (typically I use vernier calipers to measure the dimensions on the board and get close to the position and size of mounting holes). There are a couple of tutorials on making parts using Inkscape (an open source svg editor) available here:

if you want to learn how. Ask questions here and one or another of us will probably answer as we need more people making parts.

Peter

Hi Peter, thanks a lot for your elaborate response which is highly appreciated. The issue is related solely related to the “spacing between the sets of pins”. Indeed, the github holds a spacing of 22.86mm (= .9 x 25.4). The LoLin NodeMcy V3 holds a spacing between the sets of pins of 27,94mm. The number of pins per pin row are exactly the same, also the spacing between the individual pins in the row, i.e. .1 in (2.54mm).
Thanks for directing me to the “new part creation” write-up which undoubtedly will give me a lead to start. However, I have taken good note of yr comment that “Parts modification is fairly complex” and thus wish to take you on your offer to make the modifications in this particular case.Board dimensions are 31 x 58mm. Hop I don’t bother you too much with this.
Rgds
Dick

Do you have a link to a datasheet.

Hi “Old_Grey”, unfortunately no datasheet at hand. Have e-mailed nodemcu and await reply if at all! Apart from the physical dimensions 31x58mm, the following site shows some pictures of the LoLin V3 NodeMcu Lua WIFI Development Board, https://microkloon.nl/winkel/niet-gecategoriseerd/lolin-v3-nodemcu-lua-wifi-development-board
Rgds
Dick

Yet another more informative site, pin assignments:

Like most of the Ebay like boards I expect this is as much data as we get :slight_smile: it is however probably as much as we need as well. I have an initial attempt that moves the pins from .9 inch wide to 1.1 inch wide but when I checked the gerber output the hole size is .022 not .039 as it should be so I’ll correct that and post it.
The board outline and mounting holes are a little distorted because I just scaled the base. I’d need better positioning on the holes (likely from a vernier caliper if you have access to one) to do better.

Peter

OK fixed up the hole size problem (I think you were wise to accept the offer to fix it up, the hole size fix is relatively easy for me with a text editor and knowing what I needed to do, not so easy for someone new to parts making). This is still probably somewhat wrong In the board outlines and mounting hole placement but the pads in both breadboard and pcb should now be correct and the holes in pcb are sized to accept .1 inch square posts (the original is likely for swiss type ic pins which his board may have had, or they could have been just plain wrong since he seems to have abandoned Fritzing as too frustrating :slight_smile: ). I’d need the xy coordinates of the center of the mounting holes and the distance from the edge of the board and the radius of the holes to do better, although this with the corrected pins may do what you need. You can see the pin spacing against the grids in breadboard and pcb (currently 1.1 inch) to verify that they match the board you have (a piece of .1 inch perfboard and count the holes is probably the easiest way to verify or place the real board on a real breadboard and compare how it looks in Fritzing breadboard.) If you see problems post and I’ll try and fix them. If you want to try making parts, post questions a number of us will answer (we need more people making parts :slight_smile: ).

NodeMCUv3 Lolin_1.1_inch.fzpz (17.0 KB)

Peter

Hi Peter,
Thank you so much! This is absolutely perfect. I did a paper printout to confirm pins and pin rows are matching the V3 board. I can confirm they do and the end result is in sync with the NodeMcu v3 Lolin board ready for production. Since I now have a working PCB I can continue with the projects. Meanwhile, I will follow “a new part creation HOWTO” write up to play with a copy of the board and see whether I can get the pin labels on it as a first start. Again, thank you so much. A forum like this only survives by people like you who are willing to share their expertise and act as a catalyst for others to get progressively acquainted with Fritzing parts creation.
Rgds
Dick

You are most welcome. The folks in here are who answered my questions about parts creation, so I’m paying forward on that debt :slight_smile: . For me this was fairly easy as I’m now (after around 9 months of doing it) relatively familiar with the tools. To someone new to an svg editor it isn’t anywhere near simple. I simply added .2 in to the x coordinate of the 15 pads on one side of the board (taking them from .9 in to 1.1 in) on both breadboard and pcb. Then I needed to scale up the background on breadboard (which is a little more complex in that I needed to ungroup everything first) to fit the new size then regroup it to add back in the breadboard group id. That will have moved the mounting holes in both position and size so they are likely no longer correct (assuming they were correct in the first place of course :slight_smile: ). Last but not least when looking at the gerber drill file output I discovered the holes were set to .022 when for .1 pins they need to be .038. Normally that to is an easy change, but in this case there is a translate in effect (which changes the coordinate system in odd ways) so I ended up doing a copy and paste of a pad from another part that I knew was .038 and moved it in to the copper1 group (none of which is going to be easy for someone new to an svg editor!) and then copied the radius and stroke-width parameters after the translate took effect in to all the pads with a text editor and global replace. Then I needed to move the silkscreen outline in pcb to reflect the new size of the board and it was done. For a final check of all the placement you can export the gerber files (as if you were going to have a fab house make a pcb) and then use a gerber viewer (I use gerbv from the geda project) to look at the files and/or read the drill file with a text editor as it has drill sizes and x / y coordinates for all the holes.

Peter

I’ve build new parts: https://github.com/OgreTransporter/fritzing-parts-extra

Transporter

Over all not a bad job, but a few problems ( illustrated via extra.fzz below):

Breadboard:

Capacitive moisture sensor: you may want to add a connectorxterminal definition to the connector in the breadboard svg and move it to the edge of the connector so the wires terminate on the edge of the board instead of the middle of the pin as they do now although it is OK as it is now too. Otherwise breadboard looks fine.

Schematic:

Most of the parts are either lacking a connectorxterminal definition or it is incorrect (such as being a group rather than a rectangle). That is what is causing the lines connecting at an angle to connect in the middle of the pin instead of the outside edge as they should. If you can’t figure out how to correct this, post and I’ll look at the svgs and post the solution. The soil moisture sensor has correct terminals (the lines terminate at the edge as they should) but the “A” pin should be moved so it aligns with the .1 in grid for better readablility. The DS18B20 pins need to be moved a bit so that they align with the .1 grid, the out pin has a correct terminal definition but the power pins don’t appear to. I’m not sure why there are extra rats nest lines on the nodeCPU ground that may have been a problem on my part somehow (it usually indicates corruption in the parts database file due to Fritzing bugs) and they all appear to lack terminal definitions.

PCB looks fine (I didn’t export the gerbers and check drill hole sizes but presumably they are correct).

extra.fzz (87.3 KB)

Peter

Hi Peter,

thanks a lot for your feedback. These are my first parts. I’ll try to fix the connectors as fast as possible. I didn’t check my parts in that way, but I’ll Keep that in mind for new parts.

Transporter

Good job for first parts, not many and not serious errors. I find that particular test (groups or single connectors connecting to all the pins) finds most of the common errors in parts and makes sure the connections are consistent across all three views. If you have problems feel free to ask, always happy to help people make parts (its what Fritzing needs to thrive :slight_smile: ).

Peter

Hi Peter,

I’ve fixed the schematic SVGs. I’ve also added connectorXterminal to the moisture sensor breadboard, but it’s not working(https://raw.githubusercontent.com/OgreTransporter/fritzing-parts-extra/master/DFRobot_Capacitive_Soil_Moisture_Sensor/DFRobot_Capacitive_Soil_Moisture_Sensor_breadboard.svg).

Transporter

As well as the svg you need to add the terminal definition to the fzp file as well, the three connector lines in breadboard need to change from this:

<breadboardView>
 <p svgId="connector9pin" layer="breadboard"/>

to

<breadboardView>
 <p svgId="connector9pin" layer="breadboard" terminalId="connector9terminal"/>

As well as defining the terminalid in the svg. With only the svgid definition the terminal defaults to the middle of the shape defined as the pin which isn’t what we want in this case. Here is a copy of the part with the fpz modified to add the terminal id, and the svg modified to move the terminal definition to the edge of the pin:

DFRobot Capacitive Soil Moisture Sensor V1.0_fixed.fzpz (21.9 KB)

Peter

Thanks a lot Peter! Now it’s working. I already had that code in the fzp file. I only exchange the pin code in breadboard svg with your example (https://github.com/OgreTransporter/fritzing-parts-extra/commit/1d6601821b7ee1f618527971b7b90269b0cd564a?diff=split).

Transporter

Hi Peter, with the current PCB layout, the parts are facing the backside of the NodeMCU board. I prefer the parts facing the outside, necessitating the mirror image of the PCB board. Currently, I have manually moved the wiring to the opposite row of connections in order to accomplish this, which is cumbersome. Is it possible to create a mirror image of the PCB board. In other words, flip horizontally!
Rgds
Dick