Remora - Rpi Software Stepping Using External Microcontroller via SPI

More
24 Jan 2023 02:02 #262787 by cakeslob

For the LPC1768 boards, MODDMA is needed, which unfortunately has not been migrate to Mbed OS6. I did have a go and got it kind of working but it was unstable. If we drop LPC1768 support, we could move to OS6.

I see. Im not going to suggest that, it appears there is still interest for those boards.

We'd still suffer from bootloader issues which have not be solved for some boards STM32F and the SKR3.

Just finished up testing, mbed6 changed some things with system_clock, which appear to be bootloader related.
Octopus446 - working with bootloader
Monster8 - bootloader messing with comms
Spider - working with bootloader , and not working without bootloader

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

More
30 Jan 2023 05:13 #263209 by cakeslob
I was working on the stm32g0b1 manta 8 this weekend, got everything working, bootloader, sd, servo and base, and thats where it stops working, and loops that in terminal. I locked up the one board while trying to set up debug to find out why. I copied the stm32f1, and went from migration guides f1 to f0, then f0 to g0. It says something about a dmamux.
github.com/cakeslob/Remora/tree/mbedos6/...a-OS6/TARGET_STM32G0
www.st.com/resource/en/application_note/...microelectronics.pdf
www.st.com/resource/en/application_note/...microelectronics.pdf
www.st.com/en/microcontrollers-microproc.../stm32g0-series.html


When I was setting up the G0B1 to work with bootloader, I think I see the problem with the SKR3 bootloader.
github.com/cakeslob/Remora/blob/hello-wo...3/system_clock.c#L57

This seems the issue with the bootloader, bootloader appears to be working now with this in the system_clock. I cant figure out the proper systemclock settings to print hello world properly though, Ive done something wrong with the config

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

More
03 Feb 2023 20:26 #263618 by scotta
Hi, can you elaborate on the clock issue. It's not jumping out at me when I look at the code in the link.

Thanks

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

More
03 Feb 2023 21:26 #263632 by cakeslob
Sorry, yeah I thought clock issue because it would print "his is hel" and then garble the rest, so I thought clock issue, but I loaded it without bootloader by accident and it worked fine. I am now thinking I am missing something in the system_clock file, where the vector table offset part is. It appears to be loading the firmware from SD everytime, and it will print to terminal, but I am not getting the whole thing, just "this is hel"

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

More
22 Feb 2023 07:37 - 22 Feb 2023 07:38 #265016 by jonpry
I was able to get Remora to boot on SKRMini V2 with bootloader with this change to system_clock.c

SCB->VTOR = MBED_APP_START | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */

However, I think something is wrong with HSE startup. Something strange happens after printing a couple lines of text unless I put my finger on the crystal and effectively force startup on HSI. Still working on that one.
Last edit: 22 Feb 2023 07:38 by jonpry.

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

More
22 Feb 2023 08:30 #265019 by Zuo99
Hi, long time no see, I am back to this forum.
I am considering some extreme cases, adding degrees of freedom and multi-material solutions at the head of the printer.
I would like to know how many stepper motors the current Remora supports in theory. My solution requires nine stepper motors. The Octopus solution is currently used and can support eight axes. Exp Mot is considered to add one more motor.
I have tried six axis with SKR1.4 (5axis) and Exp Mot and it works fine.

Thanks again for your work.

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

More
22 Feb 2023 09:33 #265022 by Zuo99
Well, I read remora.h just now, it says Max 8 joints,
Can this setting be changed to 9? , I need those changes.

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

More
23 Feb 2023 01:19 #265082 by cakeslob

I was able to get Remora to boot on SKRMini V2 with bootloader with this change to system_clock.c

SCB->VTOR = MBED_APP_START | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */

However, I think something is wrong with HSE startup. Something strange happens after printing a couple lines of text unless I put my finger on the crystal and effectively force startup on HSI. Still working on that one.

hey jonpry
I dont know very much about the f1, and I dont have one I can check with, but you seem to have a handle on it. If the f1 is going to be like the f4, we gotta relocate the vector table and set he app start thing. I dont know the exact location, but it might be here according to some marlin stuff, but you should check your self, or you can wreck the bootloader.
also check that you still have a bootloader
// replace in system_clock, find out the bootloader offset for your specific board
#define VECT_TAB_OFFSET  0x7000 /*!< Vector Table base offset field.
                                  This value must be a multiple of 0x200. */
// put in mbed_app.json under the target you are using
"target.mbed_app_start": "0x08007000",

Well, I read remora.h just now, it says Max 8 joints,
Can this setting be changed to 9? , I need those changes.


Hey Zou, that sounds like an interesting project. I was under the impression the 8 drives has something to do with the SPI and computer numbers but hopefully Scott can field this one.

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

More
More
25 Apr 2023 21:36 #269902 by cakeslob
I recently returned from the linuxcnc meeting, where I did a presentation on remora. the reception was very good, there where a lot of very smart people who where all very supportive. Thank you everyone for your time and support, and thanks to Tormach for hosting the event. There was a lot of interest from the group, especially in the ethernet department.

One of the things on the agenda for the presentation, Ive uploaded a repo for using a Nucleo64 F446 with the red grbl shield. This is a big step in accessibility, as these board combo can be found for under $25. The other thing I like, is we are basically upgrading/upcycling the grbl shield to do things it could not do under grbl, like 4 axis, closed loop steppers, and highspeed encoders.

The repo came together using parts from other users, like flexi-hal for their static configuration, and user FelixFees on github for his spi2 option. Those 2 parts made the whole thing come together nicely. The static configuration for the nucleo is somewhat basic at the moment, and more modules need to be added. But for the time being, it has 4 stepgens and 3 inputs for limits.

I have some rough explanation in the repo here
github.com/cakeslob/Remora/tree/nucleo_static
This is the SPI2 pin diagram. It is a placeholder until I make better docs.
 

Another thing I have been working on is using the nucleo with those cheap chinese arduino ethernet shields. This would increase accessibility by much more as RPI is hard to get at the moment. This configuration is nice because there is an SD card included in the shield. There is somewhat of a pin conflict when trying to stack the ethernet shield with grbl shield on top. It requires some physical pin relocation, using jumpers. It is a minor inconvenience, but I will fully document it when the time comes. Although the SPI to ethernet branch is still in development, I will soon upload the repo/firmware for this development for anyone who is looking to play with it.


The grbl shield configuration will physically look like this, similar to what user gtt38 is using.

File Attachment:

Attachments:
The following user(s) said Thank You: tommylight, rodw, scotta, mikemacwillie

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

Time to create page: 0.325 seconds
Powered by Kunena Forum