Fritzing development

Thanks. But I believe the issue is solved.

I dug a bit through: https://www.ucamco.com/files/downloads/file/81/the_gerber_file_format_specification.pdf and it looks to me as if the missing “G37*” commands make the gerber files syntactically incorrect.
I submitted a pull request on github: https://github.com/fritzing/fritzing-app/pull/3370 which seems to work for me.

2 Likes

That is wonderful news! This has been sitting unresolved for many months now! Hopefully we can convince you to stick around and at least help us newbies to get going and get development restarted.

Peter

Looks like there is a chance FZ isn’t dead. Good work AHorneffer.

@AHorneffer Great work figuring this out. I have compiled the Git head with your changes and it does indeed fix the issue with the Gerber output. I do get an error when I open the gerber files in Gerbv where it states that the hole diameter is not set in the drill file but all the holes appear to be the correct size so it does not look to be a major concern. EDIT: it turns out Gerbv is actually seeing something in the mask layers it thinks should be holes and complaining that the diameter is not set. It has nothing to do with the drill file.

I will comment on the Github issue that this does seem to fix current Gerber output issue. We can only hope there is still someone with commit access and a desire to continue working on Fritzing listening.

The Gerber output is instantaneous now and the ground fill generation is really clean.

If anyone would like to try it our I have built an actual release version for 64bit Linux. Here is a link to a copy on a free file transfer site. https://we.tl/bEcjUwZLZr I do not know how long it will be available. If it does not work just PM me your Email address and I will send it over. NOTE: It is almost 50Mb.

Good news everyone!

Andre the creator of Fritzing merged @AHorneffer’s patch into the main repo. Now if you compile the main repo you should get a working Fritzing like the one I posted in my last post. What we need now is to get some people testing it to find any bugs that make it un-releasable. Once we get it at least as stable as 0.9.3b we may be able to get them to do another release if we can convince them it is stable(ish).

The new gerber export fixes the corrupted vias in Corrupted vias?

Great. How did you manage to do that? Today, I tried to build it from source code but got a lot of errors. The forum for some reason does not allow me to post those messages. I need some help getting started

I have Windows 10,
Qt Creator 4.4.1
Based on Qt 5.9.2 (MSVC 2015, 32 bit)
Built on Oct 4 2017 04:12:53
From revision 6afdb8bdf9
Copyright 2008-2017 The Qt Company Ltd. All rights reserved.
The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

ERROR message after trying to build the source code with Qt 5

Running Windows Runtime device detection.
No winrtrunner.exe found.
Project ERROR: Cannot run compiler ‘cl’. Maybe you forgot to setup the environment?
Error while parsing file I:\000\fritzing-app-master\fritzing-app-master\phoenix.pro. Giving up.
Project MESSAGE: target arch: x86_64
Project MESSAGE: allways true on win32. leads to build problems
Project MESSAGE: Fritzing requires libgit2
Project MESSAGE: Build it from the repo at https://github.com/libgit2
Project MESSAGE: See https://github.com/fritzing/fritzing-app/wiki for details.
Project ERROR: libgit2 include path not found in I:/000/fritzing-app-master/fritzing-app-master/…/libgit2/include
Project MESSAGE: target arch: msvc\14.11.25503\bin\hostx64\x64
Project MESSAGE: allways true on win32. leads to build problems
Project MESSAGE: Fritzing requires libgit2
Project MESSAGE: Build it from the repo at https://github.com/libgit2
Project MESSAGE: See https://github.com/fritzing/fritzing-app/wiki for details.
Project ERROR: libgit2 include path not found in I:/000/fritzing-app-master/fritzing-app-master/…/libgit2/include
Project MESSAGE: target arch: x86
Project MESSAGE: allways true on win32. leads to build problems
Project MESSAGE: Fritzing requires libgit2
Project MESSAGE: Build it from the repo at https://github.com/libgit2
Project MESSAGE: See https://github.com/fritzing/fritzing-app/wiki for details.
Project ERROR: libgit2 include path not found in I:/000/fritzing-app-master/fritzing-app-master/…/libgit2/include
Project MESSAGE: target arch: x86
Project MESSAGE: allways true on win32. leads to build problems
Project MESSAGE: Fritzing requires libgit2
Project MESSAGE: Build it from the repo at https://github.com/libgit2
Project MESSAGE: See https://github.com/fritzing/fritzing-app/wiki for details.
Project ERROR: libgit2 include path not found in I:/000/fritzing-app-master/fritzing-app-master/…/libgit2/include

