ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
17 Jan 2023 13:10 #262232
by wuyatom
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Hello , do you support 5A75E board?
Please Log in or Create an account to join the conversation.
18 Jan 2023 08:02 #262323
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Yes, it is supported. Please find two configuration files attached. These will work perfectly fine for any version 6.0, 8.0 or 8.2 5A-75E board. You should change the extension to .json, because the forum does not allow me to upload that type.Hello , do you support 5A75E board?
The following user(s) said Thank You: besriworld, wuyatom
Please Log in or Create an account to join the conversation.
19 Jan 2023 22:28 #262438
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
I just released a new pre-release of LitexCNC. This pre-release focuses on support of LinuxCNC 2.9 and solving compiler warnings. It contains also some minor bug-fixes.
One can install this pre-release with:
The documentation can be found here .
Next step
I will now focus on getting the card in my EMCO5 to get some experience in its real-life performance. This little EMCO has a toolchanger, which requires some extra firmware (toolerator3000). I would like to add this carroussel type of firmware to the card. LitexCNC is going to have a plugin eco-system to add more components in the future.
One can install this pre-release with:
pip install --extra-index-url https://test.pypi.org/simple/ litexcnc
The documentation can be found here .
Next step
I will now focus on getting the card in my EMCO5 to get some experience in its real-life performance. This little EMCO has a toolchanger, which requires some extra firmware (toolerator3000). I would like to add this carroussel type of firmware to the card. LitexCNC is going to have a plugin eco-system to add more components in the future.
The following user(s) said Thank You: tommylight, besriworld
Please Log in or Create an account to join the conversation.
- besriworld
- Offline
- Elite Member
Less
More
- Posts: 239
- Thank you received: 66
20 Jan 2023 14:26 - 20 Jan 2023 14:32 #262494
by besriworld
Replied by besriworld on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
I want to try, is there anything special when starting in virtual OS ?
Last edit: 20 Jan 2023 14:32 by besriworld.
Please Log in or Create an account to join the conversation.
21 Jan 2023 12:21 #262573
by TOLP2
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
If you mean the dev containers I use: you can test whether it compiles and build firmware. I never got the card to talk to the container, because UDP packets get lost. One way to solve that is to use a cheap USB to Ethernet adapter and assign that to the container. My solution is just to use an old NUC, so no virtual OS for me anymore.
Please Log in or Create an account to join the conversation.
24 Jan 2023 06:40 #262801
by wuyatom
Replied by wuyatom on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Attachments:
Please Log in or Create an account to join the conversation.
24 Jan 2023 11:03 #262808
by wzor
Replied by wzor on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Have you tried naming a hal file in English?
Please Log in or Create an account to join the conversation.
25 Jan 2023 08:43 #262863
by TOLP2
I expect this week to finish a full refactoring of the driver. This new driver allows for:
Replied by TOLP2 on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
The error you get is that the checksum of the board is different from the checksum of the config-file. Could you please verify:What is the reason for this? The first time you brush the firmware, you can connect the board, and the linuxcnc can also display it. After the linuxcnc is closed, the connection will be like this
- you did not change the JSON-file after compiling the firmware?
As even changing the name or changing a line ending will lead to different CRC checksum, changing names requires recompilation. Maybe something went wrong while copying the file. You can check the check-sum your self with an online CRC calculator. When compiling the driver it will also show you the calculated CRC which is stored on the board. - if JSON unchanged, do you use other then UTF-8 characters?
I didn't test it with extended character sets (i.e. UTF-16 etc.). These files might mess things up due to a BOM being present, which might be not read with Python, but are picked up by the driver.
I expect this week to finish a full refactoring of the driver. This new driver allows for:
- easily adding driver for new components. They are now stored in the folder ./driver/modules and are automatically picked up when compiling the driver. All of the modules in this folder have a fixed format, so easier to read and develop your own.
- the firmware can have any number of modules. If you only need GPIO, you only have to add GPIO. This makes the compilation of the firmware more efficient. Also this allows number of modules easily to be expanded.
- preparation is done for loading the config from the board instead from the JSON. If problems with loading from a config persist, this might be an option to make things easier (although you will lose the possibility to rename the pins, but you have the alias commands in HAL anyways)
{
"board_name": "test_PWM_GPIO",
"baseclass": "litexcnc.firmware.boards.ColorLight_5A_75E_V6_0",
"clock_frequency": 40000000,
"ethphy": {
"tx_delay": 0
},
"etherbone": {
"ip_address": "10.0.0.10",
"mac_address": "0x10e2d5000000"
},
"modules": [
{
"module_type": "gpio",
"input": [
{"pin":"j1:0", "name":"j1:1"},
{"pin":"j1:1", "name":"j1:2"},
{"pin":"j1:2", "name":"j1:3"},
{"pin":"j1:4", "name":"j1:5"},
{"pin":"j1:5", "name":"j1:6"},
{"pin":"j1:6", "name":"j1:7"},
{"pin":"j2:0", "name":"j2:1"},
{"pin":"j2:1", "name":"j2:2"},
{"pin":"j2:2", "name":"j2:3"},
{"pin":"j2:4", "name":"j2:5"},
{"pin":"j2:5", "name":"j2:6"},
{"pin":"j2:6", "name":"j2:7"},
{"pin":"j3:0", "name":"j3:1"},
{"pin":"j3:1", "name":"j3:2"},
{"pin":"j3:2", "name":"j3:3"},
{"pin":"j3:4", "name":"j3:5"},
{"pin":"j3:5", "name":"j3:6"},
{"pin":"j3:6", "name":"j3:7"},
{"pin":"j4:0", "name":"j4:1"},
{"pin":"j4:1", "name":"j4:2"},
{"pin":"j4:2", "name":"j4:3"},
{"pin":"j4:4", "name":"j4:5"},
{"pin":"j4:5", "name":"j4:6"},
{"pin":"j4:6", "name":"j4:7"},
{"pin":"j5:0", "name":"j5:1"},
{"pin":"j5:1", "name":"j5:2"},
{"pin":"j5:2", "name":"j5:3"},
{"pin":"j5:4", "name":"j5:5"},
{"pin":"j5:5", "name":"j5:6"},
{"pin":"j5:6", "name":"j5:7"},
{"pin":"j6:0", "name":"j6:1"},
{"pin":"j6:1", "name":"j6:2"},
{"pin":"j6:2", "name":"j6:3"},
{"pin":"j6:4", "name":"j6:5"},
{"pin":"j6:5", "name":"j6:6"},
{"pin":"j6:6", "name":"j6:7"},
{"pin":"j7:0", "name":"j7:1"},
{"pin":"j7:1", "name":"j7:2"},
{"pin":"j7:2", "name":"j7:3"},
{"pin":"j7:4", "name":"j7:5"},
{"pin":"j7:5", "name":"j7:6"},
{"pin":"j7:6", "name":"j7:7"}
],
"output": [
{"pin":"j1:7" , "name":"j1:8" },
{"pin":"j1:8" , "name":"j1:9" },
{"pin":"j1:9" , "name":"j1:10"},
{"pin":"j1:10", "name":"j1:11"},
{"pin":"j1:11", "name":"j1:12"},
{"pin":"j1:12", "name":"j1:13"},
{"pin":"j1:13", "name":"j1:14"},
{"pin":"j1:14", "name":"j1:15"},
{"pin":"j9:0" , "name":"j9:1" },
{"pin":"j9:1" , "name":"j9:2" },
{"pin":"j9:2" , "name":"j9:3" },
{"pin":"j9:4" , "name":"j9:5" },
{"pin":"j9:5" , "name":"j9:6" },
{"pin":"j9:6" , "name":"j9:7" },
{"pin":"j10:0", "name":"j10:1"},
{"pin":"j10:1", "name":"j10:2"},
{"pin":"j10:2", "name":"j10:3"},
{"pin":"j10:4", "name":"j10:5"},
{"pin":"j10:5", "name":"j10:6"},
{"pin":"j10:6", "name":"j10:7"},
{"pin":"j11:0", "name":"j11:1"},
{"pin":"j11:1", "name":"j11:2"},
{"pin":"j11:2", "name":"j11:3"},
{"pin":"j11:4", "name":"j11:5"},
{"pin":"j11:5", "name":"j11:6"},
{"pin":"j11:6", "name":"j11:7"},
{"pin":"j12:0", "name":"j12:1"},
{"pin":"j12:1", "name":"j12:2"},
{"pin":"j12:2", "name":"j12:3"},
{"pin":"j12:4", "name":"j12:5"},
{"pin":"j12:5", "name":"j12:6"},
{"pin":"j12:6", "name":"j12:7"},
{"pin":"j13:0", "name":"j13:1"},
{"pin":"j13:1", "name":"j13:2"},
{"pin":"j13:2", "name":"j13:3"},
{"pin":"j13:4", "name":"j13:5"},
{"pin":"j13:5", "name":"j13:6"},
{"pin":"j13:6", "name":"j13:7"},
{"pin":"j14:0", "name":"j14:1"},
{"pin":"j14:1", "name":"j14:2"},
{"pin":"j14:2", "name":"j14:3"},
{"pin":"j14:4", "name":"j14:5"},
{"pin":"j14:5", "name":"j14:6"},
{"pin":"j14:6", "name":"j14:7"},
{"pin":"j15:0", "name":"j15:1"},
{"pin":"j15:1", "name":"j15:2"},
{"pin":"j15:2", "name":"j15:3"},
{"pin":"j15:4", "name":"j15:5"},
{"pin":"j15:5", "name":"j15:6"},
{"pin":"j15:6", "name":"j15:7"}
]
}, {
"module_type": "pwm",
"instances": [
{"pin":"j16:0", "name":"j16:1"},
{"pin":"j16:1", "name":"j16:2"},
{"pin":"j16:2", "name":"j16:3"},
{"pin":"j16:4", "name":"j16:5"},
{"pin":"j16:5", "name":"j16:6"},
{"pin":"j16:6", "name":"j16:7"}
]
}, {
"module_type": "encoder",
"instances": [
{
"name": "MPG",
"pin_A":"j8:0",
"pin_B":"j8:1",
"pin_Z":"j8:2"
},
{
"name": "spindle_fb",
"pin_A":"j8:4",
"pin_B":"j8:5",
"pin_Z":"j8:6"
}
]
}
]
}
The following user(s) said Thank You: svb
Please Log in or Create an account to join the conversation.
25 Jan 2023 19:16 - 25 Jan 2023 19:19 #262898
by deroj
Replied by deroj on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
Thank you.
Now I am one step further
Now I am one step further
oj@oj-turner:~$ sudo litexcnc install_driver
INFO: Compiling LitexCNC driver...
Compiling realtime litexcnc.c
litexcnc.c: In function ‘litexcnc_register’:
litexcnc.c:261:9: warning: format not a string literal and no format arguments [-Wformat-security]
261 | rtapi_snprintf(fpga->name, sizeof(fpga->name), board_name->valuestring);
| ^~~~~~~~~~~~~~
litexcnc.c: In function ‘litexcnc_load_config’:
litexcnc.c:177:5: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
177 | fread(buffer, filelen, 1, fileptr); // Read in the entire file
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Linking litexcnc.so
cp litexcnc.so /usr/lib/linuxcnc/modules/
Compiling realtime litexcnc_eth.c
Linking litexcnc_eth.so
cp litexcnc_eth.so /usr/lib/linuxcnc/modules/
Compiling realtime pos2vel.c
Linking pos2vel.so
cp pos2vel.so /usr/lib/linuxcnc/modules/
INFO: LitexCNC driver installedoj@oj-turner:~$ halrun
halcmd: loadrt litexcnc
Note: Using POSIX realtime
litexcnc: Loading Litex CNC driver version 1.1.0
halcmd: exit
litexcnc: LitexCNC driver unloaded
Note: Using POSIX realtime
oj@oj-turner:~$
Last edit: 25 Jan 2023 19:19 by deroj.
Please Log in or Create an account to join the conversation.
25 Jan 2023 19:46 #262900
by deroj
Replied by deroj on topic ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board
oj@oj-turner:~$ halrun
halcmd: loadrt litexcnc
Note: Using POSIX realtime
litexcnc: Loading Litex CNC driver version 1.1.0
halcmd: loadrt litexcnc_eth config_file="/home/oj/LiteX-CNC/examples/5a-75b-v80-full.json"
litexcnc: loading litexCNC etherbone driver version 0.02
litexcnc: Connecting to board at address: 192.168.0.50:1234
litexcnc: Setting up modules...
litexcnc: - Watchdog
litexcnc: - Wallclock
litexcnc: - GPIO
litexcnc: - PWM
litexcnc: - Stepgen
litexcnc: - Encoder
litexcnc: Creating read and write buffers...
litexcnc: - Write buffer: 100 bytes)
litexcnc: - Read buffer: 116 bytes)
litexcnc: Exporting functions...
halcmd:
The following user(s) said Thank You: TOLP2
Please Log in or Create an account to join the conversation.
Time to create page: 0.203 seconds