EMC2 running on Raspberry Pi?

More
14 years 2 months ago #23741 by mungkie
the output from runtests
Code:
Running test: /home/pi/ncnc/emc-rt-preempt/tests/abs.0 *** /home/pi/ncnc/emc-rt-preempt/tests/abs.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/alias.0 *** /home/pi/ncnc/emc-rt-preempt/tests/alias.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/and-or-not-mux.0 *** /home/pi/ncnc/emc-rt-preempt/tests/and-or-not-mux.0: FAIL: test run exited w ith 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/basic *** /home/pi/ncnc/emc-rt-preempt/tests/basic: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/ccomp/lathe-comp Running test: /home/pi/ncnc/emc-rt-preempt/tests/ccomp/mill-g90g91g92 Running test: /home/pi/ncnc/emc-rt-preempt/tests/ccomp/mill-line-arc-entry Running test: /home/pi/ncnc/emc-rt-preempt/tests/ccomp/mill-zchanges Running test: /home/pi/ncnc/emc-rt-preempt/tests/counter-encoder.0 *** /home/pi/ncnc/emc-rt-preempt/tests/counter-encoder.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/flipflop.0 *** /home/pi/ncnc/emc-rt-preempt/tests/flipflop.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/halmodule.0 *** /home/pi/ncnc/emc-rt-preempt/tests/halmodule.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/hm2-idrom --- /home/pi/ncnc/emc-rt-preempt/tests/hm2-idrom/expected 2012-08-24 14:59 :38.431988202 +0000 +++ /home/pi/ncnc/emc-rt-preempt/tests/hm2-idrom/result 2012-08-29 09:31:35.783114113 +0000 @@ -1,15 +1,90 @@ -hm2/hm2_test\.0: invalid cookie -hm2/hm2_test\.0: invalid config name -hm2/hm2_test\.0: invalid IDROM type -hm2/hm2_test\.0: invalid IDROM type -hm2/hm2_test\.0: invalid IDROM PortWidth -hm2/hm2_test\.0: invalid IDROM PortWidth -hm2/hm2_test\.0: IDROM IOPorts is 0 but llio num_ioport_connectors is \d+ -hm2/hm2_test\.0: IDROM IOWidth is \d+, but IDROM IOPorts is \d+ and IDROM PortWidth is \d+ -hm2/hm2_test\.0: IDROM IOPorts is \d+ but llio num_ioport_connectors is \d+ -hm2/hm2_test\.0: IDROM ClockLow is \d+, that's too low -hm2/hm2_test\.0: IDROM ClockHigh is \d+, that's too low -hm2/hm2_test\.0: pin 0 primary tag is 0 \(end-of-list sentinel\), expected 144! -hm2/hm2_test\.0: hm2_set_pin_direction: invalid pin number 0 -hm2/hm2_test\.0: invalid IDROM PortWidth 24, this board has 5 pins per connector, aborting load -hm2/hm2_test\.0: IDROM IOPorts is 0 but llio num_ioport_connectors is \d+ +REALTIME SCRIPT CALLED AS USER : pi +Realtime: loading +REALTIME SCRIPT CALLED AS USER : pi +pi +Realtime: exiting rtapi +test pattern 0 didnt produce error 'hm2/hm2_test\.0: invalid cookie' +REALTIME SCRIPT CALLED AS USER : pi +Realtime: loading +REALTIME SCRIPT CALLED AS USER : pi +pi +Realtime: exiting rtapi +test pattern 1 didnt produce error 'hm2/hm2_test\.0: invalid config name' +REALTIME SCRIPT CALLED AS USER : pi +Realtime: loading +REALTIME SCRIPT CALLED AS USER : pi +pi +Realtime: exiting rtapi +test pattern 2 didnt produce error 'hm2/hm2_test\.0: invalid IDROM type' +REALTIME SCRIPT CALLED AS USER : pi +Realtime: loading +REALTIME SCRIPT CALLED AS USER : pi +pi (68 more lines omitted) *** /home/pi/ncnc/emc-rt-preempt/tests/hm2-idrom: FAIL: result differed from expected Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/abort-hot-comment Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/bad Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/cam-nisley Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/crazy-paths Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/do-while-break Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/exists Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/flowsnake Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/fractional-linenumbers Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-l11 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-l1-l10 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-l1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-l20-while-active Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-l2-while-active Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g10/g10-with-g92 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g6164 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/g76 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/iniparam-failassign Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/iniparam Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/inside-corners Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/inverse-time-with-comp Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/m19 Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/oword-unwind Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/plug Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/pymove Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/python-self Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/return-value Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/sequence-number Running test: /home/pi/ncnc/emc-rt-preempt/tests/interp/value-returned Running test: /home/pi/ncnc/emc-rt-preempt/tests/limit3.0 *** /home/pi/ncnc/emc-rt-preempt/tests/limit3.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/limit3.1 *** /home/pi/ncnc/emc-rt-preempt/tests/limit3.1: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/limit3.2 *** /home/pi/ncnc/emc-rt-preempt/tests/limit3.2: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/loadrt.1 *** /home/pi/ncnc/emc-rt-preempt/tests/loadrt.1: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/m70-m73/m70m72-restore.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/m70-m73/m73autorestore.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/modparam.0 *** /home/pi/ncnc/emc-rt-preempt/tests/modparam.0: FAIL: test run exited with 1 Skipping test: /home/pi/ncnc/emc-rt-preempt/tests/motion/g0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/near.0 *** /home/pi/ncnc/emc-rt-preempt/tests/near.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/overrun Running test: /home/pi/ncnc/emc-rt-preempt/tests/oword/sub.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/oword/while.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/args.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/args.1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/args.2 Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/body-ngc Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/body-py Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/canon_error Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/epilog Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/fail/prolog Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/introspect Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/nested-remaps-oword Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/oword-pycall Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/posargs.0 Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/predefined-named-params Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/sequencing Running test: /home/pi/ncnc/emc-rt-preempt/tests/remap/variable-injection Running test: /home/pi/ncnc/emc-rt-preempt/tests/rtapi_printf.0 *** /home/pi/ncnc/emc-rt-preempt/tests/rtapi_printf.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/save.0 *** /home/pi/ncnc/emc-rt-preempt/tests/save.0: FAIL: test run exited with 1 Skipping test: /home/pi/ncnc/emc-rt-preempt/tests/save.1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/source.0 *** /home/pi/ncnc/emc-rt-preempt/tests/source.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/stepgen.0 *** /home/pi/ncnc/emc-rt-preempt/tests/stepgen.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/stepgen.1 *** /home/pi/ncnc/emc-rt-preempt/tests/stepgen.1: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/stepgen.2 *** /home/pi/ncnc/emc-rt-preempt/tests/stepgen.2: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/threads.0 *** /home/pi/ncnc/emc-rt-preempt/tests/threads.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/threads.1 *** /home/pi/ncnc/emc-rt-preempt/tests/threads.1: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/timedelay.0 *** /home/pi/ncnc/emc-rt-preempt/tests/timedelay.0: FAIL: test run exited with 1 Running test: /home/pi/ncnc/emc-rt-preempt/tests/usercomp.0 *** /home/pi/ncnc/emc-rt-preempt/tests/usercomp.0: FAIL: checkresult exited with 1 Runtest: 76 tests run, 52 successful, 24 failed + 0 expected Failed: /home/pi/ncnc/emc-rt-preempt/tests/abs.0 /home/pi/ncnc/emc-rt-preempt/tests/alias.0 /home/pi/ncnc/emc-rt-preempt/tests/and-or-not-mux.0 /home/pi/ncnc/emc-rt-preempt/tests/basic /home/pi/ncnc/emc-rt-preempt/tests/counter-encoder.0 /home/pi/ncnc/emc-rt-preempt/tests/flipflop.0 /home/pi/ncnc/emc-rt-preempt/tests/halmodule.0 /home/pi/ncnc/emc-rt-preempt/tests/hm2-idrom /home/pi/ncnc/emc-rt-preempt/tests/limit3.0 /home/pi/ncnc/emc-rt-preempt/tests/limit3.1 /home/pi/ncnc/emc-rt-preempt/tests/limit3.2 /home/pi/ncnc/emc-rt-preempt/tests/loadrt.1 /home/pi/ncnc/emc-rt-preempt/tests/modparam.0 /home/pi/ncnc/emc-rt-preempt/tests/near.0 /home/pi/ncnc/emc-rt-preempt/tests/rtapi_printf.0 /home/pi/ncnc/emc-rt-preempt/tests/save.0 /home/pi/ncnc/emc-rt-preempt/tests/source.0 /home/pi/ncnc/emc-rt-preempt/tests/stepgen.0 /home/pi/ncnc/emc-rt-preempt/tests/stepgen.1 /home/pi/ncnc/emc-rt-preempt/tests/stepgen.2 /home/pi/ncnc/emc-rt-preempt/tests/threads.0 /home/pi/ncnc/emc-rt-preempt/tests/threads.1 /home/pi/ncnc/emc-rt-preempt/tests/timedelay.0 /home/pi/ncnc/emc-rt-preempt/tests/usercomp.0

