Enhance UX of LitePlacer

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

Re: Enhance UX of LitePlacer

Post by mrandt »

Hi Manfred,

thanks for the compliments, using a "Tree Grid" seemed the most logical to me. Is "Master Details Grid" what this is called in the Microsoft world? :-D
mawa wrote:Maybe some drag & drop can be added alternatively to be able to move parts and groups over a larger distance.
Great idea, I am just not sure how much effort it takes to implement - drag & drop can be nasty from my experience...
mawa wrote:My question: Is the Placement Operations box necessary at all?
I also thought about dumping the Placement operations group, but I think the info is very useful. Maybe we could put all the necessary data into the status window? If we construct the messages in a smart way, we would have all necessary info readily available - tried to put that in the new mockup below.

I included a step number as the first column - I thought that would be helpful for referencing status or error messages and could also help with drag / drop and reordering.
mawa wrote:The pause Job button can IMO also be omitted. When you click the "Run Job" it changes to "Pause Job". Next Click it changes to "Resume Job".
Makes sense. Due to the static nature of a PNG file I put the "Pause" button underneath in my drawing but the behaviour should probably be implemented as you suggested.
mawa wrote:Maybe we should think of a kind of CD/DVD player button arrangement [...]
Nice idea, but I only agree to some extent:

Run job (Play), Pause Job (Pause) and Abort Job (Stop) all make sense and will be very intuitive.

Also a "restart" button (rewind) would be helpful to start a job over with new PCB.

Redo unsuccesful step (Reverse) however does not match the way I envision my LitePlacer to work. I want my machine to run unattended - after all it shall automate my manual work and not bother me all the time ;-)

So if a step fails, I do not want to halt the job. Instead, LitePlacer should just continue with the next parts. Once the job is completed, I can see which components failed based on status and adress the errors one by one.

Just think of a panelized PCB with hundreds of components... If only 1% failed one would have to babysit the machine all the time.

I was wondering if a "run selected steps" made sense - maybe during initial setup and testing a funtion like that would be helpful?

Fullscreen: http://liteplacer.com/phpBB/download/fi ... view&id=81
Mockup of suggested "Run Job" tab for LitePlacer - V2
Mockup of suggested "Run Job" tab for LitePlacer - V2
LitePlacer_RunJob_Mockup_v2.png (75.24 KiB) Viewed 7203 times
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: Enhance UX of LitePlacer

Post by mrandt »

By the way: In my mind, the stop button at the bottom of the screen (always visible, regardless of selected tab) would not only abort a running job but also stop any other operation - like a software "emergency stop". So I think there is a point in keeping that separate.

Whether "Home" button should also stay there is up for discussion. If we had a position confidence feature as discussed here https://github.com/jkuusama/LitePlacer-ver2/issues/8 we might move that button to "calibration" tab as homing could be initiated automatically when needed.

On the other hand, we could also use a colour and / or icon indicator on that button to show if machine is homed and software confident about it's position (like button green: did home and think position is ok, button red: machine will not move unless you home it).

What I would absolutely like to see there is a scrolling status window / console with enough space and readable font size. I love the color coding Reza's done to the console in tab "Hardware Setup" and also the messages his functions are posting there. I think something like that would be very beneficial to the user - probably with an adjustable level of details somewhere in application settings.
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: Enhance UX of LitePlacer

Post by mawa »

Is "Master Details Grid" what this is called in the Microsoft world? :-D
Nope... :ugeek:
a tree view / grid is an INDENTED list commonly known from the left hand directory tree from windows explorer or the solution explorer in VS and can contain and icon to the left with varying icon images showing state (open / closed folder for example).

A Master-Detail Grid is a combination of two different data sets where the detail records contain a reference to the master record and have a set of fields that are different from the masters record fields.

So as a matter of fact your grid is not really a master-detail but a grouped grid, where rows with common values in one or more columns (here the column values package, value, Action & part) are grouped under a group row which receives an expand (+)/collapse(-) button and shares the column scheme.