Most of what you need is in the error message you posted. It tells you what you need and where it needs to be placed. You need to download libgit2 and build it in the location specified. Also as per the build instructions it has to be version 0.23.x of libgit2

You have to follow the instructions on the wiki and install all the dependencies as per their respective instructions. It can take a long time to get the build environment set up correctly. Be sure to read https://github.com/fritzing/fritzing-app/wiki/1.-Building-Fritzing and https://github.com/fritzing/fritzing-app/wiki/1.2-Windows-notes

Beyond that I can not help much with Windows. I have been using Ubuntu for many many many years now.

1 Like

Right off the top you have the wrong version of qt. The current source is built against 5.6 (not 5.9.2 which is the latest version, which you appear to have, isn’t likely to work). Note the comment on the dev wiki that they recommend using qt creator. You also need to download and install boost and libgit2 (and finding a libgit2 version that works correctly is somewhat exciting). That said (and although I run Fritzing on Win7 and may try and create a Windows build of the current head to help out) I have also only built it on Linux so far.

Peter

1 Like

Thanks for your responses. I followed the instruction and now the list of error is shortened. However there are still some issues.

  1. What is winrtrunner.exe? where to get it from? and where to put it in?
  2. How to turnwin32 on?
  3. I put the libgit2 and put it in the folder instructed to. But I still get a message about that? Not sure how to build it or include a path to it.

Thanks

Running Windows Runtime device detection.
No winrtrunner.exe found.
Project MESSAGE: target arch: msvc\14.11.25503\bin\hostx64\x64
Project MESSAGE: allways true on win32. leads to build problems
Project MESSAGE: Fritzing requires libgit2
Project MESSAGE: Build it from the repo at https://github.com/libgit2
Project MESSAGE: See https://github.com/fritzing/fritzing-app/wiki for details.
Project ERROR: libgit2 include path not found in I:/000/fritzing-app-master/fritzing-app-master/…/libgit2/include

You need to follow the build instructions for libgit2 https://github.com/libgit2/libgit2 and https://libgit2.github.com/docs/guides/build-and-link/

I do not know anything about winrtrunner or turnwin32 as they are windows specific. You will have to do some googling to figure those out.

1 Like

Thanks. I followed the instruction and put the downloaded source in the indicated folder. I think they asked about building it. I think the building part of it (below) is trouble. I don’t really like cmake.

Download version 0.23.x of libgit2 and unzip it into the same folder where you have fritzing-app (so make it a sibling folder). Then build it so that you end up with a folder libgit2/build.

Have you installed the QT Visual Studio addin as specified in the build instructions?

That may or may not have the missing programs. As to libgit2 you need to download an appropriately old version and then follow its build instructions to build it in a directory at the same level as the fritzing source (at least on linux, I’m assuming the same on Windows). I think you may want version 23.3 as 23.4 (which I tried) causes problems possibly due to the api change at 23.4 (which is a back port of a security bug fix). It isn’t clear what libgit2 version Fritzing 0.9.3.b used. You need to do the same with the boost library. You may want to review this forum posting (although the build is on linux).

which is the latest thread from a few months ago on building the current head. On linux I can get this far enough to use gdb to find bugs, but have been tied up on a parts checking script for the last year and not gotten back to trying development yet.

Peter

I know there are a lot of people that would like to see Fritzing continue so I am calling on all of you to show your support by tackling some of the issue on the Fritzing App and Parts Repos. If we can show the developers we are here to help maybe they will get more motivated.

