QtQuickVcp, Machineface and Cetus

3,447 views
Skip to first unread message

Alexander Rössler

unread,
Nov 17, 2014, 4:53:56 PM11/17/14
to <machinekit@googlegroups.com>
I am very happy to announce that I can finally present the first two
QtQuickVcp based user interfaces.

Machineface: https://github.com/strahlex/Machineface
and
Cetus: https://github.com/strahlex/Cetus

Machineface is especially designed to work on small screens (7 inch tablets)
to control 3D printers.

Cetus is something similar to Axis, but also works nicely on 10 inch tablets.

I have described instructions for testing here:
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper

The "Machinekit-Client" is available as binary distribution for Linux,
Windows, Mac and Android. It also works on iOS, but I have no idea how to
deploy besides the Apple App Store (which I will do some time in the future).

You do not need anything besides a text editor to modify the user interfaces
so feel free to modify and improve them. However, a QtQuickVcp development
environment might be useful if you want to create your own (which is very
easy).

My video recorder (a.k.a. my smartphone) is not willing to work today so I can
not make a video yet.

Please test, contribute and discuss.

Regards
Alexander

Charles Steinkuehler

unread,
Nov 17, 2014, 5:11:56 PM11/17/14
to Alexander Rössler, <machinekit@googlegroups.com>
On 11/17/2014 3:53 PM, Alexander Rössler wrote:
> I am very happy to announce that I can finally present the first two
> QtQuickVcp based user interfaces.
>
> Machineface: https://github.com/strahlex/Machineface
> and
> Cetus: https://github.com/strahlex/Cetus
>
> Machineface is especially designed to work on small screens (7 inch tablets)
> to control 3D printers.
>
> Cetus is something similar to Axis, but also works nicely on 10 inch tablets.

*VERY* Exciting Alex!

They both look great, especially for a first version!

Now to see if I can get one of them running...is any Android platform OK
for testing, or do I need a specific version?

If the BBB switches to the lxqt based desktop, will these run native on
the BeagleBone (possibly even with acceleration, if the Qt stack
supports it)?

--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

Bas de Bruijn

unread,
Nov 18, 2014, 1:43:08 AM11/18/14
to Alexander Rössler, machi...@googlegroups.com
Can’t wait to try it!
thanks for all the work Alex!
Regards,
Bas
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/machinekit.
> For more options, visit https://groups.google.com/d/optout.

Alexander Rössler

unread,
Nov 18, 2014, 3:28:58 AM11/18/14
to Charles Steinkuehler, <machinekit@googlegroups.com>
Yes it should work on any Android newer than 2.3. I tested on a 4.4, I am not sure about 5.0 since they have changed something with the application environment. I tested it with a Nexus 7 and a Nexus 10, I also tried it on Nexus 4.

Regards
Alexander
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Alexander Rössler

unread,
Nov 18, 2014, 3:32:41 AM11/18/14
to Charles Steinkuehler, <machinekit@googlegroups.com>
And yes it will also work on the BBB itself with a recent version of Qt available (5.2 or newer). If LXQt runs on it it should be fine. However, I was not able to get the early LxQt BBB images running on my BBB. So it may take some time until we see embedded user interfaces.

Regards
Alexander

On November 17, 2014 11:11:54 PM CET, Charles Steinkuehler <cha...@steinkuehler.net> wrote:

--

Charles Steinkuehler

unread,
Nov 18, 2014, 6:58:32 AM11/18/14
to Alexander Rössler, <machinekit@googlegroups.com>
On 11/18/2014 2:32 AM, Alexander Rössler wrote:
> And yes it will also work on the BBB itself with a recent version of
> Qt available (5.2 or newer). If LXQt runs on it it should be fine.
> However, I was not able to get the early LxQt BBB images running on
> my BBB. So it may take some time until we see embedded user
> interfaces.

The Jessie images for the BBB use lxqt and the 3.14 kernel that should
provide hot-plug USB and working GPU acceleration. Now someone needs to
try making a Xenomai kernel with the SGX drivers enabled and see if it
all works together.

--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

Alexander Rössler

unread,
Nov 18, 2014, 7:21:06 AM11/18/14
to Charles Steinkuehler, <machinekit@googlegroups.com>
On Tuesday 18 November 2014 05:58:29 Charles Steinkuehler wrote:
> The Jessie images for the BBB use lxqt and the 3.14 kernel that should
> provide hot-plug USB and working GPU acceleration. Now someone needs to
> try making a Xenomai kernel with the SGX drivers enabled and see if it
> all works together.
Also to mention is the fact that this might make USB hot-plug working.

Dear Santa...

Dave Cole

unread,
Nov 18, 2014, 9:50:54 AM11/18/14
to machi...@googlegroups.com
VERY impressive.  

Will try it out... 

Thanks!

Dave
Sent from my Android device with K-9 Mail. Please excuse my brevity. --
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
Visit this group at http://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.



This email is free from viruses and malware because avast! Antivirus protection is active.


Pruska Modr

unread,
Nov 18, 2014, 6:59:35 PM11/18/14
to machi...@googlegroups.com
Hi,
not bad, not bad at all. I am going to try it next time I have free time. Keep it up.


I have a questing - I do not know if it is more to the display interface or communication protocol ( Am I correct that it is called Machinetalk?) but what happens when connection is lost during run? For example I have device connected to home network which consists of several APs. As I do not have zero lost automatic handoff, there could be about second or two between reconnecting when roaming with tablet (or phone, basically mobile device).

And depending how this is implemented, can I set up my own rule how the system will react to such occurence?

Tjanks for answering,
PM

Dne pondělí, 17. listopadu 2014 22:53:56 UTC+1 Alexander Rössler napsal(a):

Phill Carter

unread,
Nov 19, 2014, 4:01:33 AM11/19/14
to machi...@googlegroups.com
I am having trouble getting this working on my BBB.
I was able to follow the instructions at:
http://www.machinekit.io/docs/packages-debian/
and:
https://github.com/strahlex/asciidoc-sandbox/wiki/Creating-a-Machinekit-Debian-Image
to successfully install and run machinekit on a BBB via the SD card.
I then followed the instructions at:
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper
except I didn't apt-get upgrade as I wasn't 100% sure of the correctness my sources.list file.
After running lathe.py on the BBB, then running run.sh on the client (Debian Wheezy) machinekit appears, I can select the instance of machinekit that is running then select Cetis but Cetis just sits there saying 'Waiting for services to appear', none of the four listed services are active and Cetis is empty except for some menus at the top and a status bar at the bottom.
Relevant files are available at:
https://www.dropbox.com/sh/q0kmxkhdi1k8fas/AAAvjSVi4f7yKOx_BX5swtUIa?dl=0
Cheers, Phill

schoo...@btinternet.com

unread,
Nov 20, 2014, 9:45:03 AM11/20/14
to machi...@googlegroups.com
Hi Alex,

I have been trying this without success, partly hampered by the
instructions being based upon package installation I think.

I have machinekit built as a RIP on Wheezy running the debian rt-preempt
kernel

I have Qt5.3 installed, build environment set up and your QtVcp repo
built and installed, so all the plugins and libs etc are present.

Cetus builds from the repo and it runs

I have the MACHINEKIT.INI exported and it contains the UUID, REMOTE = 1
and INTERFACE = lo to use localhost 127.0.0.0

The hal file contains loadusr -W haltalk

Whether I start an instance of machinekit using axis or mkwrapper, cetus
just sits there looking for available instances

It has been a long time since I tried the halremote examples, probably
missing something but it is not obvious.

regards

Mick


Alexander Rössler

unread,
Nov 20, 2014, 9:56:03 AM11/20/14
to machi...@googlegroups.com
Sounds like you haven't started a configserver. Even if you run the user
interfaces locally you need the configserver as entry point. (ServiceDiscovery
is looking for it). Just run configserver without any arguments. Please also
try the AppDiscover client (QtQuickVcp/applications/AppDiscover/) if there are
instances running you can use the Service Monitor from the local applications
to see what service are running.

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 20, 2014, 10:29:21 AM11/20/14
to machi...@googlegroups.com
Hi

Made progress just before your reply, problem with the configserver path

Will discover Machinekit at 127.0.0.1 and with the mkwrapper loaded as
display
will then discover services and show Cetus screen

Well done, now have to run some tests through it to test it all, but
that's another day

Proof of life attached

regards



Selection_005.png

Alexander Rössler

unread,
Nov 20, 2014, 11:07:06 AM11/20/14
to machi...@googlegroups.com
On Wednesday 19 November 2014 01:01:33 Phill Carter wrote:
> I am having trouble getting this working on my BBB.
> I was able to follow the instructions at:
> http://www.machinekit.io/docs/packages-debian/
> and:
> https://github.com/strahlex/asciidoc-sandbox/wiki/Creating-a-Machinekit-Debi
> an-Image to successfully install and run machinekit on a BBB via the SD
It looks like mkwrapper was not started for some reason. Can you please try to
remove the commented DISPLAY variables from the ini file.
If that does not work start linuxcnc with an existing UI and run mkrapper
manually:
mkwrapper -d --ini <ini>
it should give you some debug output and maybe some hints whats going wrong.

Regards
Alexander

John Morris

unread,
Nov 20, 2014, 9:23:14 PM11/20/14
to machi...@googlegroups.com
That's just gorgeous. I hope everyone realizes just how enormous a step
forward this is for Machinekit.

I wonder how many SLOC in the Cetus and Machineface apps, not including
libraries?

John

Phill Carter

unread,
Nov 20, 2014, 11:54:33 PM11/20/14
to machi...@googlegroups.com

Alexander,
Thanks for replying.
Removing the commented DISPLAY variable made no difference.
The first run with mkwrapper loaded manually gave me an error that the folder for PROGRAM_PREFIX didn't exist, which it didn't as I had forgotten to copy it across... After creating the folder and running mkwrapper manually again - Cetus almost loads fully, the top icon bar has no icons and the File and Machine menus are empty. If I press F1 it goes out of e-stop, the DRO fully populates then after abut 10 seconds it goes back inti e-stop.
I rebooted and tried to run it automatically but it still has exactly the same symptoms as before.
New files are at  https://www.dropbox.com/sh/q0kmxkhdi1k8fas/AAAvjSVi4f7yKOx_BX5swtUIa?dl=0  again and begin with 4.
Cheers, Phill

 

Alexander Rössler

