Cannot find part in old project


#1

When loading a old fritzing file i get in dutch “cannot find next 1 part” next line, ‘PCF8574’ in C:/Program Files (x86)/fritzing/fritizning-parts/core/PCF8574.fzp

This happen on several computers, even when fritzing is installen on C:\program files and also C:\Program Files (x86) and the file exist on both computers

What I expected should have happened instead:

…Not this error

My version of Fritzing and my operating system:

version 0.98b /win10 x64


#2

If you can upload the .fzz file (upload is 7th icon from the left in the reply menu) I’ll have a look. The most likely cause is a corrupted part. It may be not the .fzp file but one of the svg files that is missing, as I recall the error message calls all of them the fzp file. Currently the PCF8574 is in core parts, if that wasn’t true when the .fzz was created there will be a version in the fzz file which may be what is corrupted. Also I assume you mean version 0.9.3b above (AFAIK 0.98b doesn’t exist). Assuming this is causing Fritzing to hang, you may want to try the 0.9.4 prerelease version on github, as the bug that causes the hang is fixed in that (along with clearing the files from part creation by the parts editor.)

Peter


#3

PCF8574.fzp (9.3 KB)


#4

usb2lcd1602-3.fzz (21.3 KB)


#5

i already searched the partagain and with lot of effort made the connections again …

But i still wonder why this appears …


#6

The PCF8574 part is only the fzp file (one of the 5 files that makes up an fzpz file) and the usb2lcd1602-3.fzz file doesn’t have a PCF8574 in it. If you have the original .fzz file that isn’t working I can probably tell you why though if usb2lcd1602-3.fzz is the original file the lack of the PCF8574 would be the problem.

Peter


#7

lcd1602_i2c.fzz (20.8 KB)

sorry, this is the one


#8

Interesting one! Somehow either your fzz file got corrupted or (less likely I think) core parts did. The problem is the fzz file has the wrong moduleId for the PCF8574 and thus can’t load it. I think it is unlikely (although I haven’t checked the git logs for the parts repo to verify that) that core parts changed, but correcting the moduleId makes it work correctly.

In Fritzing load lcd1602_i2c.fzz

error message:

Unable to find following part:

'PCF8574 at C:/Program FIles (x86)/fritzing/fritzing-parts/core/PCF8574.fzp

In Fritzing Help->Enable debugging log

debug log indicates the problem is

module id PCF8574 not found in database

but the PCF8574 part in core loads correctly, so the problem isn’t in the part which leaves the fzz file.

so unzip lcd1602_i2c.fzz and edit

lcd1602_i2c.fz

to find out what moduleId it is using for the PCF8574, as indicted above it is using PCF8574, but the actual moduleId in the core part is PCF8574A_f92705dc5bbcb278fb8f55ff08c7872a_1 so it looks like that one value in the fz file got truncated somehow (don’t know how). Replacing the original moduleId with the correct one and rezipping the fzz file fixes things:

lcd1602_i2c-fixed.fzz (22.3 KB)

Peter


#9

The original PCF8574 part indeed had the moduleID “PCF8574”. It was changed to “PCF8574A_f92705dc5bbcb278fb8f55ff08c7872a_1”, but I don’t know why the change was done, and why it was done without keeping the old version in the obsolete parts folder. I created PR220 as an attempt for fixing this, but it needs verification.


#10

Thanks for checking! Verify should be fairly easy, the original lcd1602_i2c.fzz file above should load and then ask to update the part and the corrected one above should just load normally when the changes are done. Edit: When the changes are done in develop I’ll down load it and test it.

Peter


#11

I see.

so i guess thiss is a one-accasion thing.


#12

Hopefully yes, there was an error during a part update where the part did not get obsoleted correctly which caused this problem. We need to figure out (and document!) how the obsoleting mechanism works as there appears to be no one left who knows how it works exactly though.

Peter


#13

outch …

/* …yes documenting … */


#14

Yep, documentation is one of our lacks. At the moment just getting development restarted is being a challenge before bit rot stops Fritzing from working. Then maybe we can get to documenting if we can find people to help .

Peter