LitexCNC: firmware and driver for 5A-75B and 5A-75E

More
2 years 8 months ago #292830 by vre
raspberry pi5 works for flashing or only pi4 works?

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago #292854 by TOLP2

raspberry pi5 works for flashing or only pi4 works?
Pi5 is fully supported and working, also for programming. When using the Pi5 for running LinuxCNC, it is required to select spidev as connection.

Explanation: for Pi4 the pigpio connection is recommended, as the communication is slightly faster. However, the pigpio module is not yet ported to the Pi5 because it has a complete new GPIO chipset.

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago #292855 by TOLP2

Hello,

have the JOSON examples on the instructions page ever been fully tested?
I have compiled and flashed the example V8.0 12/14 on my 5A-75B V8.2 FPGA board with my Raspberry pi4 according to the described instructions. I have a small gantry milling machine with 2 Y-axes and an additional rotary axis (XYYZA).
To test my Linuxcnc configuration, I made a small test setup with 5 stepper motors.
The first 4 stepper motor outputs on the FPGA board
stepgen.00.... j7:0 with j7:1
stepgen.01.... j7:2 with j7:4
stepgen.02.... j7:5 with j7:6
stepgen.03.... j8:0 with j8:1
work perfectly. The home movement also works without any problems.

The last two stepper motor outputs:
stepgen.04.... j8:2 with j8:4
stepgen.05.... j8:5 with j8:6

show a strange behavior. As soon as a movement (e.g. home movement) is initiated,
the connected stepper motor starts to turn in a certain direction and can only be stopped,
the FPGA board is disconnected from the power supply.
The stepper motor continues to rotate even when the Raspberry is no longer connected to the board.
It doesn't matter which axis I assign this output to in Linuxcnc.
The stepper motor connected to these outputs shows this behavior.
Has anyone ever tested a 5A-75B V8.x with more than 4 axes?

Best regards
Uwe

I've tested up to 4 axes indeed. Will add a bug report to LitexCNC and will investigate ASAP.

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago #292873 by uba100
I don't know if this is helpful.
I tried a few different mappings in the JSON file and flashed them to the FPGA.
If I output the last two step generators on the J6 tub connector, they also have the error on these pins.
However, if I define two more step generators (and of course two PWM generators less), then only the last two step generators (stepgen.06... and stepgen.07..) have the error described. I can now use the two step generators stepgen.04.... and stepgen.05....
I can now perform an error-free home run and also jog the axes without Linuxcnc displaying an error message.
They just seem to run a little unevenly.
The following user(s) said Thank You: TOLP2

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago #292874 by TOLP2

I don't know if this is helpful.
I tried a few different mappings in the JSON file and flashed them to the FPGA.
If I output the last two step generators on the J6 tub connector, they also have the error on these pins.
However, if I define two more step generators (and of course two PWM generators less), then only the last two step generators (stepgen.06... and stepgen.07..) have the error described. I can now use the two step generators stepgen.04.... and stepgen.05....
I can now perform an error-free home run and also jog the axes without Linuxcnc displaying an error message.
They just seem to run a little unevenly.
Could you help me out a little bit more?

On the example with 6 stepgens, can you just remove two PWMs from the board and try to run it? 

I think I've a hunch what is going on. When using Ethernet, there is a maximum size of the data-packet which can be received by the card. Because there are so many functions on the card, it might be the case that the two last stepgens are outside the memory allocated for the buffer. By removing two PWM, you save in total 4 bytes in the data package. And guess: two additional steppers cost also 4 bytes. So the behavior you described totally fits this.

When starting the connection, the driver will show the allocated buffers for configuration, reading and writing. Can you share this information here as well?
 

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago #292880 by uba100
Here is the current output of Linuxcnc at startup:

LINUXCNC - 2.9.2
Machine configuration directory is '/home/cnc/linuxcnc/configs/test1'
Machine configuration file is 'test1.ini'
Starting LinuxCNC...
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Note: Using POSIX realtime
Found file(REL): ./test1.hal

identityKinematicsSetup: coordinates:XYYZA
Joint 0 ==> Axis X
Joint 1 ==> Axis Y
Joint 2 ==> Axis Y
Joint 3 ==> Axis Z
Joint 4 ==> Axis A

litexcnc: Loading Litex CNC driver version 1.1.0
litexcnc: Loading and registering default modules:
litexcnc: Registered module gpio
litexcnc: Registered module pwm
litexcnc: Registered module encoder
litexcnc: Registered module step
litexcnc: Setting up board drivers:
litexcnc: Registered driver eth
LitexCNC-eth: connected to board on '10.0.0.10:1234'
litexcnc: Setting up modules...
litexcnc: Reading 36 bytes
litexcnc: - Watchdog
litexcnc: - Wallclock
litexcnc: - gpio ... done!
litexcnc: - pwm ... done!
litexcnc: - encoder ... done!
litexcnc: - step ... done!
litexcnc: Creating read and write buffers...
litexcnc: Base addresses: init: 00000000, reset: 00000044, config: 00000048, write: 0000004C, read: 000000B8
litexcnc: - Write buffer: 108 bytes
litexcnc: - Read buffer: 120 bytes
litexcnc: Exporting functions...
Found file(REL): ./custom.hal
litexcnc/5A-75B:V8.0: Watchdog timeout (3000000 ns) is dangerously short compared to litexcnc_write() period (2400000 ns)


Warning: Missing required specifier (has angular joint or axis):
[DISPLAY]MAX_ANGULAR_VELOCITY
or [TRAJ]MAX_ANGULAR_VELOCITY
See the 'INI Configuration' documents

note: MAXV max: 25.000 units/sec 1500.000 units/min
note: LJOG max: 25.000 units/sec 1500.000 units/min
note: LJOG default: 2.500 units/sec 150.000 units/min
note: AJOG max: 1.000 units/sec 60.000 units/min
note: AJOG default: 1.000 units/sec 60.000 units/min
Warning: Forward kinematics must handle duplicate coordinate letters:yy
note: jog_order='XYZA'
note: jog_invert=set()
The following user(s) said Thank You: TOLP2

Please Log in or Create an account to join the conversation.

Moderators: PCW, jmelson
Time to create page: 0.407 seconds
Powered by Kunena Forum