unread,
Nov 21, 2014, 2:38:17 AM11/21/14
to machi...@googlegroups.com
> Alexander,
> Thanks for replying.
> Removing the commented DISPLAY variable made no difference.
> The first run with mkwrapper loaded manually gave me an error that the
> folder for PROGRAM_PREFIX didn't exist, which it didn't as I had forgotten
> to copy it across... After creating the folder and running mkwrapper
> manually again - Cetus almost loads fully, the top icon bar has no icons
> and the File and Machine menus are empty. If I press F1 it goes out of
> e-stop, the DRO fully populates then after abut 10 seconds it goes back
> inti e-stop.
> I rebooted and tried to run it automatically but it still has exactly the
> same symptoms as before.
> New files are at
> https://www.dropbox.com/sh/q0kmxkhdi1k8fas/AAAvjSVi4f7yKOx_BX5swtUIa?dl=0
> again and begin with 4.
> Cheers, Phill
File and Machine menu are not implemented yet so this is normal. The missing
icons are unusual.Can you try pull the Cetus source code again. Also please
build QtQuickVcp in debug mode so it will it will be easier for me to resolve
your problems.

Something goes wrong with the loopback interface. You are probably resolving
the services using MDNS can you try switching to Unicast.
(in the Cetus main.qml add "lookupMode: ServiceDiscovery.UnicastDNS" to the
ConnectionWindow.

Regards
Alexander

Alexander Rössler

unread,
Nov 21, 2014, 4:32:51 AM11/21/14
to machi...@googlegroups.com
> I have a questing - I do not know if it is more to the display interface or
> communication protocol ( Am I correct that it is called Machinetalk?) but
> what happens when connection is lost during run? For example I have device
> connected to home network which consists of several APs. As I do not have
> zero lost automatic handoff, there could be about second or two between
> reconnecting when roaming with tablet (or phone, basically mobile device).
It is mostly handled by ZeroMQ. However, as a timeout is not detectable by the
application using ZeroMQ we have introduced heartbeat messages from client to
server in case of ROUTER-DEALER pattern and server to client in case of PUB-
SUB pattern. So the applications knows when a timeout happens. This is
indicated with grayed-out elements or "busy" indicators in the user interface.
Reconnect happens automatically. It works very well for me with a weak wifi
signal.

> And depending how this is implemented, can I set up my own rule how the
> system will react to such occurence?
At the moment it is not possible. However, we thought about it already. One
solution would we to handle disconnects on the HAL level (e.g. to trigger
ESTOP). There is a discussion about that topic somewhere on GitHub in the
issues.

Regards
Alexander

Phill Carter

unread,
Nov 21, 2014, 4:40:59 AM11/21/14
to machi...@googlegroups.com

Downloading Cetus again fixed the icon problem.
Switching to unicast made no difference.
I will get to  the QtQuickVcp build sometime over the weekend.
Thanks again, it looks awesome...
Cheers, Phill

schoo...@btinternet.com

unread,
Nov 22, 2014, 1:58:04 AM11/22/14
to machi...@googlegroups.com

Hi Alex

Just a couple of initial reports on testing. Both relate to the gcode
browser.

1) If there is an error in the gcode, upon initial load, the error is
reported as being on line '-2'

2) The gcode highlighting is consistently running 1 line ahead of the
actual execution line.

I remember having huge problems with this latter issue when I started
writing a Qt GUI to linuxcnc.

emcStatus->task.currentLine
emcStatus->task.motionLine
emcStatus->task.readLine
all returned different line numbers, but often none of them were correct.

If your highlighting remains consistently one line ahead, you have
cracked that problem and just need to adjust back by one

I have not had the time to dig into your widgets to see the underlying
code regards 1)
The initial error will come from the interpreter, but unsure what
formatting takes place before display
I will report back if I trace what is causing it

Otherwise looking good so far

regards



Alexander Rössler

unread,
Nov 22, 2014, 2:38:35 AM11/22/14
to machi...@googlegroups.com
Re: [Machinekit] Re: QtQuickVcp, Machineface and Cetus
From: Alexander Rössler <mail.ar...@gmail.com>
To: "schoo...@btinternet.com" <schoo...@btinternet.com>
Date: Yesterday 22:11:44
> 1) If there is an error in the gcode, upon initial load, the error is
> reported as being on line '-2'
>
> 2) The gcode highlighting is consistently running 1 line ahead of the
> actual execution line.
>
> I remember having huge problems with this latter issue when I started
> writing a Qt GUI to linuxcnc.
>
> emcStatus->task.currentLine
> emcStatus->task.motionLine
> emcStatus->task.readLine
> all returned different line numbers, but often none of them were correct.
>
> If your highlighting remains consistently one line ahead, you have
> cracked that problem and just need to adjust back by one
I will take a look at this. All the magic happens here:
https://github.com/strahlex/QtQuickVcp/blob/master/src/pathview/GCodeSync.qml#L43

> I have not had the time to dig into your widgets to see the underlying
> code regards 1)
> The initial error will come from the interpreter, but unsure what
> formatting takes place before display
> I will report back if I trace what is causing it
Take a look at:
https://github.com/machinekit/machinekit/blob/master/src/machinetalk/mkwrapper/mkwrapper.py#L210
The preview interpreter is generating the error message. The preview
interpreter in general is not very polished yet.

Thank you for testing.

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 22, 2014, 11:46:00 AM11/22/14
to machi...@googlegroups.com


2) The gcode highlighting is consistently running 1 line ahead of the
actual execution line.

I remember having huge problems with this latter issue when I started
writing a Qt GUI to linuxcnc.

emcStatus->task.currentLine
emcStatus->task.motionLine
emcStatus->task.readLine
all returned different line numbers, but often none of them were correct.

If your highlighting remains consistently one line ahead, you have
cracked that problem and just need to adjust back by one

> I will take a look at this. All the magic happens here:
> https://github.com/strahlex/QtQuickVcp/blob/master/src/pathview/GCodeSync.qml#L43
>
>
PR submitted, removing the line number increment in

GCodeSync.qml

var currentLine = status.motion.motionLine + 1

seems to leave the highlight in the correct line for the current motion.


regards

Alexander Rössler

unread,
Nov 22, 2014, 12:30:12 PM11/22/14
to machi...@googlegroups.com
Thank you, merged.

Regards
Alexander

Bas de Bruijn

unread,
Nov 23, 2014, 11:12:54 AM11/23/14
to Alexander Rössler, machi...@googlegroups.com
Hi Alexander,
Today I wanted to give your project a try, I downloaded your installation script and ran it.
I finally got the message "Enable Qbs and BBIOConfig plugins in Qt Creator and set up Machinekit target" but I have no idea what I should do next.
Thanks,
Bas

Alexander Rössler

unread,
Nov 23, 2014, 11:32:23 AM11/23/14
to machi...@googlegroups.com
The message means you should enable these plugins in Qt Creator if you want to
use the Machinekit SDK. It is not necessary for QtQuickVcp.

Just open Qt Creator open the QtQuickVcp.pro with it. And follow this wiki
entry here: https://github.com/strahlex/QtQuickVcp/wiki/QtQuick-Virtual-Control-Panel#qtquickvcp

After that open the AppDiscover.pro in applications/AppDiscover and build/run
it. For the rest follow the Testing mkwrapper wiki page
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper


Regards
Alexander

schoo...@btinternet.com

unread,
Nov 23, 2014, 12:13:16 PM11/23/14
to machi...@googlegroups.com
Hi Alex
> 1) If there is an error in the gcode, upon initial load, the error is
> reported as being on line '-2'

>> I have not had the time to dig into your widgets to see the underlying
>> code regards 1)
>> The initial error will come from the interpreter, but unsure what
>> formatting takes place before display
>> I will report back if I trace what is causing it
> Take a look at:
> https://github.com/machinekit/machinekit/blob/master/src/machinetalk/mkwrapper/mkwrapper.py#L210
> The preview interpreter is generating the error message. The preview
> interpreter in general is not very polished yet.
>
The only thing I can determine from all the parseltongue is that
previewmodule.cc
is returning -1 at L1068

PyTuple_SetItem(retval, 1, PyInt_FromLong(last_sequence_number +
error_line_offset));

and mkwrapper.py L201 is subtracting 1 from it to make it -2

def run(self):
self.isRunning = True
try:
result, last_sequence_number = preview.parse(self.filename,
self.canon,
self.unitcode,
self.initcode)

if result > preview.MIN_ERROR:
error = " gcode error: %s " % (preview.strerror(result))
line = last_sequence_number - 1
if self.debug:
print(("preview: " + self.filename))
print((error + " on line " + str(line)))

Why the preview is essentially returning an error code rather than a
line in the first place I don't know

When it comes down to python libraries implemented in psuedo C++ where
the class member which processes the call,
does not even match the name of the member being called, I start to lose it.

regards



Alexander Rössler

unread,
Nov 23, 2014, 12:38:18 PM11/23/14
to machi...@googlegroups.com
I think it returns -1 when the error is related to reading or opening the
file. So the error should be handled differently if previewmodule returns -1.
When do you get this error?

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 23, 2014, 1:43:15 PM11/23/14
to machi...@googlegroups.com
There was no problem opening or finding the files in question. The
files also all opened without error in Axis

It was a variety of causes, M6T2 when tool 2 was not defined (although
tool.tbl was present), 2 modal codes of the same group on the same line
even though I could not see any, etc etc

I will set up a series of tests, with deliberate errors in the gcode and
see if the error is different in any of the cases.
I will forward you the test files also
At least then there will be a repeatable test so we are comparing like
with like.

There is no inferred criticism here, I avoided many problems by
embedding gremlin instead of writing my own preview ( albeit produced
almost as many problems with the bizarre X embedding behavior of gremlin
and associated focus problems) using the existing code to generate it.
Writing a new one is bound to produce problems but necessary to break
away completely from Axis

regards

schoo...@btinternet.com

unread,
Nov 24, 2014, 5:48:22 AM11/24/14
to machi...@googlegroups.com

On 23/11/14 18:43, schoo...@btinternet.com wrote:
> There was no problem opening or finding the files in question. The
> files also all opened without error in Axis
>
> It was a variety of causes, M6T2 when tool 2 was not defined (although
> tool.tbl was present), 2 modal codes of the same group on the same line
> even though I could not see any, etc etc
>
> I will set up a series of tests, with deliberate errors in the gcode
> and see if the error is different in any of the cases.
> I will forward you the test files also
> At least then there will be a repeatable test so we are comparing like
> with like.
>
> There is no inferred criticism here, I avoided many problems by
> embedding gremlin instead of writing my own preview ( albeit produced
> almost as many problems with the bizarre X embedding behavior of
> gremlin and associated focus problems) using the existing code to
> generate it.
> Writing a new one is bound to produce problems but necessary to break
> away completely from Axis
>
> regards
>
Hi Alex

