The Software drives me crazy

WayOutWest
Posts: 198
Joined: Thu Jul 16, 2015 12:18 am
Location: Washington State, USA

Re: The Software drives me crazy

Post by WayOutWest »

.
- Adam
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: The Software drives me crazy

Post by mrandt »

Wow, what a rant. But I must admit that I totally understand the frustration.

Before I chime in, let me reiterate how much I appreciate all the pioneer work which Juha put into both hard- and software. He achieved what many others attempted and created an affordable DIY PnP machine kit that people can buy, assemble and use.

He was also generous enough to publish all his work as open-source so others could enhance, extend and reuse his intellectual property.

I believe that many DIY PnP projects have been inspired and influenced by LitePlacer and we should give Juha credit for advancing the community.

I think it is a little unfair to compare LitePlacer to "professional" PnP or CNC machines which sell at more than 20-30k€. Buy a Chinese PnP or laser cutter for around 5-10k€ and have fun with their closed-source machine and software... Good luck.

On the other hand I understand people's expectations and think that both Juha and the community have fallen short of creating a nice user experience.

IMHO Juha's hardware is a solid base. Anything can be improved, and there are many useful mods described in this forum already. My top recommendations are better cameras, nozzle / head, vacuum + sensor and some sort of feeders for cut strip or reels.

The build instructions are almost perfect; Juha took great care to make them user friendly and easy to understand.

