LinuxCNC + Orange Pi (allwincnc)
30 Sep 2021 14:09 #221901
by Cncninja
Replied by Cncninja on topic LinuxCNC + Orange Pi (allwincnc)
I have the ALL-H3-CC 1gb from Amazon and was able to load and run with no problems. where i ran into a problem was getting the video gl driver working. it ran fine just the UI could be smoother due to no gl driver. I tried every trick I could find to get it loaded. I think the Libre board is fine and cheap and more importantly available. We just need to get a good clean load that has the gl driver from the start. Someone was able to load a Lima-enabled Ubuntu image on it but had following errors tho he only has 512 ram. If we could just get a mesa or lima enabled load of Armbian i think this would work out, if anyone has a sujestion im happy to try it out i have the H3 board just sitting.
Please Log in or Create an account to join the conversation.
01 Oct 2021 15:28 #221968
by 109jb
Replied by 109jb on topic LinuxCNC + Orange Pi (allwincnc)
Making progress. I now have it set up as floows:
1. Armbian and LinuxCNC installed on Orange Pi One H3 512 Mb SBC
2. WHB04B-6 wireless pendant installed
3. Limit switches set up in LinuxCNC
4. Step rates, accels, etc set up in LinuxCNC to match the GRBL settings.
5. Harness made to connect to the breakout board on the machine.
6. Notes of everything I have done so far is updated
Stuff left to do:
1. modify Axis interface for the 1200x600 display I bought.
2. implement drive fault detection for the closed loop stepper drives I have.
3. Connect to machine and test
4. Other?
Getting closer.
1. Armbian and LinuxCNC installed on Orange Pi One H3 512 Mb SBC
2. WHB04B-6 wireless pendant installed
3. Limit switches set up in LinuxCNC
4. Step rates, accels, etc set up in LinuxCNC to match the GRBL settings.
5. Harness made to connect to the breakout board on the machine.
6. Notes of everything I have done so far is updated
Stuff left to do:
1. modify Axis interface for the 1200x600 display I bought.
2. implement drive fault detection for the closed loop stepper drives I have.
3. Connect to machine and test
4. Other?
Getting closer.
The following user(s) said Thank You: wzor
Please Log in or Create an account to join the conversation.
03 Oct 2021 06:33 - 03 Oct 2021 06:34 #222075
by 109jb
Replied by 109jb on topic LinuxCNC + Orange Pi (allwincnc)
Got it running. Using a Orange Pi One with 512 Mb RAM. So far so good. Still some testing to do and have a lot to do to document what I have done to get to this point. Thanks for all the help from everyone.
<iframe width="640" height="360" src="" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
<iframe width="640" height="360" src="" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
Last edit: 03 Oct 2021 06:34 by 109jb.
Please Log in or Create an account to join the conversation.
03 Oct 2021 21:52 #222149
by 109jb
Replied by 109jb on topic LinuxCNC + Orange Pi (allwincnc)
I need help again. I am apparently not understanding how to implement an encoder/MPG wheel. This isn't for my milling machine project but rather for the future lathe project. What I am trying to do to start with is just wire and use an encoder to step 0.001 machine units per click. The encoder I am using is like the one pictured below.
I have the VCC wired to 3.3v from the Orange Pi, 0V to ground, A to GPIO pin PG6, and B to GPIO pin PG7. Not sure if I should put VCC to 5v.
In my hal file I have added
loadrt arisc encoders=1
setp arisc.encoder.0.A-port 6 # 6=PG
setp arisc.encoder.0.A-pin 6 # PG6
setp arisc.encoder.0.B-port 6 # 6=PG
setp arisc.encoder.0.B-pin 7 # PG7
setp axis.x.jog-vel-mode 0
setp axis.x.jog-scale 0.001
setp axis.x.jog-enable 1
net mpg-counts arisc.encoder.0.counts
net mpg-counts => axis.x.jog-counts
Not sure what I'm doing wrong. Can anyone help
I have the VCC wired to 3.3v from the Orange Pi, 0V to ground, A to GPIO pin PG6, and B to GPIO pin PG7. Not sure if I should put VCC to 5v.
In my hal file I have added
loadrt arisc encoders=1
setp arisc.encoder.0.A-port 6 # 6=PG
setp arisc.encoder.0.A-pin 6 # PG6
setp arisc.encoder.0.B-port 6 # 6=PG
setp arisc.encoder.0.B-pin 7 # PG7
setp axis.x.jog-vel-mode 0
setp axis.x.jog-scale 0.001
setp axis.x.jog-enable 1
net mpg-counts arisc.encoder.0.counts
net mpg-counts => axis.x.jog-counts
Not sure what I'm doing wrong. Can anyone help
Attachments:
Please Log in or Create an account to join the conversation.
04 Oct 2021 05:57 #222165
by Cncninja
Replied by Cncninja on topic LinuxCNC + Orange Pi (allwincnc)
Looking good, waiting for your write-up. I'm interested in your config for the video drivers etc.
Please Log in or Create an account to join the conversation.
04 Oct 2021 17:55 #222210
by 109jb
Replied by 109jb on topic LinuxCNC + Orange Pi (allwincnc)
Regarding the video drivers, I didn't do anything special with them. I simply used whatever Armbian installed.
Please Log in or Create an account to join the conversation.
05 Oct 2021 03:24 #222239
by Cncninja
Replied by Cncninja on topic LinuxCNC + Orange Pi (allwincnc)
Did you do the isolcpus=1,2,3 idle=poll and the speed forced to max
Please Log in or Create an account to join the conversation.
05 Oct 2021 03:38 #222240
by Bari
Replied by Bari on topic LinuxCNC + Orange Pi (allwincnc)
This where sanely developed u-boot firmware should come in. The user should be expected to be using an adequate heat sink and power supply. Next u-boot should be locking the cores to the highest stable speed and not even allow user space to mess with any speed governors or power management.
Please Log in or Create an account to join the conversation.
05 Oct 2021 05:35 #222248
by envyvan
Replied by envyvan on topic LinuxCNC + Orange Pi (allwincnc)
Hi 109jb,
I use the MPG with 2 PC817 Optocoupler, convert 5V logic level to 3.3v.
Below is my MPG setting in .hal file:
# MPG setup
loadrt arisc pwm="p,p,p,v" out="PA12,PA11,PA1,PA10,PA9,PA13,PA14,PA0,PA3,PC4" in="PC0,PC1,PC2,PC3,PG6,PG7,PG8,PG9" encoders=1
loadrt conv_float_s32 count=1
setp arisc.encoder.0.enable 1
setp arisc.encoder.0.x4-mode 0
setp arisc.encoder.0.pos-scale 4
setp arisc.encoder.0.A-port 6 # 6=PG
setp arisc.encoder.0.A-pin 6 # PG6
setp arisc.encoder.0.B-port 6 # 6=PG
setp arisc.encoder.0.B-pin 7 # PG7
setp arisc.gpio.PG6-pull -1
setp arisc.gpio.PG6-multi-drive-level 0
setp arisc.gpio.PG7-pull -1
setp arisc.gpio.PG7-multi-drive-level 0
net conv0 conv-float-s32.0.in <= arisc.encoder.0.pos
net jog-counter <= conv-float-s32.0.out
net jog-counter => joint.0.jog-counts axis.x.jog-counts
net jog-counter => joint.1.jog-counts axis.y.jog-counts
net jog-counter => joint.2.jog-counts axis.z.jog-counts
I also setup pyvcp to select which axis I want to use with MPG.
loadrt mux16 count=1
addf mux16.0 servo-thread
# connect radiobutton to jog-enable
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
net jog-enable-x pyvcp.jog-enable.X axis.x.jog-enable
net jog-enable-y pyvcp.jog-enable.Y axis.y.jog-enable
net jog-enable-z pyvcp.jog-enable.Z axis.z.jog-enable
# connect jog scale selector
setp mux16.0.in00 0
setp mux16.0.in01 0.000
setp mux16.0.in02 0.100
setp mux16.0.in03 0
setp mux16.0.in04 0.010
setp mux16.0.in05 0
setp mux16.0.in06 0
setp mux16.0.in07 0
setp mux16.0.in08 0.001
setp mux16.0.in09 0
setp mux16.0.in10 0
net selected-jog-scale mux16.0.out-f => axis.x.jog-scale
net selected-jog-scale mux16.0.out-f => axis.y.jog-scale
net selected-jog-scale mux16.0.out-f => axis.z.jog-scale
net jog-sel1 pyvcp.jog-scale.OFF => mux16.0.sel0
net jog-sel2 pyvcp.jog-scale.0.100 => mux16.0.sel1
net jog-sel3 pyvcp.jog-scale.0.010 => mux16.0.sel2
net jog-sel4 pyvcp.jog-scale.0.001 => mux16.0.sel3
I use the MPG with 2 PC817 Optocoupler, convert 5V logic level to 3.3v.
Below is my MPG setting in .hal file:
# MPG setup
loadrt arisc pwm="p,p,p,v" out="PA12,PA11,PA1,PA10,PA9,PA13,PA14,PA0,PA3,PC4" in="PC0,PC1,PC2,PC3,PG6,PG7,PG8,PG9" encoders=1
loadrt conv_float_s32 count=1
setp arisc.encoder.0.enable 1
setp arisc.encoder.0.x4-mode 0
setp arisc.encoder.0.pos-scale 4
setp arisc.encoder.0.A-port 6 # 6=PG
setp arisc.encoder.0.A-pin 6 # PG6
setp arisc.encoder.0.B-port 6 # 6=PG
setp arisc.encoder.0.B-pin 7 # PG7
setp arisc.gpio.PG6-pull -1
setp arisc.gpio.PG6-multi-drive-level 0
setp arisc.gpio.PG7-pull -1
setp arisc.gpio.PG7-multi-drive-level 0
net conv0 conv-float-s32.0.in <= arisc.encoder.0.pos
net jog-counter <= conv-float-s32.0.out
net jog-counter => joint.0.jog-counts axis.x.jog-counts
net jog-counter => joint.1.jog-counts axis.y.jog-counts
net jog-counter => joint.2.jog-counts axis.z.jog-counts
I also setup pyvcp to select which axis I want to use with MPG.
loadrt mux16 count=1
addf mux16.0 servo-thread
# connect radiobutton to jog-enable
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
net jog-enable-x pyvcp.jog-enable.X axis.x.jog-enable
net jog-enable-y pyvcp.jog-enable.Y axis.y.jog-enable
net jog-enable-z pyvcp.jog-enable.Z axis.z.jog-enable
# connect jog scale selector
setp mux16.0.in00 0
setp mux16.0.in01 0.000
setp mux16.0.in02 0.100
setp mux16.0.in03 0
setp mux16.0.in04 0.010
setp mux16.0.in05 0
setp mux16.0.in06 0
setp mux16.0.in07 0
setp mux16.0.in08 0.001
setp mux16.0.in09 0
setp mux16.0.in10 0
net selected-jog-scale mux16.0.out-f => axis.x.jog-scale
net selected-jog-scale mux16.0.out-f => axis.y.jog-scale
net selected-jog-scale mux16.0.out-f => axis.z.jog-scale
net jog-sel1 pyvcp.jog-scale.OFF => mux16.0.sel0
net jog-sel2 pyvcp.jog-scale.0.100 => mux16.0.sel1
net jog-sel3 pyvcp.jog-scale.0.010 => mux16.0.sel2
net jog-sel4 pyvcp.jog-scale.0.001 => mux16.0.sel3
The following user(s) said Thank You: 109jb
Please Log in or Create an account to join the conversation.
05 Oct 2021 15:26 #222283
by 109jb
Replied by 109jb on topic LinuxCNC + Orange Pi (allwincnc)
I did do the "isolcpus-1,2,3 idle=poll", but don't know about the speed forced to max that you are referring to. How do you do this?Did you do the isolcpus=1,2,3 idle=poll and the speed forced to max
Please Log in or Create an account to join the conversation.
Time to create page: 0.157 seconds