OK, just started with a small gcode file, a simple one I use on my small
mill to warm it up and spread lubricant before milling.
movetest_mill4.ngc

First load of file
*gcode error:**
**Unrecogn**ised gcode **
**on line -2*

This error was never repeated on subsequent loads, so a peculiar one.

Next load of file
*gcode error:**
**Requested tool 2 not found in the tool table**
**on line -2*

tool.tbl contained 4 tools, I replaced the tool.tbl with another which
was formatted in the full manner
ie
T1 P1 X+0 Y+0 Z+0 instead of just 1 1 0 0 0

but next load the result was the same error

If you try to reload the ngc file using the toolbar icon, you get the error
*can't open**
**Unable to open file<>*
and the run button is disabled although the code still shows in the code
browser window

However a full load of the file again works and re-enables the Run
button, albeit produces the tool 2 error again.

The file will run despite the error initially, it produces the manual
tool change dialog at the M6T2 line, but the status bar continues to
show No Tool

The initial load only produces a preview plot for the first 2 moves of
the program and does not show any subsequent ones

Running the program does not produce any trace of the tool path

The Max velocity slider is set for mm/min. The program uses F500
throughout for G1 moves
The velocity display is steady at *8.3318* during G1 moves
ie it is displaying m/min not mm/min (500/60)

Next loaded a simple file to produce a square
square2.ngc

On load the error is
*gcode error:**
**Two g codes from same modal group**
**on line -2*

After some experimentation I found that it thought the first line of G40
and G90, were the same modal group and produced the error
If I split them, one per line the error went away
However if I put them back on the same line and started the file with a
blank line, there was no error either
Perhaps something to do with how the file is read in?

That is probably enough for now
I don't want to 'pee on your parade', some of these things are probably
not implemented or connected up yet

Cetus discovers the machinekit instance and connects via the localhost,
so that side of it is working fine

I will try digging later to see if I can find any of the causes of the above

regards


movetest_mill_4.ngc
square2.ngc

Alexander Rössler

unread,
Nov 24, 2014, 7:15:21 AM11/24/14
to machi...@googlegroups.com
Thank you for investigating in the problems. Some of them where already known
to me. I have added a few issues on GitHub:
https://github.com/strahlex/QtQuickVcp/issues

It would be very nice if you could copy your findings to the related issues so
I can track the problems easier.

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 24, 2014, 8:16:13 AM11/24/14
to machi...@googlegroups.com

> Thank you for investigating in the problems. Some of them where already known
> to me. I have added a few issues on GitHub:
> https://github.com/strahlex/QtQuickVcp/issues
>
> It would be very nice if you could copy your findings to the related issues so
> I can track the problems easier.
>
> Regards
> Alexander
>
All done, cut and pastes from original email

(Quotes the file producing but not added to each issue comment)

regards

schoo...@btinternet.com

unread,
Nov 24, 2014, 8:57:31 AM11/24/14
to machi...@googlegroups.com
On second thoughts, the code needs to be in the issue text
On second thoughts, the code needs to be in the issue text, or in a
couple of days time
when the email is forgotten, I will be the only one who knows what it
contained exactly

Added

schoo...@btinternet.com

unread,
Nov 24, 2014, 12:21:05 PM11/24/14
to machi...@googlegroups.com
In attempting to investigate the below, perfect example of why I find
QtQuick / qml so difficult


>> The Max velocity slider is set for mm/min. The program uses F500
>> throughout for G1 moves
>> The velocity display is steady at *8.3318* during G1 moves
>> ie it is displaying mm/sec not mm/min (500/60)


I can find the implementation of the Vel: readout in
src/applicationcontrols/DigitalControl.qml

Looks more like python than C++, no line termination, relies on indentation?

Loader {

sourceComponent: textLine

onLoaded: {

item.title = "Vel:"

item.type = ""

item.homed = false

item.value = Qt.binding(function(){return droRect.velocity})

}

active: true

visible: !droRect.offsetsVisible && velocityVisible

}

So the readout is being set by droRect.velocity

However grepping Cetus and QtVcp sources fails to find any
class/struct/widget called 'droRect' which has a member called velocity

So where on earth is the code that is setting the value ( which needs
multiplying by 60 to give mm/min instead of the current mm/sec ) ?

regards

Alexander Rössler

unread,
Nov 24, 2014, 2:42:01 PM11/24/14
to machi...@googlegroups.com
On Monday 24 November 2014 17:21:04 schoo...@btinternet.com wrote:
> In attempting to investigate the below, perfect example of why I find
> QtQuick / qml so difficult
Its different than most classic programming languages. You are used to
imperative language where everything is a sequence of executed commands.
See http://en.wikipedia.org/wiki/Declarative_programming

The huge advantage of QML is that there is actually no program flow. So it
scales very well on multi-core architectures. A GPU is a very good parallel
processor and that’s the reason it runs so fast.

> Looks more like python than C++, no line termination, relies on indentation?
Its neither C++ nor Python. And no it does not rely on indentation. Everything
happens on a single line except when you use curly braces.

> Loader {
A Item, basically a object in QML.
>
> sourceComponent: textLine
property binding
>
> onLoaded: {
function and here it is imperative, JavaScript
>
> item.title = "Vel:"
>
> item.type = ""
>
> item.homed = false
>
> item.value = Qt.binding(function(){return
> droRect.velocity})
>
> }
imperative part is over
>
> active: true
property binding
>
> visible: !droRect.offsetsVisible && velocityVisible
property binding
>
> }
end of Item

> So the readout is being set by droRect.velocity
Yes it is a binding to droRect.velocity. You have to look where droRect is
defined. In this case it is the root component of the QML file.

> However grepping Cetus and QtVcp sources fails to find any
> class/struct/widget called 'droRect' which has a member called velocity
Its in that same QML file.

> So where on earth is the code that is setting the value ( which needs
> multiplying by 60 to give mm/min instead of the current mm/sec ) ?
Not a good idea. Some machines use seconds as time unit.

I have already fixed, just need to create commit.

Regards
Alexander

Alexander Rössler

unread,
Nov 24, 2014, 2:50:45 PM11/24/14
to machi...@googlegroups.com
On Monday 24 November 2014 17:21:04 schoo...@btinternet.com wrote:
Here is the commit that fixed the problem:
https://github.com/strahlex/QtQuickVcp/commit/2956c02a8596486d15b97b11e5891a2894962a03

Regards
Alexander

Marius Alksnys

unread,
Nov 25, 2014, 12:12:34 AM11/25/14
to machi...@googlegroups.com
Alex, the things you create are so great and cool! Thanks.

I would like to try your new interfaces, but I don't fully understand your instructions for testing mkwrapper.
I flashed my BBB 4GB eMMC from given image, ran apt-get update, upgrade and dist-upgrade. I can run linuxcnc locally or remotely, but this is what I get trying to run your .py file for Cetus:
machinekit@beaglebone:~/machinekit-dev/configs/cnc2$ ./launch.py Traceback (most recent call last):
  File "./launch.py", line 7, in <module>
    from machinekit import launcher
ImportError: No module named machinekit

schoo...@btinternet.com

unread,
Nov 25, 2014, 4:11:34 AM11/25/14
to machi...@googlegroups.com
Hi Alex

>> However grepping Cetus and QtVcp sources fails to find any
>> class/struct/widget called 'droRect' which has a member called velocity

> Its in that same QML file.
Now that I have seen your commit, I can see it, but I did not recognise
it as a variable declaration from this

"property double velocity: _ready ? status.motion.currentVel : 15.4"

It seems to be a conditional allocation which says
if(_ready)
velocity = status.motion.currentVel
else
velocity = 15.4

Unless the meaning of the C ? : operators has been changed too

In which case why 15.4?
99999 or 0.0000 I could understand if the widget was not ready, but 15.4?
>> So where on earth is the code that is setting the value ( which needs
>> multiplying by 60 to give mm/min instead of the current mm/sec ) ?
> Not a good idea. Some machines use seconds as time unit.
The target audience for Cetus is presumably Axis users, who use cast
iron, or at least aluminium, with cutting tools, rotating spindles etc
and associated forces.
They will not be using seconds

On a more basic level, a readout should be in the units that were
programmed in

If you use F500, you expect a velocity display to show 500 not 8.3318
>
> I have already fixed, just need to create commit.
>
>
Seen that thanks, when I have more time I will look at something else
and doubtless be back to annoy you further:-P

regards

Alexander Rössler

unread,
Nov 25, 2014, 5:28:43 AM11/25/14
to machi...@googlegroups.com
On Tuesday 25 November 2014 09:11:32 schoo...@btinternet.com wrote:
> In which case why 15.4?
> 99999 or 0.0000 I could understand if the widget was not ready, but 15.4?
The widget should be never not ready on a running machine. If that happens the
widget is grayed out. The values are for testing the widgets. 0.0 makes more
sense, but there was a reason for a value that is not 0.0 at implementation
time. I look over all widgets when I have some time and make the defaults more
sane.

> The target audience for Cetus is presumably Axis users, who use cast
> iron, or at least aluminium, with cutting tools, rotating spindles etc
> and associated forces.
> They will not be using seconds
But the DigitalReadOut can be used for other types of machines that use
seconds as time unit. For example in Machineface for 3D printers.

I take all the values from the linuxcnc Python component and as you see the
units of these values are not consistent at all. That leads to some dirty
hacks that I do not like either. When we remove NML we will replace it with
something more sane. (I have no idea why they used seconds for the values when
there was no way to display velocities in mm/s)

Regards
Alexander

Alexander Rössler

unread,
Nov 25, 2014, 6:00:01 AM11/25/14
to machi...@googlegroups.com
I guess you have downloaded the Machinekit image from Mai right? This image is
outdated. Please follow this guide to get a recent Machinekit installation on
you BBB: https://github.com/strahlex/asciidoc-sandbox/wiki/Creating-a-Machinekit-Debian-Image

We are working on better documentation right now. Feel free to give us
feedback.

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 25, 2014, 6:24:44 AM11/25/14
to machi...@googlegroups.com
Next issue

The failure to reload #14
(duplicated in repo issues)

Did some debugging and the problem is indeed that a blank file name is
being passed to
QApplicationCommand::openProgram()