It should be quit easy to build a list similar to your design with the datagridview control.
best regards
Manfred
thereza
Posts: 138
Joined: Fri Feb 13, 2015 11:49 pm

Re: Enhance UX of LitePlacer

Post by thereza »

before you guys get too ahead of yourself, find out if you can construct your trees with object databinding in c# - else it might require yet another massive re-architecture.
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: Enhance UX of LitePlacer

Post by mrandt »

thereza wrote:before you guys get too ahead of yourself, find out if you can construct your trees with object databinding in c# - else it might require yet another massive re-architecture.
Quite frankly, great usability of any product can only be achieved if someone thinks ahead and is not constrained too much by the status quo and implementation details.

Sure, we will have to look at technical aspects and limitations - but I am convinced that none of the suggestions so far are impossible to implement, not even with C# :roll:

Reza, you have studied, rewritten and / or enhanced most of the codebase. Naturally you know exactly where to click, which side effects a function has, in what order certain commands need to be run and why you or Juha implemented it that way.

As I expressed earlier, I think you improved the functionality of LitePlacer by orders of magnitude. I could accept if your commitment stopped once your system works good enough for your own purposes - and you would still have contributed a lot to this community.

Juha however should have a vested interest in not only providing a wide range of functionality but also making it easily accessible to new customers - and this is where this discussion comes in.

I want to help improve the overall user experience and have invested siginifcant amounts of time and work already. I would like this to be a community effort though, because honestly speaking I doubt that any single person could do it all on their own.

Let me stress again, I am not trying to dictate what anyone should work on - although I think it would be great if you helped ;-)

So let's get back to discussing the ideas I have tossed around - everyone is welcome to comment and / or contribute.
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: Enhance UX of LitePlacer

Post by mawa »

I also must thank Reza for his contributions. Many great features and extensions.

We (Malte, Reza, Juha and myself) are in the fortunate position of being able to modify the programs source according to our own goals.

But there are many electronic makers that just want to assemble their prototypes or small volume series of their PCBs.

IMHO There are too many buttons and options in Juhas and in Rezas version that are certainly useful but must they be visible all the time and is their location in the UI intuitive enough?

I believe Malte's suggestion is a good direction. KIS keep it simple.
before you guys get too ahead of yourself, find out if you can construct your trees with object databinding in c# - else it might require yet another massive re-architecture.
That is no big deal.

I am already rewriting Rezas version into a more structured data scheme inspired by Volker Besmens PP4 solution.

He starts with a generic footprint library e.g. 0805 which is mapped to the CAD components R0805 and C0805.
When the centroid file is imported this mapping is used to get the physical part data and connects each part with a parts inventory which in parts resembles Juhas tape data.
The inventory also contains feeder, tube and tray data. This also assigns the appropriate video process, the nozzle size and the placement speed and ends up in a list similar to Juhas CAD Data list.
As it seems only exceptions must be handled manually. So the default methods and MethodParameters are automatically set.

I am following that approach but will use Maltes grouped list.
First of all I got rid of the unnecessary instantiation forwarding of those classes that only have one instance e.g. CNC, Needle, Global. The magic word is "static". So instead of using "Global.Instance.cnc.CNC_Write_m()" you can simply use " CNC.Write();
And by using the partial class MainForm declaration I split the over crowded Mainform into several functional parts. I also got rid of many redundant methods. I will publish my version in a couple of days.
best regards
Manfred
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: Enhance UX of LitePlacer

Post by mrandt »