Please Log in to join the conversation.

More
14 years 2 months ago #23742 by mungkie
andypugh wrote:

mungkie wrote:

THERE ARE NO RT_PREEMPT PATCHES OR MODIFICATIONS MADE TO THE GIT REPO AT git://gitorious.org/emc-rt-preempt/emc-rt-preempt.git linuxcnc-buesch-rt

Is it possible that you didn't switch to the correct branch after cloning the repo?


It is possible, but I basically followed the instructions on the wiki so it should have worked, I know nothing about git.

I have updated the wiki with what I did to get my current compilation to work, I hope someone that knows can correct what I have added if I have made a mistake.

Please Log in to join the conversation.

More
14 years 2 months ago #23744 by andypugh
mungkie wrote:

andypugh wrote:

mungkie wrote:Is it possible that you didn't switch to the correct branch after cloning the repo?

It is possible, but I basically followed the instructions on the wiki so it should have worked, I know nothing about git.


What does "git branch" tell you?
You will see a list of branches and one will have an asterisk. That is the branch you are on. Quite possibly "master"
git checkout <branchname> will move you to a different branch.
(and git checkout <master> will take you back to the standard LinuxCNC "master" with whatever changes you have made there.)

Please Log in to join the conversation.

More
14 years 2 months ago #23745 by mungkie
I thought I should say that there are many many things I am hoping to try to improve linuxcnc running on the RPI as soon as I feel well enough.

