Nikolay-Kha / PyCNC

Python CNC machine controller for Raspberry Pi and other ARM Linux boards
MIT License
593 stars 188 forks source link

Regarding use of Rockpro64 with pycnc #29

Open bharathbellary opened 5 years ago

bharathbellary commented 5 years ago

Hello nikolay, What a wonderful project you have done it's nice and useful . But i'm facing a problem with using the pycnc with my new Rockpro64 i tried different methods to port it but it was unsuccessful please guide me to how to use pycnc with RockPro64 Thank you

Nikolay-Kha commented 5 years ago

Hello I'm happy to hear that project is useful. Current implementation exists only for bcm283x processors which are used in Raspberry Pi boards. RockPro64 board uses Rockchip RK3399 processor. And to use it with PyCNC, hardware abstraction layer(HAL) should be implemented for PyCNC. Here is the HAL for RPI - https://github.com/Nikolay-Kha/PyCNC/tree/master/cnc/hal_raspberry

bharathbellary commented 5 years ago

Hello, Thank you very much for your reply your project is awesome and I'm trying it out with my different systems as I'm not weak in programming I'm not able to using your project with Rock pro can you please guide me how to get this working with rockpro 64?

On Wednesday, November 28, 2018, Nikolay Khabarov notifications@github.com wrote:

Hello I'm happy to hear that project is useful. Current implementation exists only for bcm283x processors which are used in Raspberry Pi boards. RockPro64 board uses Rockchip RK3399 processor. And to use it with PyCNC, hardware abstraction layer(HAL) should be implemented for PyCNC. Here is the HAL for RPI - https://github.com/Nikolay- Kha/PyCNC/tree/master/cnc/hal_raspberry

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Nikolay-Kha/PyCNC/issues/29#issuecomment-442520456, or mute the thread https://github.com/notifications/unsubscribe-auth/AYphSDoSi-bozRdBZnuaSC7-rpCC2R7Rks5uzr-CgaJpZM4X-86_ .

-- Bharath Bellary 9738835150

Nikolay-Kha commented 5 years ago

You need to implement the same thing which is implemented for RPi here - https://github.com/Nikolay-Kha/PyCNC/tree/master/cnc/hal_raspberry Prototype for this class - https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal.py Another, virtual, i.e. dummy implementation - https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal_virtual.py

You would need to find a way to use Rockchip DMA controller to generate pulses, control GPIO ports etc. As far as I remember that processor has even better then RPi DMA module and create this should be even easier, but still require a lot of thinking and reading of chip documentation.

bharathbellary commented 5 years ago

Yes Rockchip pro is better than raspberry Pi I tried to modify hal.py with DMA address and ended up with getting nothing is there any other ways that I can get pycnc working Rockpro64 On Wed, 28 Nov, 2018, 10:46 PM Nikolay Khabarov, notifications@github.com wrote:

You need to implement the same thing which is implemented for RPi here - https://github.com/Nikolay-Kha/PyCNC/tree/master/cnc/hal_raspberry Prototype for this class - https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal.py Another, virtual, i.e. dummy implementation - https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal_virtual.py

You would need to find a way to use Rockchip DMA controller to generate pulses, control GPIO ports etc. As far as I remember that processor has even better then RPi DMA module and create this should be even easier, but still require a lot of thinking and reading of chip documentation.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Nikolay-Kha/PyCNC/issues/29#issuecomment-442529016, or mute the thread https://github.com/notifications/unsubscribe-auth/AYphSOELPKjpXBupEL0ulDua5cOjAwfHks5uzsTwgaJpZM4X-86_ .

Nikolay-Kha commented 5 years ago

Just to change addresses is not enough. DMA modules are different. You need to find a way to start DMA module to copy data from buffer to GPIO module. Registers and possible values are described in chip documentation. To explain that to DMA module you would need to write something in DMA registers. You could start with simple GPIO. Try to write data directly to GPIO module to control pins. Try to blink with LED. See this lines: https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal_raspberry/rpgpio.py#L415-L430 - that is a test for RPi to blink with LED on pin 21. It also needs to be implemented for HAL. And that is a good start to understand how things work in processor registers.

bharathbellary commented 5 years ago

Thank you very much for your response yup I'll try these and let you know and thank you for the project it's was awesome 😊✌️

On Thu, 29 Nov, 2018, 5:41 PM Nikolay Khabarov, notifications@github.com wrote:

Just to change addresses is not enough. DMA modules are different. You need to find a way to start DMA module to copy data from buffer to GPIO module. Registers and possible values are described in chip documentation. To explain that to DMA module you would need to write something in DMA registers. You could start with simple GPIO. Try to write data directly to GPIO module to control pins. Try to blink with LED. See this lines: https://github.com/Nikolay-Kha/PyCNC/blob/master/cnc/hal_raspberry/rpgpio.py#L415-L430

  • that is a test for RPi to blink with LED on pin 21. It also needs to be implemented for HAL. And that is a good start to understand how things work in processor registers.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Nikolay-Kha/PyCNC/issues/29#issuecomment-442811510, or mute the thread https://github.com/notifications/unsubscribe-auth/AYphSK7jPNV8PWqJcmuTnWQ7cWkYFEdYks5uz87rgaJpZM4X-86_ .