The below output shows file open after homing - OK
The file name requested to be loaded is shown

Attempt at reload through ReopenAction fails and the debug output shows
the string is empty

Load the file again via the OpenAction and is OK again

'''

qml: Source changed: qrc:///Cetus/Cetus.qml true

qml: Window Cetus loaded

[I 14-11-25 10:58:02] 127.0.0.1:35356-[] FTP session opened (connect)

[I 14-11-25 10:58:02] 127.0.0.1:35356-[anonymous] USER 'anonymous' logged in.

(Initial file load)

QIODevice::read: device not open

[I 14-11-25 10:58:02] 127.0.0.1:35356-[anonymous] STOR /media/sdc/sdc2/root/emc2/ngc/square2.ngc completed=1 bytes=191 seconds=0.001

File name= file:///root/emc2/ngc/square2.ngc

[I 14-11-25 10:58:02] 127.0.0.1:35356-[anonymous] FTP session closed (disconnect).

(Reload tried here)

File name= ""

emc/task/emctask.cc 389: interp_error: Unable to open file <>

Unable to open file <>

can't open

[I 14-11-25 10:59:21] 127.0.0.1:35358-[] FTP session opened (connect)

[I 14-11-25 10:59:21] 127.0.0.1:35358-[anonymous] USER 'anonymous' logged in.

(Loaded again )

QIODevice::read: device not open

[I 14-11-25 10:59:21] 127.0.0.1:35358-[anonymous] STOR /media/sdc/sdc2/root/emc2/ngc/square2.ngc completed=1 bytes=191 seconds=0.001

File name= file:///root/emc2/ngc/square2.ngc

[I 14-11-25 10:59:21] 127.0.0.1:35358-[anonymous] FTP session closed (disconnect).

'''

Having great difficulty finding where
command.openProgram('execute', file.fileName)
is getting *file* from.
grepping is no good because there are so many references littered across
the code

regards


Alexander Rössler

unread,
Nov 26, 2014, 4:46:53 AM11/26/14
to machi...@googlegroups.com
This one should be fixed now.

Regards
Alexander

schoo...@btinternet.com

unread,
Nov 26, 2014, 6:19:16 AM11/26/14
to machi...@googlegroups.com
Well done

Doing other stuff for a while, will do a fresh pull and revisit in due
course

fr...@franksworkshop.com.au

unread,
Nov 26, 2014, 3:35:43 PM11/26/14
to machi...@googlegroups.com
How do I get this to work on a BBB?
 
I got as far as trying to compile the latest version of qt-creator, but it failed when compiling "botan" - the error said the architecture was not supported.
 
Is there a fix, or a work around?
 
My plan is to run QtQuickVcp+ all locally on the BBB.

Alexander Rössler

unread,
Nov 26, 2014, 5:34:20 PM11/26/14
to machi...@googlegroups.com
Have you tried it with Qt4 on the Debian Wheezy BBB image? Then this error is
correct.

QtQuickVcp needs at least Qt5.2. That means you should be able to compile on
the experimental Debian Jessie BBB images with LXQt. If you get the Jessie
image running just ask me how to proceed. I would love to see it running
native on the BBB.

Regards
Alexander

GP Orcullo

unread,
Nov 26, 2014, 5:39:34 PM11/26/14
to Alexander Rössler, Machinekit List
Using Qt5 from wheezy-backports also works.

> Regards
> Alexander
>
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/machinekit.
> For more options, visit https://groups.google.com/d/optout.


--
GP Orcullo

Alexander Rössler

unread,
Nov 26, 2014, 7:00:41 PM11/26/14
to GP Orcullo, Machinekit List
On the desktop it should. On the BBB I think it does not. Let me explain:

QtQuickVcp is based on QtQuick 2.0. QtQuick 2.0 needs to be compiled against a working OpenGL driver. On the BBB this is the SGLX driver from TI. The Debian Wheezy images are not shipped with this driver (and I never figured out how to compile it correctly), so Qt5 from the backports might be compiled without OpenGL support.

The Jessie images include the SGLX driver (I am not 100% sure) and therefore QtQuick 2.0 should work.

As a test try to compile and run one of the QtQuick 2 example that can be found on the Qt project website.

I really hope that I am wrong.

Regards
Alexander
Sent from my Android device with K-9 Mail. Please excuse my brevity.

fr...@franksworkshop.com.au

unread,
Nov 26, 2014, 7:06:11 PM11/26/14
to machi...@googlegroups.com
Just to clarify, it was qt-creator that failed to build.  I have successfully built the latest Qt 5 (24hour build) on the BBB.

Alexander Rössler

unread,
Nov 27, 2014, 6:01:19 AM11/27/14
to machi...@googlegroups.com
On Wednesday 26 November 2014 16:06:11 fr...@franksworkshop.com.au wrote:
> Just to clarify, it was qt-creator that failed to build. I have
> successfully built the latest Qt 5 (24hour build) on the BBB.
Unless you want to develop on the BBB itself you do not need the Qt-Creator to
build QtQuickVcp.

Take a look at the commands in this script for building QtQuickVcp from the
terminal: https://gist.github.com/strahlex/e4b9137710e23723ab7a

Regards
Alexander

GP Orcullo

unread,
Nov 27, 2014, 7:47:02 PM11/27/14
to Alexander Rössler, Machinekit List
I'm trying to run Cetus on RPi with Qt5 v5.3.2 and I'm getting the
following errors:

pi@machinekit:~/Cetus/build$ sudo ./Cetus -platform eglfs
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/ConnectionWindow.qml:881:
Error: Cannot assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/ConnectionWindow.qml:174:37:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Button.qml:93:22:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Button.qml:93:22:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/ConnectionWindow.qml:778:20:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:208:
TypeError: Cannot read property 'length' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:208:
TypeError: Cannot read property 'length' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:208:
TypeError: Cannot read property 'length' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:208:
TypeError: Cannot read property 'length' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:208:
TypeError: Cannot read property 'length' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/ConnectionWindow.qml:714:21:
Unable to assign [undefined] to QUrl

The display comes up with the instance selection but once clicked the
window remains blank.


--
GP Orcullo

GP Orcullo

unread,
Nov 28, 2014, 1:04:46 AM11/28/14
to Alexander Rössler, Machinekit List
Looks like it's related to this bug:
https://bugreports.qt-project.org/browse/QTBUG-38561
--
GP Orcullo

Alexander Rössler

unread,
Nov 28, 2014, 7:43:33 AM11/28/14
to Machinekit Mailing List
On Friday 28 November 2014 08:46:59 GP Orcullo wrote:
> I'm trying to run Cetus on RPi with Qt5 v5.3.2 and I'm getting the
> following errors:
>
> pi@machinekit:~/Cetus/build$ sudo ./Cetus -platform eglfs
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/
> ConnectionWindow.qml:881: Error: Cannot assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/
> ConnectionWindow.qml:174:37: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22
> : Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Button.qml:93:2
> 2: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22
> : Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Button.qml:93:2
> 2: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/
> ConnectionWindow.qml:778:20: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Label.qml:93:22
> : Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:208: TypeError: Cannot read property 'length' of undefined
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:208: TypeError: Cannot read property 'length' of undefined
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:208: TypeError: Cannot read property 'length' of undefined
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:208: TypeError: Cannot read property 'length' of undefined
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:208: TypeError: Cannot read property 'length' of undefined
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicBu
> tton.qml:144:29: Unable to assign [undefined] to QString
> file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/Application/Controls/
> ConnectionWindow.qml:714:21: Unable to assign [undefined] to QUrl
>
> The display comes up with the instance selection but once clicked the
> window remains blank.
Is there a reason you run it with sudo? I am not sure this a Qt bug or not,
but you actually see the selection window which indicates that QtQuick is
somehow working.

Can you please try to build and install QtQuickVcp with the debug option
(qmake CONFIG+=debug). Then you will get some debug output that might help to
find the problem.

Regards
Alexander

GP Orcullo

unread,
Nov 28, 2014, 7:02:39 PM11/28/14
to Alexander Rössler, Machinekit Mailing List
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/machinekit.
> For more options, visit https://groups.google.com/d/optout.

Sudo is for the permission errors that crop up while running Cetus. I
haven't fixed the udev rules for the input devices yet.

After recompiling qtdeclarative using gcc-4.7 (was gcc-4.6 before),
the interface comes up but the toolbars are all grayed-out. The
[undefined] error is still present. I will be recompiling all of QT5
to see if there are any changes.

Running the ControlsDemo shows the following errors:

file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:53:
TypeError: Type error
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:53:
TypeError: Type error
qrc:///qml/main.qml:60:5: QML GroupBox: Binding loop detected for
property "implicitWidth"
qrc:///qml/main.qml:60:5: QML GroupBox: Binding loop detected for
property "implicitWidth"
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:53:
TypeError: Type error
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:61:
TypeError: Cannot call method 'indexOf' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:61:
TypeError: Cannot call method 'indexOf' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml:61:
TypeError: Cannot call method 'indexOf' of undefined
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/HalRemote/Controls/HalLed.qml:62:15:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/HalRemote/Controls/HalLed.qml:62:15:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/HalRemote/Controls/HalLed.qml:62:15:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/HalRemote/Controls/HalLed.qml:62:15:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/Machinekit/HalRemote/Controls/HalLed.qml:62:15:
Unable to assign [undefined] to QString
file:///usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Private/BasicButton.qml:144:29:
Unable to assign [undefined] to QString

Enabling debug doesn't show any extra info.

--
GP Orcullo

GP Orcullo

unread,
Nov 28, 2014, 10:58:19 PM11/28/14
to Alexander Rössler, Machinekit Mailing List
After recompiling qt5 using gcc-4.7 the situation looks better.
There's still a few "[undefined]" errors but it's working now.

Is it normal for the Cetus to run at >90% cpu? When I run the
splash.ngc, the UI hangs but to debug output is busy displaying the
position info.
--
GP Orcullo

fr...@franksworkshop.com.au

unread,
Nov 29, 2014, 12:39:06 AM11/29/14
to machi...@googlegroups.com, kinsa...@gmail.com
Does QtQuickVcp need much from QtQuick 2.0?

I want to run with a USB display which uses the linux framebuffer device driver - no open gl.  The qml examples all work (qtquick 1.0?).

Alexander Rössler