All above tests were on a stock RPI apart from the kernel which is the made from the default RPI kernel code with the RT_PREEMPT atch applied.

I will be over clocking the RPI which maybe will increase performance but upto 60%, I will remove all unnecessary modules and services that are running in the background.

If python OGL and accelerated X working that will also take a lot of load off the processor.

Also using xenomai would probably improve performance marginally.

I have not read up on how to set prioritys in RT_PREEMPT but this will also possibly improve things?

I think getting my hardware drivers working on the PREEMPT version maybe will take 4-5 hours.

Hacking and tuning the code could take months or maybe could take hours?

I sort of would like to try adding xenomai support in the same way that the RT_PREEMPT has been added (basically a wrapper for convert RTAI calls to RT_PREEMPT equivalent).

I would also like to look at drivers for SPI devices and possibly microcontroller buffered step output (probably needs to add some sort of config options to hal so that it knows output does not step with basethread but instead is calculated in blocks of a given buffer size and flushed out by serial at servo thread resolution).

Lots of stuff looks possible, I dont know if any of it will actually work?

Please Log in to join the conversation.

More
14 years 2 months ago #23747 by andypugh
mungkie wrote:

All above tests were on a stock RPI apart from the kernel which is the made from the default RPI kernel code with the RT_PREEMPT atch applied.

Have you been following the recent discussions on the developer mailing list? There has been a sudden surge in enthusiasm for making rt-preempt and Xenomai support work properly in the main LinuxCNC version.
(When it was realised that the current dependence on RTAI is actually a dependence on one RTAI developer remaining interested.)

thread.gmane.org/gmane.linux.distributions.emc.devel/7351

Please Log in to join the conversation.

  • mhaberler
  • New Member
  • New Member
More
14 years 2 months ago #23748 by mhaberler
Replied by mhaberler on topic Re:EMC2 running on Raspberry Pi?
andypugh wrote:

