These are chat archives for machinekit/machinekit

14th
Jun 2016
zhivko
@zhivko
Jun 14 2016 13:28
Hi guys anybody here? Is there something like make debug to get this debug symbols in builded artifacts ?
zhivko
@zhivko
Jun 14 2016 13:32
Thank you Bas - but am I really the first one who needs this? so there is no make debug?
I cannot imagine to change build scripts to get this debugging symbols inside... but maybe it is like that ?
Bas de Bruijn
@luminize
Jun 14 2016 13:33
although I’m not an experienced programmer, this seems to be standard linux stuff. Google is your friend
Michael Haberler
@mhaberler
Jun 14 2016 13:33
that is not needed. a build from source has debug syms.
zhivko
@zhivko
Jun 14 2016 13:33
ah ok - so just make and then make install ?
Bas de Bruijn
@luminize
Jun 14 2016 13:33
well, there you go :)
zhivko
@zhivko
Jun 14 2016 13:34
there are some other friends here better than google ;)
zhivko
@zhivko
Jun 14 2016 13:47
OK I am building machinekit on BBB, with latest sources from machinekit/machinekit
zhivko
@zhivko
Jun 14 2016 13:56
Maybe somebody knows do I need to do "make install" to put binaries to locations where they've been placed in image from @cdsteinkuhler ? For example machinekit in /usr/bin/machinekit ?
see the bashrc step at the end.
you do NOT need to 'make install' if scripts/rip-environment is sourced.
btw there is no reason whatsoever to do such dev work on a bb, I never do - I use a vbox debian vm on a mac
I only test on such targets - the build times are ridiculous
zhivko
@zhivko
Jun 14 2016 17:49
ughh... will try to setup vm later but now I got: ...
Reading 212/256 realtime dependency files
Done reading realtime dependencies
make[1]: Entering directory `/home/machinekit/git/machinekit/src'
Linking ../rtlib/xenomai/hal_pru_generic.so
objects/xenomai/hal/support/pru/prussdrv.o: file not recognized: File truncated
make[1]: *** [../rtlib/xenomai/hal_pru_generic.so] Error 1
make[1]: Leaving directory `/home/machinekit/git/machinekit/src'
make: *** [modules] Error 2
make: Leaving directory `/home/machinekit/git/machinekit/src'
Michael Haberler
@mhaberler
Jun 14 2016 17:50
you aborted a compile and an invalid .o file resulted. remove it
zhivko
@zhivko
Jun 14 2016 17:53
yes you are correct... build now continues
zhivko
@zhivko
Jun 14 2016 18:02
OK now build on BBB ended...
And yes I am following this page - but "rip-environment" this sounds like - I have some old thing - but yes i will add it to bashrc - as it is suggested there...
I am in a kind of hurry - I need to prepare some demo for a possible customer. ;) I will continue gdb stuf in evening.. after demo
evanmj
@evanmj
Jun 14 2016 18:31
Is this an appropriate place to ask a few high level questions about hardware choice and userspace program performance expectations?
Michael Haberler
@mhaberler
Jun 14 2016 18:31
sure
evanmj
@evanmj
Jun 14 2016 18:31
hi Michael...
Michael Haberler
@mhaberler
Jun 14 2016 18:31
list has more audience though
very few people here
evanmj
@evanmj
Jun 14 2016 18:31
I'll see if I can knock this out, and I'll sub to the list shortly
Hardware... for just "playing around" and getting used to some stuff... I have a 3d printer / mill running on an arudino based board, yet I want to play with machinekit and see what all I can get it to do.
So, with that in mind, I'm thinking about the beaglebone + cramps board
to do a full machinekit conversion
but the new rpi3 looks promising
with more processing power and built in wifi, etc.
Michael Haberler
@mhaberler
Jun 14 2016 18:33
1-line summary: forget it
evanmj
@evanmj
Jun 14 2016 18:33
forget machinekit for 3d printing?
Michael Haberler
@mhaberler
Jun 14 2016 18:34
no rpi3
evanmj
@evanmj
Jun 14 2016 18:34
ok
Michael Haberler
@mhaberler
Jun 14 2016 18:34
this is an 64bit arm, no rt-preempt kernels yet
and the hardware is still a joke
evanmj
@evanmj
Jun 14 2016 18:34
ahhhh
rpi1 was basically a joke as well imo
plus not true open kernel I belive
Michael Haberler
@mhaberler
Jun 14 2016 18:35
amen
evanmj
@evanmj
Jun 14 2016 18:35
Maybe I'll hold out for the X15 then
do you know if cramps will work on it?
Michael Haberler
@mhaberler
Jun 14 2016 18:35
not sure this is particularly competitive
I think the best platforms downstream will be the Altera and Zynq SoC/FPGA platforms
evanmj
@evanmj
Jun 14 2016 18:36
ok, I'll have a look at those as well
mostly due to realtime in the FPGAs?
Michael Haberler
@mhaberler
Jun 14 2016 18:36
yes, it is like a Mesanet card - all the hard stuff (pwmgen stepgen encoder etc) is done in the fpga
Michael has scoped a 1Mhz step signal without massaging
and the host CPU's basically are idle - and there are 2 cores
evanmj
@evanmj
Jun 14 2016 18:37
sweet. Is the ethernet hardware on them compatible with realtime EtherCAT?
Michael Haberler
@mhaberler
Jun 14 2016 18:37
both on Zynq and SoCFPGA
evanmj
@evanmj
Jun 14 2016 18:38
That is another thing I'm looking at implementing
Yet it seems the BBB needs an add-on card for true EtherCAT
Michael Haberler
@mhaberler
Jun 14 2016 18:38
you are aware that in a realistic ethercat setup you need separate ethernet ports for ec
evanmj
@evanmj
Jun 14 2016 18:39
dedicated, yes
but with wifi the tcp/ip can sit there
for many applications
Michael Haberler
@mhaberler
Jun 14 2016 18:39
do you have any EtherCAT peripherals to work with?
evanmj
@evanmj
Jun 14 2016 18:39
yessir
Michael Haberler
@mhaberler
Jun 14 2016 18:40
oh, ok
very few people have
evanmj
@evanmj
Jun 14 2016 18:40
not personal stuff, but I'm investigating using mk for industrial automation
Michael Haberler
@mhaberler
Jun 14 2016 18:40
that is another tombstone in the rpi space - ethernet-over-usb interfaces which are decidedly lame
evanmj
@evanmj
Jun 14 2016 18:40
I work at a small integrator that does custom robotics and manufacturing
Michael Haberler
@mhaberler
Jun 14 2016 18:41
in that case you'd be better off with a dual ethernet celeron board like the j1900's
evanmj
@evanmj
Jun 14 2016 18:41
(agreed), I was told rpi3 has real ethernet, but I've not confirmed
Michael Haberler
@mhaberler
Jun 14 2016 18:41
ah, very interesting
well I would seriously look into PC platforms and Mesanet cards then
it is still eth/usb AFAIK
evanmj
@evanmj
Jun 14 2016 18:42
k... last question
I just read the python documentation for the linuxcnc lib (your work I think)
Michael Haberler
@mhaberler
Jun 14 2016 18:42
and think of the verdict on Broadcom CPU's.. "one half of the instruction set isnt documented, and the other half doesn work ";)
ah linuxcnc lib... being what exactly?
evanmj
@evanmj
Jun 14 2016 18:43
It looks like I'd easily be able to implement something like an OpenCV guided pick and place demo
(one sec)
^ that one
So, I'm "assessing viability" of a machine that could run some python user space code to send the robot to various places
Michael Haberler
@mhaberler
Jun 14 2016 18:44
nope, that is the legacy interface to the CNC stack, I just reverse-engineered that doc from the code as there was none
evanmj
@evanmj
Jun 14 2016 18:44
Is there a better place to read up on the newer interfaces?
Michael Haberler
@mhaberler
Jun 14 2016 18:45
note there is significant progress on integrating ROS and HAL (not the CNC stack, gcode etc), this might be more fruitful to explore
the CNC stack is a f..g concrete jacket
evanmj
@evanmj
Jun 14 2016 18:45
yes, that ROS topic is actually how I found out about machinekit
I used linuxcnc 10 years ago maybe
so I'm happy to see it revived
Michael Haberler
@mhaberler
Jun 14 2016 18:46
Charles and Bas are looking into this - mostly Bas atm, also Yishin Li has done great stuff
evanmj
@evanmj
Jun 14 2016 18:46
I have a lot of catching up to do
Michael Haberler
@mhaberler
Jun 14 2016 18:46
A lot of what has happened is not or not well documented, and that is mostly my fault, but I'll get around to do it
evanmj
@evanmj
Jun 14 2016 18:47
Hah, you seem to be doing a lot as is
I've been following the meetings and such
Michael Haberler
@mhaberler
Jun 14 2016 18:47
I suggest talking to Bas and get up to speed with what he's doing
I have been braked down by this website thing for months
happy to advise from the sidelines but I am still busy with housekeeping stuff
evanmj
@evanmj
Jun 14 2016 18:48
Last question... the goal of machinekit is to branch out from "just CNC" to a wider range of machines, right?
Michael Haberler
@mhaberler
Jun 14 2016 18:48
then merge the multicore branch, then document it
well several really
we started out with the multi-platform/multi-kernel thing
evanmj
@evanmj
Jun 14 2016 18:49
I've longed for a linux PLC for a long time essentially, and mk looks close, especially as EtherCAT takes shape
Multi-core will be awesome as well
Michael Haberler
@mhaberler
Jun 14 2016 18:49
in particular we want to spin out HAL/RT and the remote messaging API into a standalone package without all the CNC legacy ontop
evanmj
@evanmj
Jun 14 2016 18:49
and distributed messaging
Michael Haberler
@mhaberler
Jun 14 2016 18:49
the CNC stack will remain but as a using layer
evanmj
@evanmj
Jun 14 2016 18:49
awesome
Michael Haberler
@mhaberler
Jun 14 2016 18:50
that is the tough nut for the rest of the year - splitting packages
evanmj
@evanmj
Jun 14 2016 18:50
I can't even imagine
I don't think I'm up to speed enough to help yet, but maybe some day soon
Oh...
evanmj
@evanmj
Jun 14 2016 18:51
I didn't quite get my question out.... I know this one is loaded a bit
If I were to write python code to move the machine and such
what sort of latency is there from your experience?
Michael Haberler
@mhaberler
Jun 14 2016 18:51
sure
evanmj
@evanmj
Jun 14 2016 18:51
I know it depends on tons of factors...
but can a *nix box (say even a p4 or something) keep a 1ms response time in python talking to HAL?
Michael Haberler
@mhaberler
Jun 14 2016 18:52
I think we need to talk about timing domains for a sensible answer
evanmj
@evanmj
Jun 14 2016 18:52
I don't need hard realtime, but I need something that is not taking "smoke breaks" for seconds at a time
Michael Haberler
@mhaberler
Jun 14 2016 18:52
the RT/HAL part is good for 1..maybe 10khZ
the FPGA part runs at 50+MHz so irrelevenat
evanmj
@evanmj
Jun 14 2016 18:52
right.
Michael Haberler
@mhaberler
Jun 14 2016 18:53
any feeder_ stuff like a trajectory is _not RT - the key requirement is that there's no queue underrun
which would translate into a stop in case that's fatal
evanmj
@evanmj
Jun 14 2016 18:53
with respect to CNC, yes
if you consider a pick and place requirement though, not a path constrained process really
Michael Haberler
@mhaberler
Jun 14 2016 18:54
but if you look at zeroMQ performance, it is easy to saturate a GB Ether on a PC with zeroMQ so zeroMQ as a remote feeder is not a bottleneck
certainly python is an order of magnitude slower, but I think still easily outruns the RT playout part
and then one can switch to C zeroMQ like haltalk does
evanmj
@evanmj
Jun 14 2016 18:55
Does the user land stuff always use zeroMQ to get to the HAL?
Is that where haltalk comes in?
I think I need to read up on it
Michael Haberler
@mhaberler
Jun 14 2016 18:56
remote - yes; the legacy CNC stack still works over NML, but a translation module is available (mkwrapper)
evanmj
@evanmj
Jun 14 2016 18:56
Okay, so my plan seems reasonable I think
Michael Haberler
@mhaberler
Jun 14 2016 18:56
haltalk provides a remote API into HAL scalars (pins, signals, comps) based on zeroMQ and protobuf
sure
evanmj
@evanmj
Jun 14 2016 18:57
I watched the talk on zeroMQ, protobuf, and haltalk but it has been a little while
Michael Haberler
@mhaberler
Jun 14 2016 18:57
QtQuickVCP is a UI haltalk client
evanmj
@evanmj
Jun 14 2016 18:57
I think I just need to grab some hardware and play around on my machine
Michael Haberler
@mhaberler
Jun 14 2016 18:57
plus gladevcp can do it remotely, too, just nobody used it
zhivko
@zhivko
Jun 14 2016 18:58
hands on is very much nedded to know better each layer...
Michael Haberler
@mhaberler
Jun 14 2016 18:58
Alex did pymachinetalk-client which is a remote HAL API based on python, able to talk to haltalk, but Alex might need a bit of massaging to share how I get it to work ;)
its very well written, just a readme touchup needed
evanmj
@evanmj
Jun 14 2016 18:58
okay, sounds good
Thanks for the pointers
Michael Haberler
@mhaberler
Jun 14 2016 18:59
I will ask him transfer it to the github machinekit organisation because we need a reference remote HAL user-side API
evanmj
@evanmj
Jun 14 2016 18:59
I'll check the prices on those fancy boards
Michael Haberler
@mhaberler
Jun 14 2016 18:59
we target below $100 ;)
evanmj
@evanmj
Jun 14 2016 19:00
good, I have kids to feed :P
Michael Haberler
@mhaberler
Jun 14 2016 19:00
the terasic DE0 nano as well as the MYIR z-turn are below $100
evanmj
@evanmj
Jun 14 2016 19:00
Both fully supported?
Michael Haberler
@mhaberler
Jun 14 2016 19:00
the problem isnt the host side, or mk, it is firmware configs and pinouts
you might want to watch the mk/socfpga issues
evanmj
@evanmj
Jun 14 2016 19:01
k, I'll check it out
Michael Haberler
@mhaberler
Jun 14 2016 19:02
I have terasic de0 images which run just fine, it's the firmware config space which is still somewhat soft ground
If you want to track the zynq work - @dkhughes is onto it and has it running already
we have not assembled everything into an SD image which is some serious timewaster to get right
especially automated with CI
evanmj
@evanmj
Jun 14 2016 19:03
I can imagine
Michael Haberler
@mhaberler
Jun 14 2016 19:03
we have that with the Altera SoCFPGA (mostly)
unfortunately we still need an arm build slave which is a PITA because docker on arm sucks
evanmj
@evanmj
Jun 14 2016 19:04
I'm in it for my own electronics on any of those options though
supporting electronics that is
Michael Haberler
@mhaberler
Jun 14 2016 19:05
Gemi has promising stuff doing a cross-build of an SD image for arms on an amd64 docker run
evanmj
@evanmj
Jun 14 2016 19:05
Have you looked at what the ardupilot guys are doing?
Michael Haberler
@mhaberler
Jun 14 2016 19:05
I think the platform we have most explored is the Terasic DE0 Nano board, and that will be certainly supported
evanmj
@evanmj
Jun 14 2016 19:05
I'm not sure they solved that problem exactly, but they cross compile a lot of platforms
Michael Haberler
@mhaberler
Jun 14 2016 19:06
I know, but then we're onto the RT linux trail..
isnt that on a bare metal or some non-linux RTOS?
evanmj
@evanmj
Jun 14 2016 19:07
most of it yes
but I think the new stuff runs on BBB
Michael Haberler
@mhaberler
Jun 14 2016 19:07
ah, interesting
it is very well written code
evanmj
@evanmj
Jun 14 2016 19:07
It has been a while, but I was impressed on the breadth of platforms they compile a single code base to
Michael Haberler
@mhaberler
Jun 14 2016 19:07
my stance is - I do not touch anything bare metal because it is just a legacy in the making - the embedded linux wave will bury it
evanmj
@evanmj
Jun 14 2016 19:08
agreed, which is why I'm trying to get up to speed on MK
seems like where it is headed, I can run my aquarium, my hot tub, my 3d printer, and industrial machines with it
quad copters as well
Michael Haberler
@mhaberler
Jun 14 2016 19:08
industrial control is it - it is overdue for linux
there is a confluence of key factors coming
rt-preempt being mainlined which means even the dumbest sweatshop in Shenzen cannot avoid delivering a platform with < 50uS latency and a stock kernel
that will wipe the floor on bare metal and low-end RTOS use except for some high-volume, very low end devices like sensors
you have arms and arm multiplatform kernels going mainline, so the build pain will taper off
and the lever of the debian package stream is very long
evanmj
@evanmj
Jun 14 2016 19:12
so, debian + mk + cheap hardware is the future of machine control?
  • RT_PREEMPT of course
Michael Haberler
@mhaberler
Jun 14 2016 19:12
NB there is a ROS debian stream for arm as well, we worked with these guys and actually could crank out ROS-ready mk SD images for all platforms; for x86 its just an apt-get
mk - I hope ;) but rt-preempt, the arm mainlining, the SoC/FPGA platforms, and debian together are the key drivers IMO
NB I think we are the only project around which can do UI down to FPGA firmware all open source, and on several platforms
The Mesanet firmware is superb, and is an incredible building block
evanmj
@evanmj
Jun 14 2016 19:14
yes, it seems like mk fits in nicely once that CNC stuff is split up
Michael Haberler
@mhaberler
Jun 14 2016 19:15
right, the HAL part is mostly up to speed once we have the multicore stuff merged
evanmj
@evanmj
Jun 14 2016 19:15
PCI cards seem so old school though to me
with all the ARM stuff coming with GPIO and FPGA/PRU
Michael Haberler
@mhaberler
Jun 14 2016 19:15
right now the build and deps are way too complex for reuse of HAL
well PCI is just one of a lot of interfacing method the Mesanet hard- and firmware supports
evanmj
@evanmj
Jun 14 2016 19:16
ah, I need to look at them more
Michael Haberler
@mhaberler
Jun 14 2016 19:17
there is a lot to be said for enumerable buses like PCI - the ARM space is just learning the trade with device tree and cape manager
evanmj
@evanmj
Jun 14 2016 19:17
I was thinking mesanet was just PCI IO
but it seems that is not the case
Michael Haberler
@mhaberler
Jun 14 2016 19:17
definitely not
that is mostly relevant for PC's though, in arm land the socfpga's dont need no damn buses
all same die
evanmj
@evanmj
Jun 14 2016 19:18
are ya'll excited about the X15? Or not so much?
Michael Haberler
@mhaberler
Jun 14 2016 19:18
it's a great platform
evanmj
@evanmj
Jun 14 2016 19:18
Breaks your <$100 statement at $229 or so
Michael Haberler
@mhaberler
Jun 14 2016 19:18
not sure it is very competitive price-wise
yes
evanmj
@evanmj
Jun 14 2016 19:19
Cool, well thanks for your time today
Michael Haberler
@mhaberler
Jun 14 2016 19:19
I love TI hardware but they really miss out on the FPGA front, which is a pity
sure
evanmj
@evanmj
Jun 14 2016 19:19
Keep up the good work :)
Michael Haberler
@mhaberler
Jun 14 2016 19:19
meh
packaging sucks raw eggs
evanmj
@evanmj
Jun 14 2016 19:20
I imagine
Michael Haberler
@mhaberler
Jun 14 2016 19:20
if you are prepared for a bit of suffering the terasic de0 nano board would be a good start
evanmj
@evanmj
Jun 14 2016 19:21
ok... seems so small
no display, etc
but I've been meaning to play with FPGA anyway
Michael Haberler
@mhaberler
Jun 14 2016 19:22
careful - there are two 'Terasic nano' boards - one with a bare fpga, and one with the SoC/FPGA ARM cores
the latter is relevant, the former is a doorstop
evanmj
@evanmj
Jun 14 2016 19:23
thanks for the warning
$99 for the SOC
oh, that is the "kit"
zhivko
@zhivko
Jun 14 2016 21:24
Interesting - I sourced the rip-environment, and reloged into terminal of BBB, but which machinekit comand still points to:
machinekit@beaglebone:~$ which machinekit
/usr/bin/machinekit
eh probably my mistake