unread,
Nov 29, 2014, 12:11:40 PM11/29/14
to Machinekit Mailing List
On Saturday 29 November 2014 11:58:17 you wrote:
> Is it normal for the Cetus to run at >90% cpu? When I run the
> splash.ngc, the UI hangs but to debug output is busy displaying the
> position info.
No, do you have a accelerated graphics driver installed on your RaspberryPi?
Also is mkwrapper running on the same machine? Mkwrapper is known to produce a
lot of CPU load thanks to Python and polling. E.g. on the BeagleBone about 40%
with 50ms poll interval.

For what type of machine do you intend to use it for? The preview is still in
an early stage and too accurate for 3D printer GCodes. Even on my notebook the
preview of a 100.000 lines GCode is very slow.

Regards
Alexander

GP Orcullo

unread,
Nov 29, 2014, 6:15:58 PM11/29/14
to Alexander Rössler, Machinekit Mailing List
On Sun, Nov 30, 2014 at 1:11 AM, Alexander Rössler
<mail.ar...@gmail.com> wrote:
> On Saturday 29 November 2014 11:58:17 you wrote:
>> Is it normal for the Cetus to run at >90% cpu? When I run the
>> splash.ngc, the UI hangs but to debug output is busy displaying the
>> position info.
> No, do you have a accelerated graphics driver installed on your RaspberryPi?

I can run the cinematic demo
(https://www.youtube.com/watch?v=wulbR2R1GpM) with no issues. But
clicking on the preview plane crashes the program. There's no error on
the console even if the debug config is set.

> Also is mkwrapper running on the same machine? Mkwrapper is known to produce a
> lot of CPU load thanks to Python and polling. E.g. on the BeagleBone about 40%
> with 50ms poll interval.
>

Mkwrapper is running on a separate vm.

I thought polling is now fixed, running both on RPi causes Cetus to
frequently disconnect.

> For what type of machine do you intend to use it for? The preview is still in
> an early stage and too accurate for 3D printer GCodes. Even on my notebook the
> preview of a 100.000 lines GCode is very slow.
>

None at the moment. I'm just excited to test your work :)

> Regards
> Alexander
>
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/machinekit.
> For more options, visit https://groups.google.com/d/optout.



--
GP Orcullo

Alexander Rössler

unread,
Nov 30, 2014, 7:45:59 AM11/30/14
to GP Orcullo, Machinekit Mailing List
On Sunday 30 November 2014 07:15:57 GP Orcullo wrote:
> On Sun, Nov 30, 2014 at 1:11 AM, Alexander Rössler
>
> <mail.ar...@gmail.com> wrote:
> > On Saturday 29 November 2014 11:58:17 you wrote:
> >> Is it normal for the Cetus to run at >90% cpu? When I run the
> >> splash.ngc, the UI hangs but to debug output is busy displaying the
> >> position info.
> >
> > No, do you have a accelerated graphics driver installed on your
> > RaspberryPi?
> I can run the cinematic demo
> (https://www.youtube.com/watch?v=wulbR2R1GpM) with no issues. But
> clicking on the preview plane crashes the program. There's no error on
> the console even if the debug config is set.
Performance-wise it should be fine then. Is the debugging option still enabled
in QtQuickVcp? It can significantly decrease the performance.

> > Also is mkwrapper running on the same machine? Mkwrapper is known to
> > produce a lot of CPU load thanks to Python and polling. E.g. on the
> > BeagleBone about 40% with 50ms poll interval.
>
> Mkwrapper is running on a separate vm.
>
> I thought polling is now fixed, running both on RPi causes Cetus to
> frequently disconnect.
Polling will be fixed once we replace mkwrapper. Mkwrapper is "only" the step
from a local setup to Machinetalk.

Still it is better to have single poller that uses 40% of CPU time instead of
Axis using 90% of CPU time with a bigger cycle time even if Preview is
disabled. Another advantage is that you can run more than one remote user
interface at the same time. The CPU usage will be the same since polling
happens only in mkwrapper.

>
> > For what type of machine do you intend to use it for? The preview is still
> > in an early stage and too accurate for 3D printer GCodes. Even on my
> > notebook the preview of a 100.000 lines GCode is very slow.
>
> None at the moment. I'm just excited to test your work :)
Good.

Marius Alksnys

unread,
Nov 30, 2014, 2:57:51 PM11/30/14
to machi...@googlegroups.com
Yes, you where right, I was using older image.
Thank you, now I managed to start some config with Cetus and Machineface.
But had to disable hdmi and no luck running pru-generic for pwms and stepgens as earlier.

Is it possible to get some full sample configs for Cetus, Machineface? Hal part is usual for me. But he opposite with BB specific setup and launch scripts, capes, overlays..

Cetus and Machineface looks distorted on Samsung Galaxy S3, S4 and Goclever Orion 97 tablet.

2014 m. lapkritis 25 d., antradienis 13:00:01 UTC+2, Alexander Rössler rašė:
...

Alexander Rössler

unread,
Nov 30, 2014, 4:47:12 PM11/30/14
to machi...@googlegroups.com, Marius Alksnys
On Sunday 30 November 2014 11:57:51 Marius Alksnys wrote:
> Yes, you where right, I was using older image.
> Thank you, now I managed to start some config with Cetus and Machineface.
> But had to disable hdmi and no luck running pru-generic for pwms and
> stepgens as earlier.
The path of the PRU blob may have changed. Take a look at the variables in the
INI file and hal file.

> Is it possible to get some full sample configs for Cetus, Machineface? Hal
> part is usual for me. But he opposite with BB specific setup and launch
> scripts, capes, overlays..
Here is one https://github.com/thecooltool/Uni-print-3D

> Cetus and Machineface looks distorted on Samsung Galaxy S3, S4 and Goclever
> Orion 97 tablet.
Can you please take some screen-shots.

Regards
Alexander

Alexander Rössler

unread,
Dec 1, 2014, 3:16:43 PM12/1/14
to Marius Alksnys, machi...@googlegroups.com
On Monday 01 December 2014 22:08:26 you wrote:
> But what limits it to run on smaller ones? Display resolution might be the
> key requirement, not actual size, IMHO.
> S4 has Full HD resolution, why Cetus can't run on it?
Because size of UI components is not dependent on screen resolution. A button
on Android phone is the same size as on a Android tablet. The tablet is 10"
but the phone only 4". Therefore it would be necessary to design a completely
different UI for small screens. This is usually done with different UIs. Feel
free to create a mobile UI if you want. It's not that hard, QtQuickVcp has all
the relevant features.

PS: Please answer the mails with "answer all" or else the message is not
posted in the mailing list.

Regards
Alexander

Marius Alksnys

unread,
Dec 1, 2014, 11:57:49 PM12/1/14
to machi...@googlegroups.com, marius....@gmail.com
Thanks, now your config runs. But for me to be able to create my own configs I need halshow or similar tool working..
halshow 
halsh: FATAL - 'MACHINEKIT_INI' missing in environment
Segmentation fault

And behaviour is the same even when I set MACHINEKIT_INI=/etc/linuxcnc/machinekit.ini

Alexander Rössler

unread,
Dec 2, 2014, 4:36:01 AM12/2/14
to machi...@googlegroups.com
On Monday 01 December 2014 20:57:49 Marius Alksnys wrote:
> Thanks, now your config runs. But for me to be able to create my own
> configs I need halshow or similar tool working..
> halshow
> halsh: FATAL - 'MACHINEKIT_INI' missing in environment
> Segmentation fault
>
> And behaviour is the same even when I set
> MACHINEKIT_INI=/etc/linuxcnc/machinekit.ini
It should not be necessary to set the MACHINEKIT_INI environment variable.
Please open an issue for that https://github.com/machinekit/machinekit/issues
so we can fix it.

To view a running hal configuration. You can use the command line tool halcmd:
http://www.linuxcnc.org/docs/2.4/html/man/man1/halcmd.1.html

e.g. "halcmd show pin comp" shows the pins of all HAl components with comp in
the name.

Brandon Heller

unread,
Jan 3, 2015, 5:25:27 AM1/3/15
to machi...@googlegroups.com
I just wanted to say that I was able to run use your instructions to see Machineface and actually run a print, using the precompiled Machinekit client on OS X, to a configserver running on a BBB, within a few minutes.  Very nice!   This shows tons of promise.  Looks like it adds stuff like fan-speed settings and temp graphs that are effectively requirements for 3d printing but missing in axis.

The right-side stuff all showed 0's, but I think I just need to copy the relevant stuff from the bottom of 

... and I imagine things will then work.  I can see making a customized version of this for Delta users; most of the current interface doesn't work well there.  For example, moving Z moves the Z tower, not the effector up and down in the Z.  

Very cool...

On Monday, November 17, 2014 1:53:56 PM UTC-8, Alexander Rössler wrote:
I am very happy to announce that I can finally present the first two
QtQuickVcp based user interfaces.

Machineface: https://github.com/strahlex/Machineface
and
Cetus: https://github.com/strahlex/Cetus

Machineface is especially designed to work on small screens (7 inch tablets)
to control 3D printers.

Cetus is something similar to Axis, but also works nicely on 10 inch tablets.

I have described instructions for testing here:
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper

The "Machinekit-Client" is available as binary distribution for Linux,
Windows, Mac and Android. It also works on iOS, but I have no idea how to
deploy besides the Apple App Store (which I will do some time in the future).

You do not need anything besides a text editor to modify the user interfaces
so feel free to modify and improve them. However, a QtQuickVcp development
environment might be useful if you want to create your own (which is very
easy).

My video recorder (a.k.a. my smartphone) is not willing to work today so I can
not make a video yet.

Please test, contribute and discuss.

Regards
Alexander

Brandon Heller

unread,
Jan 3, 2015, 9:45:45 PM1/3/15
to machi...@googlegroups.com
I'm currently stuck trying to get the right-side widgets (temp mess, temp set, fan control) to function properly.  All the motion stuff was fine.

For example, I would like to see the extruder temp.  For me, e0’s temp is defined and within the right range, but shows as 0 in the display.


machinekit@beaglebone:~/Machineface$ halcmd show | grep e0.temp.meas

   602  float OUT      30.87467  Therm.temp0 0.000010 0 ==> e0.temp.meas

   528  float IN       30.87467  pid.0.feedback 0.000010 0 <== e0.temp.meas

   720  float IN              0  printerui.e0.temp.meas 0.000010 0

float      30.87467  e0.temp.meas


Presumably this is because it's not connected correctly via the .ini file.   So I added a few lines from the bottom of:

# Printer UI remote component

newcomp printerui timer=100 acceptdefaults

newpin printerui printerui.e0.temp.meas float in

ready printerui

net e0.temp.meas => printerui.e0.temp.meas


... after the instructions from https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper directed me there.  The config started as what you see here:


I can start the config.py file as described after these few additions, but then the right-side stuff is grayed out.

Here's what prints to the serial console after doing that:


machinekit@beaglebone:~$ [   66.807772] c_can_platform 481cc000.d_can: invalid resource

[   66.814459] c_can_platform 481d0000.d_can: invalid resource

[  120.524557] INFO: task modprobe:528 blocked for more than 60 seconds.

[  120.531479] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

[  120.539787] Kernel panic - not syncing: hung_task: blocked tasks

[  120.546114] [<c000f649>] (unwind_backtrace+0x1/0x8c) from [<c046d483>] (panic+0x67/0x160)

[  120.554728] [<c046d483>] (panic+0x67/0x160) from [<c005bc5f>] (watchdog+0x143/0x190)

[  120.562910] [<c005bc5f>] (watchdog+0x143/0x190) from [<c003d89d>] (kthread+0x61/0x74)

[  120.571180] [<c003d89d>] (kthread+0x61/0x74) from [<c000c2fb>] (ret_from_fork+0x13/0x38)

[  120.579713] drm_kms_helper: panic occurred, switching back to text console


Also when I went to Ctrl-C the config.py program, it would keep printing stuff like this:


halcmd: the rtapi:0 RT demon is not running - please investigate /var/log/linuxcnc.log

halcmd: the msgd:0 logger demon is not running - please investigate /var/log/linuxcnc.log


... and yields errors when trying to restart.  How do you reload the interface after making a change?  Wrapping the while True loop in a try-except block and running launcher.end_session() did nothing.  Eventually the messages stop, but only after printing the same one a number of times, and then I see 'Cleanup done' print out.


Do you have any instructions that describe the additions needed to get this stuff working with Machineface?


---


Other questions:


(1) Are there any standards (or at least documented conventions) for naming?


e.g.: 

hb.temp.meas

vs

CRAMPs bed.temp.meas


That's going to be annoying for others in the future.  Standard signal naming for common 3d printer stuff across all configs would be pretty cool.


(2) What is the encoding of the qml files?  I can seem to save them without changing them with Eclipse RSE, although vim shows them just fine.


(3) The Machinekit client shows “no connection available” for a second or two before it shows the available instances.


(4) When Ctrl-C’ing the server the first time (on Mac), I got a segfault from the _client_.  If it happens again, I'll save the stack trace.

(5) After clicking on Local -> Service Display, I don’t see a way to go back; have to exit the app to see anything else.

(6) When clicking the temp toggle, saw this message:


emc/task/emctask.cc 389: interp_error: M code greater than 199: M204

M code greater than 199: M204


What version of MK should I be using with Machinetalk?


(7) What is mkwrapper?  I referened it in the .ini, and I see it in the instructions, but I have no idea what it is. 


---

Thanks,

Brandon

Jonathan Cohen

unread,
Jan 5, 2015, 1:34:41 AM1/5/15
to machi...@googlegroups.com
I have set up a 512 mb swap on the sd card but still run into problems with files greater than ~18 mb where linuxcnc crashes!  So does using either of the QtQuickVcp interfaces get around the out-of-memory problems when loading a large g-code file.  Is this an alternative to implementation of octoprint to get around the axis-memory hog?

schoo...@btinternet.com

unread,
Jan 5, 2015, 3:58:32 AM1/5/15
to machi...@googlegroups.com
Hi

Have you tried the work around? 18MB does not seem very big, previous
reports were > 70MB

See the discussion here
https://groups.google.com/forum/#!topicsearchin/machinekit/memory/machinekit/xN_nHGH-Czo

If using Axis with MK, you can save memory by disabling preview as noted
therein

The coded version with an ini file switch is here
mgwareDOTcoDOTuk > Axis Modifications > DisablePreview

regards
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io
> github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google
> Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to machinekit+...@googlegroups.com
> <mailto:machinekit+...@googlegroups.com>.

Alexander Rössler

unread,
Jan 5, 2015, 7:05:51 AM1/5/15
to machi...@googlegroups.com, Brandon Heller
Great to hear that you got Machineface running. I released the last build for
OS X quite some time ago and some things you describe have already been fixed.
I will update the builds in the next few days.

Do not spend too much time in implementing HAL remote components, I am working
on a more generic solution. https://github.com/strahlex/Machinekit-FDM-Standard/

I think I should be able to finish the most important parts this week.

Regards
Alexander

On Saturday 03 January 2015 18:45:45 Brandon Heller wrote:
> *I'm currently stuck trying to get the right-side widgets (temp mess, temp
> set, fan control) to function properly. * All the motion stuff was fine.
> *Other questions:*

Alexander Rössler

unread,
Jan 5, 2015, 7:16:42 AM1/5/15
to machi...@googlegroups.com, Brandon Heller
On Saturday 03 January 2015 18:45:45 Brandon Heller wrote:
> 1) Are there any standards (or at least documented conventions) for naming?
>
> e.g.:
> hb.temp.meas
> vs
> CRAMPs bed.temp.meas
>
> That's going to be annoying for others in the future. Standard signal
> naming for common 3d printer stuff across all configs would be pretty cool.
As already mentioned I work on defining a common standard the 3D printing
stuff.
>
> (2) What is the encoding of the qml files? I can seem to save them without
> changing them with Eclipse RSE, although vim shows them just fine.
Probably UTF-8. Qt-Creator is the preferred editor.
>
> (3) The Machinekit client shows “no connection available” for a second or
> two before it shows the available instances.
That's okay so far. If you find it annoying please create a issue on GitHub.