Have you been following the recent discussions on the developer mailing list? There has been a sudden surge in enthusiasm for making rt-preempt and Xenomai support work properly in the main LinuxCNC version.
(When it was realised that the current dependence on RTAI is actually a dependence on one RTAI developer remaining interested.)

thread.gmane.org/gmane.linux.distributions.emc.devel/7351


I would not exactly call it enthusiasm, but rather pressing for a solid foundation for the future.

"Technically sound" doesnt necessarily translate automatically into "a wise decision from a project perspective".

- Michael

Please Log in to join the conversation.

More
14 years 2 months ago #23749 by mungkie
I actually prefered this post article.gmane.org/gmane.linux.distributions.emc.devel/7374

It made me think about the real problem of open source, which is that often those that are enthusiastic do not have the skill or understanding to do a good job and will hack into a codebase and ruin things :lol:

I actually think I probably have enough understanding to realise that I am going to do a rather crap job of this, but I am hacking on it as a hobby for fun, but also in the hope that someone with the right skills might see there is some interest in using new RT kernels and decide to show how it should be done properly.

I actually did a degree in computer engineering, but that was a long time ago and I spent most of my time getting stoned at college, and never got a job in the computing industry.

I think linuxcnc is a sort of infrastructure project for machine control and needs some real planning by experts to be worthwhile, but that said I think and hope that ideas and lessons can be gained from people attempting to hack things and see what happens.

Please Log in to join the conversation.

More
14 years 2 months ago #23799 by mungkie
I finally felt well enough to get back to hacking on the rpi but unfortunately I destroyed my system last night, after messing around with over clocking something trashed my SD card.

As I am going to have to start again, I decided I will try and make an autobuild script so I can quickly get back to a working system if the filesystem is trashed again.

Most of my code is backed up but there is maybe a little lost so it may take some time to get working, I will start this evening and hope to post the scripts at the end of the weekend, if anyone is interested in testing please let me know as I would like to know if the build scripts will work okay for others.

I am not sure if I will have enough time to get a full system setup but will see how it goes, as I am building everything on the rpi kernel build is an overnight compile job and linuxcnc probably takes 5 hours to compile.

I may also get enough time to show the circuits for the parallel port interface that I made, if anyone lets me know that they are actually interested enough to bother soldering one together.

Suggested hardware to compile is : rpi, 8Gb SD card, a powered usb hd for swapspace.

Please Log in to join the conversation.

More
14 years 1 month ago #23897 by mungkie
I have uploaded all the development drivers, machine config examples and hardware datasheets, plus the scripts I use to grab the kernel source and patches for RT, and packages and source to compile the RT version of linuxcnc for the raspberry pi.

If anyone wants a copy its available at : www.soundproofingforum.co.uk/halitosis/rpi_linuxcnc.tgz

File size is about 32Mb, but you have to download 90Mb of update packages for raspbian, 30Mb of git source checkout for linuxcnc, and 100Mb of kernel source.

If you are good you should be able to compile and run the system with an hour or so of reading and leave the raspberry pi on over night to compile new kernel and linuxcnc RT_PREEMPT.

I have done some brief tests on the RT system and it needs a lot of tuning of ini file for base period and other params, but the RT version is definitly much better than the sim mode compile (though still slow and crap compared to an x86 version).

I think the i2c driver also needs some work though as I guess the i2c transmit speed maybe causing some problems.

I still need to make some docs about how to wire the i2c io expander though most people should be able to do that from the datasheet :D

I hope there are some people that can help and give feedback.

Please Log in to join the conversation.

  • mhaberler
  • New Member
  • New Member
More
14 years 1 month ago #23898 by mhaberler
Replied by mhaberler on topic Re:EMC2 running on Raspberry Pi?
mungkie wrote:

I have uploaded all the development drivers, machine config examples and hardware datasheets, plus the scripts I use to grab the kernel source and patches for RT, and packages and source to compile the RT version of linuxcnc for the raspberry pi.

If anyone wants a copy its available at : www.soundproofingforum.co.uk/halitosis/rpi_linuxcnc.tgz


wow - thanks! exactly what I was looking for!

- Michael

Please Log in to join the conversation.

Time to create page: 0.634 seconds
Powered by Kunena Forum