LinuxCNC + Orange Pi (allwincnc)
I might be able to help with configuration and settings - I can send my config files and describe system&hardware I use.
MX_Master, I perfectly understand Your decision of dropping support for constantly changing processors and cores. It is quite strange however that manufacturers do this, what is the point of including more cores, when they change all the time? Who will use them then?? Anyway I might be able to help with STM firmware or schematics if You want. I already have a nice setup (toy machine and stepper+spindle drivers) that I would like to update in time.
The x86 world is similar. New CPU's and chipsets a few times a year. BIOS/EFI has to be configured for each CPU and chipset. Then each motherboard design has to tweak these for each version they produce.
Users coming from the GRBL and *duino world have to understand that they need to properly configure the config and HAL files since LCNC will check and throw errors for trying to step too quickly. We could remove the real time error messages and just miss or max out steps the way Marlin and similar do it.
Being busy for a while.
I think the project run on my board is pretty functional. Fast enought for my goal.
But there is onething I reach then I think need to be notice:
The system logic leavel is floating when my board boptup and also in the linux system.
Until I strat the axis interface or what ever interface and press "machine on" button.
Other thing is I try to set my servo spindle in the same way as I use it in mach3 in Step/Dir.
By using "arisc.pwm.N.vel-cmd" and "arisc.pwm.N.vel-scale" It works, but not ideal.
I don't know how I can set the accelerate for it, any the scale value is "17", looks like some thing odd, since I set the servo to 1000 pulse pre rev.
I still try to figure it out.
Envyan, floating pins on startup are perfectly normal. The board does not know what is input/output before loading linuxcnc - Yours drivers should have pull-up or pull-down resistors on all pins to force them to "inactive" state before CNC software takes control. The only that might be a bug, is that pins are made outputs only after You press the ON button. In my opinion drivers should set the pins on startup.
Please check my hal file for spindle with encoder - I haven't noticed any odd behaviour with scaling. For my config spindle-speed-out is in RPM, spindle.revs are revolutions, and spindle-speed-in is also in RPM.
I've set the accelerations using limit2 function, however I found that LinuxCNC has a "spindle" module (linuxcnc.org/docs/html/man/man9/spindle.9.html) with gears & everything - will need to check that.
File Attachment:File Name: emco_PC_spindleH.hal
File Size:1 KB
PS. spindle module seems to have bugs.... Need to check it further.
That was completely wrong. DO NOT use simulate_index.patch, use simulate_index_v1.patch file!!
Now simulated index always waits for next full revolution before clearing spindle position and sending back index signal to HAL. In this way our virtual index fires at the position that spindle was at linuxcnc startup.
Patch file and HAL config are attached here. To use simulated index just set "arisc.encoder.X.simulate-index" parameter to 1, then connect spindle.X.index-enable in normal way.
File Attachment:File Name: emco_PC_sp...9-26.hal
File Size:1 KB
File Attachment:File Name: simulate_i...v1.patch
File Size:2 KB
I think that the Allwinner boards are fine for LCNC as long as we can get a regular supply of them, and if future generations keep the integrated MCU. Being able to run LCNC all on the same low cost board is nice for low cost and saves space. It is just bad timing currently with the world shortage of semiconductors. Even some STM32's have 6-12 month leads times right now.
I forgot that allwinners etc were not made with open boards in mind. It seems that we need to stick with small fully open STMs/whatever and made out own modules.
I have been following the pine64 boards a bit and they have also been using the Rockchip ARM SOC's with integrated MCU's. They are also facing chip shortages as well. pine64.com/product-category/single-board-computers/
I think that the Allwinner boards are fine for LCNC as long as we can get a regular supply of them, and if future generations keep the integrated MCU. Being able to run LCNC all on the same low cost board is nice for low cost and saves space. It is just bad timing currently with the world shortage of semiconductors.
I use it on a small milling machine, China type 3040. On an OrangePi PC with 1GB of RAM.
It works nicely, is small, cheap and with minimal power consumption.
Because I bought this OPi PC before, the price was an incredible $ 15, free shipping.
By the way is the orangePi H3 the best board that is usable for this project? Are any others working?
The OrangePi's aren't the most rugged or industrial made boards out there but these are a better match for all the hardware required to run LCNC or machinekit on a single board. They have the ARM cores to run Linux, the GPU to run a GUI and an integrated MCU for real time high speed step generation. I'd be happy to spin a board with the ARM SOC and the ruggedized IO required for industrial applications.