>
> (4) When Ctrl-C’ing the server the first time (on Mac), I got a segfault
> from the _client_. If it happens again, I'll save the stack trace.
I have seen that but not investigated yet.

>
> (5) After clicking on Local -> Service Display, I don’t see a way to go
> back; have to exit the app to see anything else.
The Backspace key brings you back. There should be a menu or something easier
to find.

>
> (6) When clicking the temp toggle, saw this message:
>
> emc/task/emctask.cc 389: interp_error: M code greater than 199: M204
> M code greater than 199: M204
Machineface implemented the remapped MCodes I used on my printer. This will be
soon more RepRap compatible, however the UI element that sets the temperature
will not use MCodes anyway in the future.
>
> What version of MK should I be using with Machinetalk?
The latest. Especially the 3D printing parts are under heavy development and
may change very often.
>
> (7) What is mkwrapper? I referened it in the .ini, and I see it in the
> instructions, but I have no idea what it is.
A wrapper around the Python linuxcnc module. Basically a Machinetalk version
of the axis command. It announces the relevant services on the network (can
also be a loopback device) but does not publish any user interface. QtQuickVcp
is one (and currently the most functional) user interface implementation for
Machinetalk.

Alessandro Torre

unread,
Feb 6, 2015, 9:10:00 AM2/6/15
to machi...@googlegroups.com
Great Work Alexander!
Now I can send in streaming big g_codes from an android tablet to my beaglebone black and CRAMPS cape.
I'm not expert of Informatic's stuff, and so I would ask to you how I can view on client the temperature feature in machineface that I can't see, and there is an opportunity to send a video from a webcam connected to the bbb?

Thank you in advance
Regards
Alessandro

Alexander Rössler

unread,
Feb 8, 2015, 12:11:14 PM2/8/15
to machi...@googlegroups.com, Alessandro Torre
To use the temperature feature you have to create a HAL remote component in
your CRAMPS configuration. See https://github.com/strahlex/Machinekit-FDM-Standard/blob/master/HAL.md#hbp-hbc-and-extruders and net the corresponding
signals to your temperature control.

Sending video from a webcam is also possible using a modified version of
mjpeg-streamer https://github.com/strahlex/mjpeg-streamer
You need to build and install mjpeg-streamer-experimental and then run the
python script in videoserver. However, I have not yet added the component to
Machineface. To test it you can try Cetus, it has a webcam tab.

-
Alexander

Alessandro Torre

unread,
Feb 17, 2015, 6:15:52 PM2/17/15
to machi...@googlegroups.com, alessandr...@gmail.com
Someone can help me to do this "netting"? Here I share my CRAMPStalk configurations. 
For run the machinetalk I run:

./CRAMPStalk.py 
ARM.BeagleBone.CRAMPStalk.rar

emil...@gmail.com

unread,
Mar 23, 2015, 6:05:09 PM3/23/15
to machi...@googlegroups.com, alessandr...@gmail.com
I am trying to develop with QtCreator.
My virtual machine is Debian Wheezy Machinekit on VirtualBox.

Working on a MachineFace source copy

Imports relative to
import Machinekit.Application 1.0
import Machinekit.Application.Controls 1.0
fail
while other imports as
import Machinekit.Controls 1.0
import Machinekit.PathView 1.0
are ok.

What is my error?
Thank'you in advance.
     Emilio Pepe
 

emil...@gmail.com

unread,
Mar 23, 2015, 6:28:57 PM3/23/15
to machi...@googlegroups.com, alessandr...@gmail.com
In my folder home/machinekit/bin/Qt/5.3/gcc_64/qml/Machinekit
I found 
Controls
HalRemote
PathView
and
VideoView

How can i find other packages?

Alexander Rössler

unread,
Mar 24, 2015, 8:10:12 AM3/24/15
to emil...@gmail.com, machi...@googlegroups.com, alessandr...@gmail.com
What version of QtQuickVcp are you using? How did you install it?

Looks like you are running an old version that does not include the
Application libraries.

Regards
Alexander

Frederic RIBLE

unread,
Mar 28, 2015, 11:53:48 AM3/28/15
to machi...@googlegroups.com, emil...@gmail.com, alessandr...@gmail.com
Hello,

  I had this issue with the same VM image coming from https://github.com/strahlex/MachinekitSDK/wiki/Getting-Started-with-the-Machinekit-SDK#using-the-machinetalk-preview-virtualbox-image

Solved after fresh installation of QtQuickVcp from git.
But now, when I click the Design button on Machineface/Machineface.qml file, I have the following error message:
"Qt Quick emulation layer crashed (1:0)".

I really would like to edit the Machineface GUI to add toolchange buttons, but I am puzzled with my newbie status on Qt !
Any clue ?

Thanks.
Frederic;

Alexander Rössler

unread,
Mar 28, 2015, 12:42:11 PM3/28/15
to Frederic RIBLE, machi...@googlegroups.com, emil...@gmail.com, alessandr...@gmail.com

