I am using Application: KiCad Version: (5.1.4) -1 on a Win7 Pro, 64-bit OS platform.
I have successfully used ‘Freerouting’ in the past, without any major problems. For example, I was able to import DSN files, auto-route the traces (while watching that routing activity on the screen), export as an SES file and then use that within KiCad.
The last time I used Freerouting was about 5 months ago.
Meanwhile, Java has been updated at least once on my platform.
I also recently updated to the latest version of “Layout Editor” on my platform (see https://www.layouteditor.org/)
Today, when I tried to run Freerouting, I got an error message:
“Exception Occurred” “java.lang.ClassCastException: class java.awt.geom.Rectangle20$Double cannot be cast to class java.awt.Rectangle ijava.awt.geom.Rectangle20$Double and java.awt.Rectangle are in module java.desktop of loader ‘bootstrap’)”
That error message won’t even close, if I click on the “OK” button!
I had some luck going directly to the Layout Editor folder (within C:\Users\Programs X86) and running “freerouting.bin” directly. However…
1.There is no graphical representation of the process–cannot see the board, the footprints, or any of the traces;
2. The process doesn’t respond to the STOP command (use the left-arrow button);
3. There must be SOMETHING going on in the background, because the total length of the traces, number of vias, number of passes slowly updates in the “ticker tape” along the bottom of the window;
4. The process seems to be very slow, and the drop-down controls are unresponsive.
Anybody have an idea of what is going on here? Is there a compatibility issue between the most recent Java update, the Layout Editor and Freerouting and perhaps the version of KiCad that I am running? BTW—I have shut down all other processes while running Freerouting, and that doesn’t seem to help!
Just to reiterate the point davidsrsb made, that freeRouting is not connected with KiCad. It’s an external program. The interface with KiCad is simple, export DSN and import SES. This has not changed across versions of KiCad. Thus any issues you experience with freeRouting should be taken up at freeRouting’s Github site, not with KiCad.
Thanks to all who made replies to my quest.
I discovered that the GitHub site of Freerouting has both a binary file, and a *.msi installer. I tried plopping the latest binary into the same location as the original, but it would still not run. However…the *.msi installer resolved all the problems and Freerouting works seamlessly once again.
Yes, I do realize that Freerouting has “nothing to do with KiCad”, in the sense of development responsibilities and so forth. But this is a forum for KiCad users and many of them seem to employ Freerouting as part of their ‘work-flow’. So it still seems very reasonable to throw out the question on forum.kicad.info, to see if anybody else has the problem and has found a way to resolve it.
With regards to the Linux distro question (which certainly prompted a wide discussion!), I have since installed KiCad on a linux box running Mint. That platform does work but much of my day-to-day work still runs on Win7 Pro because software such as Solidworks doesn’t have support for the Linux O/S. So, if I am creating solid models of boards and of components in Solidworks it is (for the time being) the work-flow is smoother on the Win7 platform. That being said, my linux box also runs Win10, but there are only so many hours in a day to fight with the alligators after draining the swamp (so to speak).
Thanks again to all.
vW
Yes, that’s probably true about the ‘suitable’ Java version…there were error messages about Java SE when trying to run Freerouter.
BTW, it seems that the latest version of Freerouter has a better GUI than before. I just wish that you could set the default, go-to folder for the files, rather than having to drill-down to find the correct folders each and every time…
v.W
I fire up freeRouter from the comand line and use this bash script:
#!/bin/sh
dsn="$1"
if [ -z "$dsn" ]
then
pcb=$(ls *.kicad_pcb)
dsn="${pcb/kicad_pcb/dsn}"
if [ "$dsn" -a ! -r "$dsn" ]
then
echo "$dsn" not found
exit 1
fi
elif [ ! -r "$dsn" ]
then
echo "$dsn" not found
exit 1
fi
ses="${dsn/dsn/ses}"
freerouting_jar=/path/to/freerouting-1.6.2-linux-x64/lib/app/freerouting-executable.jar
java -jar $freerouting_jar -mt 1 "${dsn:+-de}" "$dsn" -do "$ses"
rm -f *_op[0-9]*.bin
It runs without any GUI interaction.
There’s a Python plugin somewhere that fires off the round trip with a button click.