Remora for RP2040
- cakeslob
- Offline
- Platinum Member
-
Less
More
- Posts: 925
- Thank you received: 277
02 Feb 2025 00:11 #320373
by cakeslob
this isnt necessarily within the scope of remora, but more related to linuxcnc and hal config, but if you used one of the config generators, I would suggest redoing your config for a mesa card, its fairly easy to convert a mesa config to a remora config with minor changes, paraport had more stuff going on last time i looked.
otherwise, it would be helpful if you posted the errors you get when trying to start linuxcnc, these can be easily viewed by opening linuxcnc in terminal. Posting your ini and hal files would also be helpful. there isnt much difference between a plasmac config and any any other config, except there are a few hardcoded hal pins you need to connect to for plasmac.
Replied by cakeslob on topic Remora for RP2040
hello scotta and thank you for your amazing work
i got my rp 2040 working with remora and its amazing
it works with axis and qtdragon
my question now is how to get it to work with qtplasmac, i cant get it to work even though i copied all the necessary config lines in both hal and ini files from my par port configs
can anyone help me with this
Thanks in advance
this isnt necessarily within the scope of remora, but more related to linuxcnc and hal config, but if you used one of the config generators, I would suggest redoing your config for a mesa card, its fairly easy to convert a mesa config to a remora config with minor changes, paraport had more stuff going on last time i looked.
otherwise, it would be helpful if you posted the errors you get when trying to start linuxcnc, these can be easily viewed by opening linuxcnc in terminal. Posting your ini and hal files would also be helpful. there isnt much difference between a plasmac config and any any other config, except there are a few hardcoded hal pins you need to connect to for plasmac.
Please Log in or Create an account to join the conversation.
- kb9ydn
- Offline
- New Member
-
Less
More
- Posts: 3
- Thank you received: 2
20 Oct 2025 22:21 #336786
by kb9ydn
Replied by kb9ydn on topic Remora for RP2040
I was just wondering when the RP2040 version of Remora might be updated to use the new Remora-core code? I'm working on designing a new board using an RP2354. It won't be ready for awhile yet but with winter coming I should have some more time to work on it.
C|
C|
Please Log in or Create an account to join the conversation.
- 3404gerber
- Offline
- Senior Member
-
Less
More
- Posts: 47
- Thank you received: 13
11 Feb 2026 18:29 #342809
by 3404gerber
Replied by 3404gerber on topic Remora for RP2040
Hi all,
I'm trying to compile Remora for RP2040 from source and I have some issues. There were some compiling errors that I could solve (in the ioLibrary one #include <string.h> was missing and the ftp_getc function call was throwing an error, so I commented it out), but I'm still having problems to make it run. I can ping the pico and upload a configuration, but when I start lcnc and reset the e-stop, there are a few (5-10) packets exchange and then I have a Ethernet error. If I turn on usb serial port on the pico I can see that it goes in Running state, then resets and go back in Idle state. So first guess is that there is some problem with the ethernet communication.
The thing is that if I load the firmware remora-rp2040-2.0.0 from the repository, I can reset the e-stop in lcnc without problems. So I exclude any hardware/wiring or configuration/component problem.
Can maybe someone point me in the right direction for this problem? Was the rp2040-2.0.0 firmware compiled with the source code on the repo? Could it be an issue with the ioLibrary as it is the one throwing errors on compilation? Or did I miss a configuration in the CMakeLists or in configuration.h? (I'm using a pico board with a W5500 ethernet over SPI chip, connected on pins 16-20)
Thanks in advance,
Luca
I'm trying to compile Remora for RP2040 from source and I have some issues. There were some compiling errors that I could solve (in the ioLibrary one #include <string.h> was missing and the ftp_getc function call was throwing an error, so I commented it out), but I'm still having problems to make it run. I can ping the pico and upload a configuration, but when I start lcnc and reset the e-stop, there are a few (5-10) packets exchange and then I have a Ethernet error. If I turn on usb serial port on the pico I can see that it goes in Running state, then resets and go back in Idle state. So first guess is that there is some problem with the ethernet communication.
The thing is that if I load the firmware remora-rp2040-2.0.0 from the repository, I can reset the e-stop in lcnc without problems. So I exclude any hardware/wiring or configuration/component problem.
Can maybe someone point me in the right direction for this problem? Was the rp2040-2.0.0 firmware compiled with the source code on the repo? Could it be an issue with the ioLibrary as it is the one throwing errors on compilation? Or did I miss a configuration in the CMakeLists or in configuration.h? (I'm using a pico board with a W5500 ethernet over SPI chip, connected on pins 16-20)
Thanks in advance,
Luca
Please Log in or Create an account to join the conversation.
- eraserhd
- Offline
- New Member
-
Less
More
- Posts: 4
- Thank you received: 2
29 Mar 2026 23:31 #344933
by eraserhd
Replied by eraserhd on topic Remora for RP2040
@3404gerber
What I've found is that the existing firmware needs to be configured for debug build. There's a naive spinlock var not marked volatile and the compiler optimizes the loop to an infinite hang. I tried to mark it as volatile, but then I got to ~300 packets instead of ~7. Debug builds do work.
I've refactored to remove the need for the spinlock entirely, and will contribute back whatever Scott will take. My current repo is github.com/eraserhd/Remora-RP2040-W5500/tree/scratch . Optimized builds run great from this branch, and there's a Nix flake with a reproducible build environment.
I'm zeroing in on doing stepgen with the Pico's PIO. It's now properly separated out to do it.
What I've found is that the existing firmware needs to be configured for debug build. There's a naive spinlock var not marked volatile and the compiler optimizes the loop to an infinite hang. I tried to mark it as volatile, but then I got to ~300 packets instead of ~7. Debug builds do work.
I've refactored to remove the need for the spinlock entirely, and will contribute back whatever Scott will take. My current repo is github.com/eraserhd/Remora-RP2040-W5500/tree/scratch . Optimized builds run great from this branch, and there's a Nix flake with a reproducible build environment.
I'm zeroing in on doing stepgen with the Pico's PIO. It's now properly separated out to do it.
The following user(s) said Thank You: 3404gerber
Please Log in or Create an account to join the conversation.
- scotta
-
Topic Author
- Offline
- Platinum Member
-
Less
More
- Posts: 958
- Thank you received: 487
30 Mar 2026 19:47 #344968
by scotta
Replied by scotta on topic Remora for RP2040
Hi eraserhd,
Thanks for debugging this. I've not worked on the RP2040 for some time. This Remora port was a hotel room project when I was travelling for work.
I'd be interested to see a pull request to merge your work. If you have time you might also look to update the stepgen to send back the raw count like the recent Remora code for STMs, that way the latest Remora Linuxcnc component could be used.
Thanks for debugging this. I've not worked on the RP2040 for some time. This Remora port was a hotel room project when I was travelling for work.
I'd be interested to see a pull request to merge your work. If you have time you might also look to update the stepgen to send back the raw count like the recent Remora code for STMs, that way the latest Remora Linuxcnc component could be used.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- eraserhd
- Offline
- New Member
-
Less
More
- Posts: 4
- Thank you received: 2
30 Mar 2026 21:48 #344972
by eraserhd
Replied by eraserhd on topic Remora for RP2040
At this point, I've diverged quite a bit. I'm willing to do the work to separate it out, but do you want a big ugly PR or a stack of single-topic ones? I would start with a noop that makes indentation consistent (prefer 4 spaces, but 1 tab also works).
I'm also adding support for the new W55RP20 (docs.wiznet.io/Product/Chip/MCU/W55RP20/w55rp20-evb-pico), which has the W5500 on different GPIO and also conflicts with the example config. I also bought a RP2350 version to play with.
I'm also adding support for the new W55RP20 (docs.wiznet.io/Product/Chip/MCU/W55RP20/w55rp20-evb-pico), which has the W5500 on different GPIO and also conflicts with the example config. I also bought a RP2350 version to play with.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- eraserhd
- Offline
- New Member
-
Less
More
- Posts: 4
- Thank you received: 2
30 Mar 2026 22:16 #344973
by eraserhd
Replied by eraserhd on topic Remora for RP2040
Also, unless I'm missing something, it's already sending back the raw count?
Please Log in or Create an account to join the conversation.
- 3404gerber
- Offline
- Senior Member
-
Less
More
- Posts: 47
- Thank you received: 13
05 Apr 2026 11:56 #345196
by 3404gerber
Replied by 3404gerber on topic Remora for RP2040
Hi eraserhd,
Thank you for your answer. I'd like to hear more about that spinlock var; I'm a noob in coding but willing to learn.
I quickly checked your repo and saw that you changed tons of things. I didn't go into the details but will get into the code and test it soon.
On my side, found out that it works stable if I don't use the base thread. And as I'm currently trying to work with TMC5160 in full SPI (with the driver internal step generator), I can live with the servo thread only.
Thank you for your answer. I'd like to hear more about that spinlock var; I'm a noob in coding but willing to learn.
On my side, found out that it works stable if I don't use the base thread. And as I'm currently trying to work with TMC5160 in full SPI (with the driver internal step generator), I can live with the servo thread only.
Please Log in or Create an account to join the conversation.
- eraserhd
- Offline
- New Member
-
Less
More
- Posts: 4
- Thank you received: 2
07 Apr 2026 17:25 #345281
by eraserhd
Replied by eraserhd on topic Remora for RP2040
I didn't make a fix for the spinlock var because restructuring the code to try and implement PIO eliminated it. I'm still working on the PIO code, but "semaphore" needs a "volatile" keyword in front of it:
github.com/scottalford75/Remora-RP2040-W...read/pruThread.h#L31
I don't remember if "execute" also needs it. "semaphore" is intentionally used to synchronize the two CPU cores, so you need to tell the compiler the value can change any time you look at it.
github.com/scottalford75/Remora-RP2040-W...read/pruThread.h#L31
I don't remember if "execute" also needs it. "semaphore" is intentionally used to synchronize the two CPU cores, so you need to tell the compiler the value can change any time you look at it.
Please Log in or Create an account to join the conversation.
Time to create page: 0.165 seconds