Frederic RIBLE writes:

> Hello,
>
> I had this issue with the same VM image coming from
> https://github.com/strahlex/MachinekitSDK/wiki/Getting-Started-with-the-Machinekit-SDK#using-the-machinetalk-preview-virtualbox-image
>
> Solved after fresh installation of QtQuickVcp from git.
> But now, when I click the Design button on Machineface/Machineface.qml
> file, I have the following error message:
> "Qt Quick emulation layer crashed (1:0)".
Sometimes the GUI editor has problems displaying complex user
interfaces. Its in general easier to edit them in the code. This has
also the advantage that you do not need QtCreator or an installation of
the development tools at all.
>
> I really would like to edit the Machineface GUI to add toolchange buttons,
> but I am puzzled with my newbie status on Qt !
> Any clue ?
For a start add another Button in the ExtrasTab
https://github.com/strahlex/Machineface/blob/master/Machineface/ExtrasTab.qml#L41
The MCode code for tool changing is T0, T1 and so on. Advanced tool
changing functionality like a tool table editor are not implemented yet.

>
> Thanks.
> Frederic;
>
> Le mardi 24 mars 2015 13:10:12 UTC+1, Alexander Rössler a écrit :
>>
>> What version of QtQuickVcp are you using? How did you install it?
>>
>> Looks like you are running an old version that does not include the
>> Application libraries.
>>
>> Regards
>> Alexander
>>
>>
>>

--
Alexander Rössler

Frederic RIBLE