More ideas, just collecting them here:
  • We should develop and apply a common nomenclature, i.e. use same terms and names consistently across application and documentation. Do we place "parts" or "components"? Do we use a "needle" or a "nozzle" for picking up parts? Do we compensate for "rotational offset" or "wobble" and similar things. What seems obvious to one person is often conceived differently by another... I suggest we build a glossary and check all descriptions aggainst that.
  • It would be great if we had a calibration wizard that guided the user through the necessary steps in the right order and provided explanations... We could even allow certain steps to be skipped in that wizard - calibrations that are usually only required once - if values are already set.
    Currently, people have to rely on a lot of written instructions to click buttons in the right order. I think we should aim at making the software self-explanatory, or did your Smartphone come with a 500 pages manual?
  • I think we need to have yet another tab (or popup dialog) to set "application preferences". That should hold options like "halt on placement errors", "enforce machine homed before allowing movement", "show expert functions" etc.
  • I agree with Manfred, I really see a need to declutter all tabs and reconsider each and every button and checkbox. Functions that are rarely used should be hidden in menus or expert functions that are only shown on request. Many years ago we had a VHS recorder which had an ingenious remote control: The top side only had a few buttons, less than 10, the ones that were used most. All other "expert" buttons were hidden underneath a flip cover on the back side. I really liked that approach - expose only the complexity that is necessary to achieve the common tasks, keep rarely used the expert functions nearby but don't overwhelm the user by showing all those on the same screen right away...
  • We should reconsider modality. In some situations the application is really modal and user has to wait for an operation to complete before being able to click anywhere else - that should be obvious. In other situations things can run in parallel and status information can be less intrusive.
mrandt
Posts: 407
Joined: Mon Apr 27, 2015 10:56 am
Location: Stuttgart, Germany

Re: Enhance UX of LitePlacer

Post by mrandt »

To illustrate, I am posting a mockup of how I think a configuration wizard could look like:

Link to full screen version: http://liteplacer.com/phpBB/download/fi ... view&id=84
LitePlacer Configuration Wizard Mockup
LitePlacer Configuration Wizard Mockup
LitePlacer_Configuration_Wizard_Mockup.png (124.26 KiB) Viewed 7120 times
This would be an example of the wizard to be run on first use. For subsequent calibrations that need to be run before each placement job, we could probably ommit many steps.

The tree on the left provides clear navigation and ensures that configuration and calibration steps depending on one another are executed in the right order. I think the navigation should allow to go back. Skipping steps and going forward should only be allowed, if a reasonable value has been set already (e.g. in a previous run of the wizard).

We can explain what's happening in text and also could include a photo or CAD drawing for illustration.

Link to full screen version: http://liteplacer.com/phpBB/download/fi ... view&id=87
LitePlacer Configuration Wizard Mockup - 2
LitePlacer Configuration Wizard Mockup - 2
LitePlacer_Configuration_Wizard_Mockup_2.png (91.72 KiB) Viewed 7120 times
As shown here, we could either point the user to the controls in the main window (thus teaching him / her where to find them later) or include the needed controls in the wizard for simplicity.

Link to full screen version: http://liteplacer.com/phpBB/download/fi ... view&id=88
LitePlacer Configuration Wizard Mockup - 2 (Controls Inline)
LitePlacer Configuration Wizard Mockup - 2 (Controls Inline)
LitePlacer_Configuration_Wizard_Mockup_2_Controls_Inline.png (92.5 KiB) Viewed 7120 times
JuKu
Site Admin
Posts: 1110
Joined: Thu Feb 14, 2013 3:06 pm
Location: Tampere, Finland
Contact:

Re: Enhance UX of LitePlacer

Post by JuKu »

Re: Configuration wizard: I like! Lots of work, but I wouldn't be very surprised if there is a tool or a software package for this. Anyone have pointers?
mawa
Posts: 139
Joined: Wed Jun 10, 2015 1:23 pm
Location: Near Hamburg, Germany

Re: Enhance UX of LitePlacer

Post by mawa »

For those interested in other P&P UIs:

They are very close to Maltes suggestion, but still work in progress:

http://www.varioplace.com/blog/general/ ... e-preview/

A very interesting UI from a P&P Pro (essemtec). You should take a look at the video.

http://www.smtnet.com/company/index.cfm ... g_id=17440

An IMO overcluttered UI:

http://visionbot.net/images/public-imag ... gerber.png
best regards
Manfred
Post Reply