The Fritzing App repo has a huge list of bugs but most of them are really old and a lot of them have been fixed already. If anyone could go through the list and see if there are any they have come across while using Fritzing and then see if you can solve them that would help a lot. You can also check if there are any outstanding pull requests that may already solve the problem and test them. If they solve it you can give feedback and hopefully get it merged.

The Fritzing Parts repo has a very small list of broken parts in its issues that should be easy to fix. You could also create issue for any parts you know are broken but do not have an open issue yet. And lastly you cold submit parts that have been shared here already but would be better distributed with the parts updates. (it would be a good idea to write a small script to pull apart a fzpz file and sort and name it the way the repo wants it to speed up submissions).

I have been doing my best to get things moving again and I think it is working. Lets keep up the momentum. I have opened a few issues and made 2 pull requests recently.

We will soon have a large list of broken parts in core for instance some 41 parts that have different case on the file name in the fzp and the svg, which works on Windows (which is filename case insensitive) but breaks on linux and I expect MacOS which are case sensitive. Easy to fix, just takes work. I’m figuring out how to use github (slowly :slight_smile: ) and will then post the python scripts that check parts and complains in painful detail that generates that list. I may just create an initial commit tomorrow and figure out how to make changes when the bug reports start rolling in :slight_smile: .

Peter

1 Like

Honestly check out github desktop. It is a Windows and Mac GUI that makes the basic tasks really easy and it shows the diffs and conflicts before committing them. I have it running on Ubuntu as well but it is currently only at release candidate stage Releases · shiftkey/desktop · GitHub

Yah I saw and even downloaded that but it was too much “take it away and do it in secret” for me. I’m currently poking at Git bash on a local repository because there is a good tutorial that uses it and I’m usually more comfortable with the command line than gui … I just managed to break the script in a new way while making a part, but I think I’m going to post the code as is to get it out there and tested.

Peter

Our persistence and effort is paying off. We are getting more activity in the Fritzing App repo. We have had a few pull requests merged including having the new Gerber Export reverted. These merges were done by Andre (creator of Fritzing) so I have more hope than ever that we will see another release.

Also they have forked @vanepp parts checking script which should really help clean up the core parts repo and prevent further broken files from entering the core parts. I have not had a chance to test it out but I did get through about a quarter of the Readme before I realized it was so long.

You only want the first bit of the readme, the end part is a listing of possible error messages and how to fix them, which is what is passing for documentation so far. Mostly it needs people to use it to flush out more bugs.

Edit: One of the most useful things that could be done for development I think is to get one or more of the folks with experience with the code to comment in the developer forum here. I know where and what at least one major bug is and what needs to happen to fix it, but I don’t know how the backout code works and am down to tracing with gdb to try and find it. A little advise about where to look in the code would help tremendously. Having released the parts script (at least until someone breaks it and/or I give in to creeping featuritis and do some of the things in the could do list, I’m focusing on trying to fix the bugs that most annoy me (fritzing hanging on load of an invalid part, and failing to delete the files when a new part is made with parts editor are the first two). An update of the libgit2 library so head builds correctly would also be good (and at a quick look probably beyond my current skill level).

Peter

There is a pull request for a fix to this. But I have a feeling that I have read in the wiki or somewhere along my way through Fritzing code that they are using the version they are to exploit a bug in that particular release. Maybe it had to do with a different library or maybe another program (all these things blend together).

Good thought. There are three human Admins: @Andre, @Landracer and @fa1 that could possibly give us some more information on how to proceed. http://forum.fritzing.org/groups/moderators

The Fritzing Github account has four people with commit access of which Andre is the only one from the Admins list on the forum. Members · People · fritzing · GitHub

Also since I have never seen it mentioned on here there is a debug mode you can run Fritizng in from the Terminal. Just start Fritzing with the -d flag from the command line and it outputs a lot of information to the command line as you work. Be sure to start it using the full path to your Fritzing executable otherwise it will scan from the root recursively and complain about backups or extra copies of any parts it finds as not having unique ids. And if you are like me and have multiple compiled versions of Fritzing it will see all the core parts as duplicates of each other.