ColorCNC Colorlight 5A-75E/5A-75B as FPGA controller board

More
04 Mar 2022 04:52 #236312 by tuxcnc

What is the vendor and product id of your programmer ?

 

[58083.900292] usb 8-1: new full-speed USB device number 2 using xhci_hcd
[58084.099369] usb 8-1: New USB device found, idVendor=09fb, idProduct=6001, bcdDevice= 4.00
[58084.099386] usb 8-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[58084.099394] usb 8-1: Product: USB-Blaster
[58084.099399] usb 8-1: Manufacturer: Altera
[58084.099405] usb 8-1: SerialNumber: 8a64SEZW

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

More
04 Mar 2022 08:09 #236318 by ALittleOffTheRails
Yep that should work with openfpgaloader
openfpgaloader -c usb-blaster yourbitfile.bit

There are other switches you can use. Best to read the docs github.com/trabucayre/openFPGALoader

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

More
04 Mar 2022 22:08 #236376 by TOLP2
Just uploaded a new IceStudio file for a stepgenerator; this file can be easily converted to a Verilog file and subsequently added to the firmware.

Why not using Pluto-Step? I didn't like the fact it does not take acceleration into account on the FPGA. The standard LinuxCNC stepgen does take acceleration into account. So the code of make_pulses is converted to something a FPGA should easilty run...
 
The following user(s) said Thank You: ALittleOffTheRails

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

More
05 Mar 2022 15:46 - 05 Mar 2022 15:46 #236437 by cncwhacko
You are doing a great job making this more modular and extensible! Super cool to see it getting pieced together--looking forward to the step generation code. At that point it would have all of my immediate needs covered. I also ordered some SN74CBT3245APWR to replace on the board for input pins, ALittleOffTheRails convinced me ;-). It would be silly not to make use of some of these pins for inputs as well down the line.

I did some further testing with the older version of the gateware and im still suspect of the buffer depth (1060) being too deep as most the liteeth docs show max of 255, ref; github.com/enjoy-digital/litex/blob/mast...ote/etherbone.py#L92 . I was able to do a test to make sure that the board in general works just fine running something like github.com/enjoy-digital/liteeth/blob/ma...ch/test_etherbone.py and it will happily read/respond to the registers in this case.
Last edit: 05 Mar 2022 15:46 by cncwhacko.
The following user(s) said Thank You: ALittleOffTheRails

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

More
06 Mar 2022 10:30 - 06 Mar 2022 10:33 #236494 by ALittleOffTheRails
Did you see this post about a mod to the 5V rail. I'm guessing you may of but just in case anyone else reads this thread.
https://twitter.com/claude1079/status/1231194849350647808

Direct link doesn't work, so you'll have to copy & paste link.
Last edit: 06 Mar 2022 10:33 by ALittleOffTheRails.

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

More
06 Mar 2022 13:31 - 06 Mar 2022 14:42 #236502 by TOLP2
Nice find with the mod, didn't see that one yet!

I've just received my ColorLight card and I managed to setup the communication between my laptop (Win10) and the card. As soon as a I get my toolchain working I can start trying to make a Hello world example work, communication sorted out and make a start on testing on LiteX-CNC. When both GPIO and PWM/PDM work, I'm more comfortable to start debugging the step generator as well.

The problem I have at this moment is that LiteX cannot find the cross-compiler for the elfs (most likely it is somewhere Rivendell as a well protected  ). I'm re-building my development container* to include LiteX, toolchain and oss-cad-suite, but that will take a good hour to cook. Will keep you posted whether it works. Update: It compiles now, some issues between installing as root (user root that is, not system wide as was intended) and trying to use it as a local user...

*Development container is basically a Docker container which mimics my LinuxCNC machine as good as possible, and allows for development on any machine (also Win10/11) within the same environment.
Last edit: 06 Mar 2022 14:42 by TOLP2.

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

More
06 Mar 2022 21:39 - 06 Mar 2022 21:55 #236532 by TOLP2
OK, I'm lost ...

As a hello world example I tried to build  this  example. After building I can download the svf-file to the 5A-75E V8.0 , so far so good.

When I try to start a connection using the litex-server (UDP) protocol I get a 
socket.timeout: timed out error
which leads to a
Exception: Unable to probe Etherbone server at 192.168.1.20. error. Any suggestions?

Maybe it is due that I have a straight UTP cable between the PC and the card instead of a cross-over?
Last edit: 06 Mar 2022 21:55 by TOLP2. Reason: Added board-info

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

More
06 Mar 2022 22:05 - 06 Mar 2022 22:13 #236534 by cncwhacko
I dont think crossover is required, I connected via a shared switch however, doing my testing. I do recall reading something that you have to be connected at full 1000mbps (1gig) as the phy is only setup to work at that speed.

As you mentioned you have the 5A-75E V8. I will share my findings of the same board. I found that the revision 6.0 pinout to align, however, i also found an error in the litex board file:
github.com/litex-hub/litex-boards/blob/m...light_5a_75e.py#L216

you can see the last connector line:
```
("j16", "F14 G13 F12 - F13 F14 E14 N4 N5 N3 P3 P4 M3 N1 M4 -"),
```

The first pin is not F14 (and in fact you can see it repeated later, its actually G14 on my board, which was confirmed using the chubby75 pinscan gateware. The rest of the pins all matched up. As such, I edited the mappings in my toolchain locally, just something to point out. I've been meaning to cut an issue with the litex folks to update it as the error was propagated originally through from the chubby75 repo and made its way there. Both could/should be updated.

Edit: github.com/litex-hub/litex-boards/issues/362 opened to get the pin mapping fixed.
Last edit: 06 Mar 2022 22:13 by cncwhacko.
The following user(s) said Thank You: TOLP2

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

More
08 Mar 2022 22:21 #236719 by TOLP2
They fixed the error in the LiteX-boards repository.

In the meanwhile, I tried with a cross-cable to no avail. So something has to be wring. @ cncwhackois it possible to share a bit-file or svf-file which works on your card so I can verify my OpenOCD programmer actually works? Would be lovely if I can do a ping command or run a LiteX-server on the card and knowing it works.

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

More
08 Mar 2022 23:00 #236721 by cncwhacko
sure thing, attached my version built from the original colorlight .py files that OP posted. ip for this is configured is 192.168.1.50.

Turns out i dont have forum permissions to upload files, here's the link via google drive

Also note that you should be using the port nearest the 5v power connector, the other one doesnt work.
The following user(s) said Thank You: TOLP2

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

Moderators: PCWjmelson
Time to create page: 0.306 seconds
Powered by Kunena Forum