The software however is not user friendly at all. To use it, you must go through a steep learning curve and understand what happens behind the scenes. You need to take care to execute the calibration in the right order and there are plenty of things that a user can do or click to break things. The routines do not recover well from technical errors and UI does not prevent user errors at all. From what I understand (I am not a C# expert), parts of the SW architecture are questionable as well.

Even though some people argue otherwise - I believe this has nothing to do with the choice of C#, Java, C++ or whatever programming language you prefer. You can write good or bad software in any language, can't you?

To be honest, if Juha was a software shop and I had paid for this piece of software, I would likely ask my money back. But guess what? I did not pay anything. I also don't think that Juha makes a huge profit from selling the kits, so please give him a break. The sources are public and the errors can be fixed, that is much more than many corporate solutions have to offer. Also, Juha is very approachable and supportive. He chases bugs and tries to eliminate them - if you report them, of course!

What drives ME crazy is not the less than satisfactory state of the software but the lack of perspective:

I don't believe that Juha (or any single person working on this in part-time) can overcome all the challenges and build the perfect PnP UI. Fortunately, there are many talented individuals willing to help.

But instead of working towards the common goal of enhancing and maturing the software, many people have taken what was there, wandered of and started working on their own private versions of the software.

Eventually, one of the forks might become better / more comprehensive / eaiser to use - but what's the point if no one takes ownership and supports that fork long term?

From my observations, there is a lack of leadership, architectural guidance and direction in this group. The current diversity of software forks is a clear symptom for that.

@Juha, if you want help from the community, I suggest you explicitly ask and help to direct the talent and creativity towards specific feature requests or bugs!

@Everyone If Juha is not interested, maybe someone wants to step up and become "chief architect" and orchestrate the future development of Ver2?

Each and every one of us secretly working on our own nifty hacks does not get us anywhere as a group I am afraid :-(

I have been following OpenPNP quite a bit recently and think Jason and his gang could be our role models here: He has clear priorities and uses GitHub's issue list to track (and manage!!!) bugs and feature requests. He assigns these to other contributors to work on, has clear policies on coding guidelines and architecture and reviews. Contributors create nice enhancements or fix bugs and commit these is manageable chunks with meaningful comments. Jason again moderates the pull requests and makes sure the base stays consistent. It is amazing at what pace OpenPNP has grown and introduced new features while still keeping a rather consistent UX using this approach.

To be honest, one of these days I might switch to OpenPNP as it supports most of my LitePlacer hardware without issues already.

But at the same time I think it would be a shame if all the effort and creativity put into LitePlacer software went "down the drain"...
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: The Software drives me crazy

Post by mawa »

@wayoutwest:
Thanks for the tip. I really wondered why the "jam" occured. I lubricted the whole tube bearing. I'll try it immediately.
best regards
Manfred
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: The Software drives me crazy

Post by Pixopax »

You are right with the hardware, that was excellent work.
The software truely has potential, and yes, Juha did a good job as he pioneered a lot of new things.

I sit on the software since a few days now and found a few bugs which made my setup fail, but I mainly had a look at the Rmod4-Version, as this places my parts better.

One thing I cannot get to is currently the camera switching in the original version from Juha, it just does not work relaible. The downcam is disconnected often, which ruins everything. My upcam works perfect, as it is another type as the provided, i blame the camera.

The rmod4-version has a big error in the tape calibration, if I use NegY-Direction it calculates the tapeangle wrong, which messes up part detection. It took a few hours for me to find that error, so if everyone uses that version, use first hole / last hole for calibration, that works perfect. "Calibrate Part vie Holes" does not work, the tape angle seems to come out random. I could not find the reason why the angle is wrong. Itrs calculates in tapeclass.cs, there is a

Code: Select all

 public bool CalibrateTape(TapeObj x) 
The line

Code: Select all

 Tuple<double, double> result = SimpleRegression.Fit(Xs, Ys);
calculates the slope, which comes out wrong. The input data is correct, output is garbage.

Also, in Rmod4 it is not possible to draw things into the camera window, such as the crosses for needle calibration or the arrows to show part direction. This results in a crash. I commented out these things to prevent the crash, as I do not really need it.

So now for the first time I could place a few parts without a crash, yipee.

Git does still not work for me, messes everything up. So I stay away from it. I am sure it us the user in front of the keyboard who makes the error here, but I just do not understand how git works, inspite reading the manuals 3 times. It does not do what I expect, so before I destroy anything I let it be.
As soon as I have a descent working software-version, I would post the result, and someone who knows how to do it could merge it to Github.


To TinyG, I know it is ok to have a reset when a limit switch is triggered. But this reset should be managable by software, the software should be able to get tinyG at work again, home anew and start again. But we need to press the reset switch on tinyG and start all over. That is, what I mean, not the normal way for CNC-machines. Reset yes, but be able to restart then is the way. I know that is in the scope of tinyG, we cannot do anything on that.
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: The Software drives me crazy

Post by Pixopax »

Another nice thing in rmod4:

If you create a new tape, the placeZ of that tape is set to -1.
Upon first placement, the software measures how far down the pcb is, depending on the part height, that is principally a good idea. But if you experiment with empty tapes, it goes down to the pcb.

When you then start a placement, it gets the part and wants to place it, but...the move to the pcb is aborted because it checks if the PlaceZ of the Part is lower that the PCB height. This was one of the reasons I crashed into erros now and then, not seeing why. I changes my code so it has 2mm tolerance on this.
Also added a messagebox saying what happened.

One more gone...

The code is in CNC.cs

public bool CNC_XYZA(double? X, double? Y, double? A = null, double? Z = null) {
Global.Instance.DisplayText(string.Format("CNC_XYZA: {0:F2},{1:F2},{2:F2},{3:F2}",X,Y,Z,A),Color.DarkMagenta);

if (AbortPlacement) {
return false;
}

if ((X != null || Y != null) && !CNC_MoveIsSafe_m(new PartLocation(X, Y))) return false;
if ((Z != null) && (Z > Properties.Settings.Default.ZDistanceToTable+2))
{
ShowSimpleMessageBox("Error: Type PlaceZ is lower that PCB Surface, recalibrate PCB Height");
return false;
}
dc37
Posts: 25
Joined: Thu Jan 14, 2016 6:37 pm

Re: The Software drives me crazy

Post by dc37 »

Pixopax wrote: Git does still not work for me, messes everything up. So I stay away from it. I am sure it us the user in front of the keyboard who makes the error here, but I just do not understand how git works, inspite reading the manuals 3 times. It does not do what I expect, so before I destroy anything I let it be.
As soon as I have a descent working software-version, I would post the result, and someone who knows how to do it could merge it to Github.

Wait, which version control system do you use for your software development, then? SVN? Mercurial?
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: The Software drives me crazy

Post by Pixopax »

I forked it from github, branched it and then changed the code. Now Git shows me changes I did not do, something messed up, as I said, Git is a p.i.t.a. made by linux fricklers for linux fricklers.

I simply do not know how to get it up again, when I press the black "Publish" button nothing happens.

Also, I am afraid of killing something, as I cannot see what git does, I am also confused why the publish button is almost hidden, it seems to me as one should not really push that button, is that correct?
If its the main way how to get things up, why is the button so small, black, and in the top right corner? Feature? Design?
However, the button does not work. Big Git.

Also, who manages this "knaster" repository? Is there someone at all? In Git, one can hardly find it, under "liteplacer" it is not listed, "knaster" ist also not found. I got to it via the link here in the forum.
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: The Software drives me crazy

Post by mrandt »

Pixopax wrote:I forked it from github, branched it and then changed the code.
To this point, it seems about right.

Have you read this:
http://liteplacer.com/phpBB/viewtopic.php?f=10&t=268
Pixopax wrote:Now Git shows me changes I did not do


Do you use Windows UI? I suppose you selected the wrong branch or wrong "compare to branch".
Pixopax wrote:As I said, Git is a p.i.t.a. made by linux fricklers for linux fricklers.
Sorry Louis, but I have to object. I have used (sometimes had to use) many different code versioning systems in my professional career.

Git is certainly one of the most powerful and thought-through systems for distributed development. I agree that it has some complexity to it; but any person capable of programming software should be able to get it if they try...

Also, it is not that difficult compared to some "professional" code versioning systems. Ever fought with IBM CMVC or Rational Clear Case :-P

Sure, SVN / CVS are simpler - as simple as a file system. But they don't work if you have a larger, distributed, heterogeneous team which creates many forks, branches etc. does stupid things or wanders off in different directions.

There is a reason why +10 million (!) projects rely on GitHub; also major IT corporations and many small and medium businesses use git internally.
Pixopax wrote:Also, I am afraid of killing something, as I cannot see what git does, I am also confused why the publish button is almost hidden, it seems to me as one should not really push that button, is that correct?
You have to understand that there are several repositories: You have a local repository, and any changes you do are committed to that local repository. New files have to be added to git control.

Your local repo is connected to an upstream repository, which is considered a remote repository. In your case that will be your fork on GitHub. When you publish to the remote, your local changes get sent to the GitHub server so others can see them.

Lastly, your repo on GitHub is connected to the repository you forked from in the first place. To get the changes over there, you ask the repo owner to pull and merge them from your repo to theirs. This is why it is called a pull request.

By the way, I suggest the following tutorial as it has nice diagrams which illustrate the concepts:
https://www.atlassian.com/git/tutorials/
Pixopax wrote:Also, who manages this "knaster" repository? Is there someone at all? In Git, one can hardly find it, under "liteplacer" it is not listed, "knaster" ist also not found. I got to it via the link here in the forum.
That fork is Karl's, who goes by the username knaster on this forum. And, btw, forks on GitHub are easy to find:

Go to main repositories' website and click the forks on the top right:
github_forks.png
github_forks.png (40.51 KiB) Viewed 6002 times
Or open the graphs and navigate to network:
github_network.png
github_network.png (44.1 KiB) Viewed 6002 times
Both show you all existing forks and how they relate to each other, who is ahead, what was merged where and so on.

I don't see your fork there. From which repo did you fork?
Pixopax wrote:So I stay away from it. I am sure it us the user in front of the keyboard who makes the error here, but I just do not understand how git works, inspite reading the manuals 3 times. It does not do what I expect, so before I destroy anything I let it be.
Please DON'T DO THIS. If you do a lot of changes outside version control and then commit a large bunch of files later, we loose history and transparency. My suggestion is to commit small and often. A self-contained change, as the ones you described above, deserves a quick commit with an explanation what was fixed and why. Together with the really good diff view on GitHub this allows anybody to follow along and merge that particular change into their fork.

If you work elsewhere outside git, never commit (and thus do not write history) but at some point hand someone a bunch of files with hundreds changes, it becomes a nightmare.

Any well managed open-source project will reject such contributions because they are impossible to understand, review and merge.

So long story short, I'd be willing to help. I appreciate your help and would love to see your changes improve the overall software rather than just your own. I might not be a good C# coder, but I can handle git ;-)

If you want, we could have a call and screen sharing at some convenient time next week and I'll help to get you started. Let me know.
Pixopax
Posts: 122
Joined: Tue Feb 02, 2016 4:16 pm

Re: The Software drives me crazy

Post by Pixopax »

I went to
https://github.com/Knaster/LitePlacer-ver2
and forked it.

It seems that my forking was not recognized by github. I used the windows UI.
You are right, I am not in the network. So now I have a local copy which does not belong to any version. Great.
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: The Software drives me crazy

Post by mrandt »

Don't panic; anything in git can be fixed...

What's your username on GitHub?

I can only repeat my offer to walk you through this on phone and using screen sharing, for example TeamViewer or Skype. Let me know.
Post Reply