unread,
Mar 28, 2015, 2:35:08 PM3/28/15
to machi...@googlegroups.com, fri...@teaser.fr, emil...@gmail.com, alessandr...@gmail.com
Ok, thank you. I will try to edit the qml code!
My goal is to achieve  same level of features as gmoccapy I use successfully  for another machine.
Frederic (http://cnc.f1oat.org).

emil...@gmail.com

unread,
Mar 31, 2015, 4:49:19 PM3/31/15
to machi...@googlegroups.com, fri...@teaser.fr, emil...@gmail.com, alessandr...@gmail.com
I installed from scratch a VirtualBox Machine based on Debian 7.8 Wheezy.
    I put in it Qt 5.4.1 (GCC 4.6.1, 64 bit)
   After git cloning of machinekit, QtQuickVcp and Machineface (and Cetus)  I had not more error on import Machinekit.*
 But rebuilding all I receive a:
protoc: command not found
I tried to download protobuf-c but there is no Qt project. 
How can I build protoc?

My target is to extend Machineface.

emil...@gmail.com

unread,
Mar 31, 2015, 5:39:54 PM3/31/15
to machi...@googlegroups.com, fri...@teaser.fr, emil...@gmail.com, alessandr...@gmail.com
 Reading
in last steps

./configure

I meet the same problem. Where is protobuf package?
 
configure: error: Package requirements (protobuf > 2.4.0) were not met: No package 'protobuf' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PROTOBUF_CFLAGS and PROTOBUF_LIBS to avoid the need to call pkg-config.

Michael Haberler

unread,
Mar 31, 2015, 6:52:33 PM3/31/15
to emil...@gmail.com, Machinekit Mailing List, Frederic RIBLE, alessandr...@gmail.com

> Am 31.03.2015 um 23:39 schrieb emil...@gmail.com:
>
> Reading
> http://www.machinekit.io/docs/building-from-source/
> in last steps
>
> ./configure
>
> I meet the same problem. Where is protobuf package?

it is installed in by scripts/apt-installbuilddeps - see section 'Then proceed to the main event'

The UI code uses the same library. So install machinekit from source first, and once this works, proceed to the UI build

-m

>
> configure: error: Package requirements (protobuf > 2.4.0) were not met:
> No package 'protobuf' found
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
> Alternatively, you may set the environment variables PROTOBUF_CFLAGS
> and PROTOBUF_LIBS to avoid the need to call pkg-config.
>
>
> --
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
> ---
> You received this message because you are subscribed to the Google Groups "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.

emil...@gmail.com

unread,
Apr 1, 2015, 4:34:14 PM4/1/15
to machi...@googlegroups.com, emil...@gmail.com, fri...@teaser.fr, alessandr...@gmail.com
All works fine.

Thankyou Michael.

Ali Kaylan

unread,
Apr 4, 2015, 10:12:35 AM4/4/15
to machi...@googlegroups.com, fri...@teaser.fr, emil...@gmail.com, alessandr...@gmail.com
Alexander;

Cetus has been working fine on Mac OS X machinekit-client. But everytime I try to use machineface "QML Error: Loading QML file failed". How do I resolve this issue? Also, I noticed the mac client binary seems to be from November, missing perhaps some of the updates. Would it be possible to update it soon? Thanks.

Ali
Message has been deleted

Charles Steinkuehler

unread,
Apr 4, 2015, 11:11:29 PM4/4/15
to machi...@googlegroups.com
You need to run a configuration with machinetalk as the display and
launch a configuration server that serves up the display(s) you wish to
support. I have an example configuration I used at the MRRF in github:

https://github.com/cdsteinkuehler/machine-configs/tree/master/configs/ARM.BeagleBone.CRAMPS

...run the MendelMax.Remote.py script to launch everything. You'll need
to clone the Cetus and Machineface UIs from Alexander's github repo in
order for the config server to work properly. Holler if you can't
figure something out.

This doesn't run the live video server, I've only done that with the HAL
Machinetalk UI demo. I'm not sure if it's supported for the Machinetalk
UI's at the moment. The HAL Machinetalk demo I used is in the same
github repo:

https://github.com/cdsteinkuehler/machine-configs/tree/master/led-demo

...run "rundemo.py -c -v" to get it running with video streaming. You
will need to build Alex's mjpeg streamer code to get video working:

https://github.com/strahlex/mjpeg-streamer

On 4/4/2015 8:08 PM, Doug LaRue wrote:
> so I'm running the latest image 03/15/15 of Machinekit, enabled haltalk in
> my hal and ini files, installed QtQuickVcp on my laptop ( Ubuntu 14.04 )
> and started both. I can see the printer but how does one run the apps in
> QtQuickVcp?
>
> For the heck of it I also downloaded and ran the vitualbox VM image but it
> too does not seem to have any apps to run. I ran the
> run_qtquickvcp_install.sh but could not find any QtQuickVcp executable file
> to run.
>
> There is a 3D printer meetup on Monday night and since I've got my Mini
> Kossel running Machinekit/CRAMPS I thought I'd try to show a remote
> display and maybe a camera on the BBB even though it would be tied/run over
> the USB network. ie no wifi running on the BBB yet. I know I can run Axis
> over remote X but I hope to show what's possible with other devices.
>
> Any better HowTo's out there? Thanks.
>
> Doug
>


--
Charles Steinkuehler
cha...@steinkuehler.net

Doug LaRue

unread,
Apr 5, 2015, 1:25:25 AM4/5/15
to machi...@googlegroups.com
I deleted my previous post because I got it running. I'd missed where I had to git clone both Cetus and/or Machineface in the BBB/Machinekit system. I'd thought the client display code resided on the client. Awesome that it resides on the server BTW.  Now to figure out how to tweak it so that it works better with a delta. Moving one of the motors on the towers or worst, homing just one is either boring or hair raising.

I tried to get the web cam stuff working but compiling mjpeg-streamer was a PIA and then I tried three different USB web cams without any luck. The picture plugin worked though...

Doug

Alexander Rössler

unread,
Apr 5, 2015, 2:25:16 PM4/5/15
to Ali Kaylan, machi...@googlegroups.com, fri...@teaser.fr, emil...@gmail.com, alessandr...@gmail.com
Ali,

Yes the Mac image is pretty old. At the moment I am working on a
Buildbot for QtQuickVcp and my other Qt project. Linux and Mac works so
far. You can find a newer image here:
http://buildbot.roessler.systems/files/machinekit-client/

-
Alexander

Alexander Rössler

unread,
Apr 5, 2015, 2:29:56 PM4/5/15
to emil...@gmail.com, machi...@googlegroups.com, fri...@teaser.fr, alessandr...@gmail.com
Please take a look at this install script:
https://gist.github.com/strahlex/e4b9137710e23723ab7a

I would suggest resetting your VM and using this script to install
QtQuickVcp if possible. Alternatively you can try executing the apt-get
steps. They should also install the protoc binary that is
missing. (protoc-c is the C protobuf compiler, we need the C++/Python
protobuf compiler)
-
Alexander

Alexander Rössler

unread,
Apr 5, 2015, 2:31:09 PM4/5/15
to emil...@gmail.com, machi...@googlegroups.com, fri...@teaser.fr, alessandr...@gmail.com
Seems like John repo is missing. As already suggested try to execute the
first few steps of my install script.

emil...@gmail.com writes:

>>
>> Reading
>>
> http://www.machinekit.io/docs/building-from-source/
> in last steps
>
> ./configure
>
> I meet the same problem. Where is protobuf package?
>
> *configure: error: Package requirements (protobuf > 2.4.0) were not met: No
> package 'protobuf' found Consider adjusting the PKG_CONFIG_PATH environment
> variable if you installed software in a non-standard prefix. Alternatively,
> you may set the environment variables PROTOBUF_CFLAGS and PROTOBUF_LIBS to
> avoid the need to call pkg-config. *

--
Alexander

Alexander Rössler

unread,
Apr 5, 2015, 2:38:11 PM4/5/15
to Doug LaRue, machi...@googlegroups.com

Doug LaRue writes:

> I deleted my previous post because I got it running. I'd missed where I had
> to git clone both Cetus and/or Machineface in the BBB/Machinekit system.
> I'd thought the client display code resided on the client. Awesome that it
> resides on the server BTW. Now to figure out how to tweak it so that it
> works better with a delta. Moving one of the motors on the towers or worst,
> homing just one is either boring or hair raising.
QML code on the server side is part of the concept. The idea is that you
only need a single client for all UIs. This allows customized UIs
without the hassle of deploying Qt applications (I will do that for
you).

>
> I tried to get the web cam stuff working but compiling mjpeg-streamer was a
> PIA and then I tried three different USB web cams without any luck. The
> picture plugin worked though...
I have to say that is not very good documented. Maybe you have just
installed the wrong version of mjpeg-streamer. Please try this version:
https://github.com/strahlex/mjpeg-streamer

The mjpeg-streamer-experimental to be exact. See the README


--
Alexander

Alexander Rössler

unread,
Apr 5, 2015, 2:45:57 PM4/5/15
to Doug LaRue, machi...@googlegroups.com
Doug LaRue writes:

> so I'm running the latest image 03/15/15 of Machinekit, enabled haltalk in
> my hal and ini files, installed QtQuickVcp on my laptop ( Ubuntu 14.04 )
> and started both. I can see the printer but how does one run the apps in
> QtQuickVcp?
The UI resides on the server side. You have to clone the user interfaces
(Cetus and Machineface) to the home directory on BBB.
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper#cloning-the-user-interfaces

You also need a run script:
https://github.com/strahlex/QtQuickVcp/wiki/Testing-mkwrapper#create-a-run-script

Take a look at the line that starts the configserver. You see the
configserver executable is called with the directories where the user
interfaces reside on the host.

>
> For the heck of it I also downloaded and ran the vitualbox VM image but it
> too does not seem to have any apps to run. I ran the
> run_qtquickvcp_install.sh but could not find any QtQuickVcp executable file
> to run.
The image is very old. If you want to use a VM for development I would
suggest creating a new one and using this script:
https://gist.github.com/strahlex/e4b9137710e23723ab7a
Sorry for the inconvenience. Maintaining all this stuff is hard work and
I have no automated way for creating a VM yet.

>
> There is a 3D printer meetup on Monday night and since I've got my Mini
> Kossel running Machinekit/CRAMPS I thought I'd try to show a remote
> display and maybe a camera on the BBB even though it would be tied/run over
> the USB network. ie no wifi running on the BBB yet. I know I can run Axis
> over remote X but I hope to show what's possible with other devices.
Hope it will work. Sorry for my late response. WiFi is easiest to
configure using either ap-hotspot if you want to create a hotspot (only
few wifi dongle work well) or using wicd-curses.
See https://github.com/strahlex/asciidoc-sandbox/wiki/Creating-a-Machinekit-Debian-Image#step-11-wifi
>
> Any better HowTo's out there? Thanks.
>
> Doug

--
Alexander Rössler

Alexander Rössler

unread,
Apr 5, 2015, 2:49:09 PM4/5/15
to Charles Steinkuehler, machi...@googlegroups.com

Charles Steinkuehler writes:

> I'm not sure if it's supported for the Machinetalk
> UI's at the moment.
Machineface has a video Tab.

The video feature is not very mature at the
moment. If someone has a good solution for streaming videos from
embedded Linux devices I would be interested.

-
Alexander

Doug LaRue

unread,
Apr 5, 2015, 2:53:15 PM4/5/15
to machi...@googlegroups.com, doug....@gmail.com

On Sunday, April 5, 2015 at 11:38:11 AM UTC-7, Alexander Rössler wrote:

Doug LaRue writes:

> I deleted my previous post because I got it running. I'd missed where I had
> to git clone both Cetus and/or Machineface in the BBB/Machinekit system.
> I'd thought the client display code resided on the client. Awesome that it
> resides on the server BTW.  Now to figure out how to tweak it so that it
> works better with a delta. Moving one of the motors on the towers or worst,
> homing just one is either boring or hair raising.
QML code on the server side is part of the concept. The idea is that you
only need a single client for all UIs. This allows customized UIs
without the hassle of deploying Qt applications (I will do that for
you).

Back in the 90's I was doing some VAX to PC coding for a healthcare system and came up with the idea of mapping VT screen IO elements stored in the database to a GUI which only created the display elements needed and changed as the server changed. I got about half way through when I read about MOSAIC. Dropped my custom version and build a web server to feed HTML instead. I love the idea of UI code residing on the server/service and the client having a generic viewer/renderer!


>
> I tried to get the web cam stuff working but compiling mjpeg-streamer was a
> PIA and then I tried three different USB web cams without any luck. The
> picture plugin worked though...
I have to say that is not very good documented. Maybe you have just
installed the wrong version of mjpeg-streamer. Please try this version:
https://github.com/strahlex/mjpeg-streamer

The mjpeg-streamer-experimental to be exact. See the README

Ah, the experimental one. Will try that one then. BTW, what zmq libary is needed? There are two, a light weight one and then a fuller C one? libzmq-dev, libczmq-dev or even python-zmq?

Doug


--
Alexander

Doug LaRue

unread,
Apr 5, 2015, 3:06:40 PM4/5/15
to machi...@googlegroups.com
I did a git pull of mjpeg-streamer and saw the new README but that was all. Ran/checked the system(apt-get update,upgrade) and didn't see anything new yet still get an error compiling mjpg-streamer-experimental related to zmq and looks like a version issue since often argument lists change on versions:
"output_zmqserver.c:362:17: error: too many arguments to function ‘zmq_send’"

Alexander Rössler

unread,
Apr 5, 2015, 3:14:23 PM4/5/15
to Doug LaRue, machi...@googlegroups.com
The C version. So protoc-c and libczmq-dev should work.
>
> Doug
>
>>
>>
>> --
>> Alexander
>>

--
Alexander

Alexander Rössler

unread,
Apr 5, 2015, 3:19:22 PM4/5/15
to Doug LaRue, machi...@googlegroups.com

Doug LaRue writes:

> I did a git pull of mjpeg-streamer and saw the new README but that was all.
> Ran/checked the system(apt-get update,upgrade) and didn't see anything new
> yet still get an error compiling mjpg-streamer-experimental related to zmq
> and looks like a version issue since often argument lists change on
> versions:
> "output_zmqserver.c:362:17: error: too many arguments to function
> ‘zmq_send’"
On the BBB with Debian Wheezy? Did you install libzmq4? Maybe you
accidentally installed the version of ZMQ that comes with Debian.

Try
sudo apt-get install libzmq4-dev libczmq-dev libprotobuf-dev libprotobuf-c0-dev protobuf-c-compiler
--
Alexander Rössler

Doug LaRue

unread,
Apr 5, 2015, 3:25:18 PM4/5/15
to machi...@googlegroups.com, doug....@gmail.com
On Sunday, April 5, 2015 at 12:19:22 PM UTC-7, Alexander Rössler wrote:

Doug LaRue writes:

> I did a git pull of mjpeg-streamer and saw the new README but that was all.
> Ran/checked the system(apt-get update,upgrade) and didn't see anything new
> yet still get an error compiling mjpg-streamer-experimental related to zmq
> and looks like a version issue since often argument lists change on
> versions:
> "output_zmqserver.c:362:17: error: too many arguments to function
> ‘zmq_send’"
On the BBB with Debian Wheezy? Did you install libzmq4? Maybe you
accidentally installed the version of ZMQ that comes with Debian.

Try
sudo apt-get install libzmq4-dev libczmq-dev libprotobuf-dev libprotobuf-c0-dev protobuf-c-compiler


Yes, Weezy but I did not have zmq4(libzmq4-def) installed.  That got me through the compiler issue. Thx.  boy is it painful waiting for the BBB to compile. Going to have to  enable the distcc stuff again and see how well it works on this.
  

Doug LaRue

unread,
Apr 5, 2015, 3:51:49 PM4/5/15
to machi...@googlegroups.com, doug....@gmail.com

Try
sudo apt-get install libzmq4-dev libczmq-dev libprotobuf-dev libprotobuf-c0-dev protobuf-c-compiler


Success! Video works in Machineface, not in Cetus. I started the videostreamer manually but will throw it into the python startup script.

OK, now I need to get my part fan adapter printed and mounted and then start tweeking Machineface to see about getting it more Delta friendly.

I'll bring my whole wrt54g AP if needed to make connecting easier(laptop and tablet).  Should make for a fun demo. Boy, I need to print a box for the BBB/CRAMPS too, it's ugly sitting on the side of the printer. Anyone seen/have a printable box for BBB./CRAMPS?

Michael Haberler

unread,
Apr 5, 2015, 4:21:02 PM4/5/15
to Doug LaRue, machi...@googlegroups.com

> Am 05.04.2015 um 20:53 schrieb Doug LaRue <doug....@gmail.com>:
>
> Ah, the experimental one. Will try that one then. BTW, what zmq libary is needed? There are two, a light weight one and then a fuller C one? libzmq-dev, libczmq-dev or even python-zmq?

That is admittedly confusing, and it took me a while to grasp the zeroMQ API maze.

libzmq is the foundation library, and is written in C++. It is rarely used directly.
libczmq is a very convenient C API ontop of libzmq. So a bit upside down.

For all the machinekit C code, you need both libraries, but libzmq is never used directly, only through libczmq.

pyzmq is for Python as the name suggests, and sits ontop of libzmq behind the scenes.
libmjpeg-streamer is pure C so pyzmq isnt applicable. The machinekit Python code uses pyzmq a lot.

- Michael


>
> Doug
>
>
> --
> Alexander

Doug LaRue

unread,
Apr 5, 2015, 4:21:16 PM4/5/15
to machi...@googlegroups.com
I tried these two and got errors. The app started but never saw anything but the splash and a blank frame. 




 

machinekit-client_0.9-4_linux_x86.tar.gz


machinekit-client_0.9-30_linux_x64.tar.gz

error:
qml: Starting to load the main application.
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method
qrc:///main.qml:40:1: module "QtKnobs" is not installed

Michael Haberler

unread,
Apr 5, 2015, 4:22:10 PM4/5/15
to Doug LaRue, machi...@googlegroups.com

> Am 05.04.2015 um 21:25 schrieb Doug LaRue <doug....@gmail.com>:
>
> On Sunday, April 5, 2015 at 12:19:22 PM UTC-7, Alexander Rössler wrote:
>
> Doug LaRue writes:
>
> > I did a git pull of mjpeg-streamer and saw the new README but that was all.
> > Ran/checked the system(apt-get update,upgrade) and didn't see anything new
> > yet still get an error compiling mjpg-streamer-experimental related to zmq
> > and looks like a version issue since often argument lists change on
> > versions:
> > "output_zmqserver.c:362:17: error: too many arguments to function
> > ‘zmq_send’"
> On the BBB with Debian Wheezy? Did you install libzmq4? Maybe you
> accidentally installed the version of ZMQ that comes with Debian.
>
> Try
> sudo apt-get install libzmq4-dev libczmq-dev libprotobuf-dev

These are not used in machinekit: libprotobuf-c0-dev protobuf-c-compiler

>
>
> Yes, Weezy but I did not have zmq4(libzmq4-def) installed. That got me through the compiler issue. Thx. boy is it painful waiting for the BBB to compile. Going to have to enable the distcc stuff again and see how well it works on this.
>
>
It is loading more messages.
0 new messages