Remora - ethernet NVEM / EC300 / EC500 cnc board

More
4 years 6 months ago #240766 by scotta

Thank you, it would be nice if you find something.
Hi Roy, do you launch LiniuxCNC from the command line. I get the following trivkins error on launch. LinuxCNC still launches, communication with NVEM is established and after homing the following error is triggered when the program is run. Is this what you see?
Code:
LINUXCNC - 2.8.2 Machine configuration directory is '/home/pi/linuxcnc/configs/PrintNC' Machine configuration file is 'PrintNC.ini' Starting LinuxCNC... Found file(REL): ./remora-eth-no-spindle.hal Waiting for component 'trivkins' to become ready.......Waited 3 seconds for master.  giving up.

Please Log in to join the conversation.

More
4 years 6 months ago #240767 by royka
No that's not what I'm seeing. however I do see the unexpexted time-out the moment I unlock.
Code:
linuxcnc /home/roy/linuxcnc/configs/PrintNC/PrintNC/PrintNC.ini LINUXCNC - 2.8.2 Machine configuration directory is '/home/roy/linuxcnc/configs/PrintNC/PrintNC' Machine configuration file is 'PrintNC.ini' Starting LinuxCNC... Found file(REL): ./remora-eth-no-spindle.hal Note: Using POSIX realtime note: MAXV     max: 125.000 units/sec 7500.000 units/min note: LJOG     max: 125.000 units/sec 7500.000 units/min note: LJOG default: 30.000 units/sec 1800.000 units/min note: jog_order='XYZ' note: jog_invert=set([]) Unexpected realtime delay on task 1 with period 1000000 This Message will only display once per session. Run the Latency Test and resolve before continuing. Unexpected realtime delay on task 1 with period 1000000 This Message will only display once per session. Run the Latency Test and resolve before continuing.
I could start the gcode and after a while, it could be a few seconds or minutes it gives the following error

Please Log in to join the conversation.

More
4 years 6 months ago #240768 by scotta

Hmm, the next step in the code is to erase the flash. Some more debug code added to the bin file.
 
Could it be something with the register or control bits?
www.st.com/resource/en/programming_manua...microelectronics.pdf
Code:
## Entering IDLE state tftp receive call back reached tftp write process reached  wrq receive callback registered  Flash unlocked  About to erase Flash Remora-NVEM starting ## Entering SETUP state

 
The HAL code should be robust. I've disabled the watchdog to see if it's a race condition between the watchdog and the flash erase.

Please Log in to join the conversation.

More
4 years 6 months ago #240769 by royka
You are awesome! tomorrow I could try further things if you want to
Code:
## Entering IDLE state tftp receive call back reached tftp write process reached  wrq receive callback registered  Flash unlocked  About to erase Flash  Flash erased  ack packet sent tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached tftp wrp callback reached Checking new configuration file Length = 1652 JSON length = 6607 crc32 = c1997785 JSON Config file received Ok Moving new config file to Flash storage  About to erase Flash Remora-NVEM starting ## Entering SETUP state 1. Loading JSON configuration file from Flash memory 2. Parsing JSON configuration file Config deserialisation - Deserialization succeeded 3. Configuring threads Creating thread 40000 Creating thread 1000 4. Loading modules Creating a std module Creating an Ethernet communication monitoring module Base thread object X - Joint 0 step generator Creating a std module Creating Pin @   port = GPIOE   pin = 15 Creating Pin @   port = GPIOE   pin = 14 Base thread object Y - Joint 1 step generator Creating a std module Creating Pin @   port = GPIOE   pin = 13 Creating Pin @   port = GPIOE   pin = 12 Base thread object Z - Joint 2 step generator Creating a std module Creating Pin @   port = GPIOE   pin = 11 Creating Pin @   port = GPIOE   pin = 10 FHA Make Digital Input at pin PD_12 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 12 FHB Make Digital Input at pin PD_13 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 13 SRO Make Digital Input at pin PB_14 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOB   pin = 14 SJR Make Digital Input at pin PB_15 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOB   pin = 15 STOP Make Digital Input at pin PD_8 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 8 PROBE Make Digital Input at pin PD_9 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 9 INP3 Make Digital Input at pin PD_10 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 10 INP4 Make Digital Input at pin PD_11 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 11 INP5 Make Digital Input at pin PD_14 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 14 INP6 Make Digital Input at pin PD_15 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 15 INP7 Make Digital Input at pin PC_6 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 6 INP8 Make Digital Input at pin PC_7 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 7 INP9 Make Digital Input at pin PC_8 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 8 INP10 Make Digital Input at pin PC_9 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 9 INP11 Make Digital Input at pin PA_11 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOA   pin = 11 INP12 Make Digital Input at pin PA_12 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOA   pin = 12 INDEX Make Digital Input at pin PC_15 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 15 x100 Make Digital Input at pin PA_15 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOA   pin = 15 x10 Make Digital Input at pin PC_10 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 10 x1 Make Digital Input at pin PC_11 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 11 ESTOP Make Digital Input at pin PC_12 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOC   pin = 12 Xin Make Digital Input at pin PD_7 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 7 Yin Make Digital Input at pin PD_4 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 4 Zin Make Digital Input at pin PD_3 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 3 Ain Make Digital Input at pin PD_2 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 2 Bin Make Digital Input at pin PD_1 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 1 Cin Make Digital Input at pin PD_0 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOD   pin = 0 WHA Make Digital Input at pin PB_7 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOB   pin = 7 WHB Make Digital Input at pin PB_6 Creating a std module   Setting pin as No Pull Creating Pin @   port = GPIOB   pin = 6 OUT1 Make Digital Output at pin PC_3 Creating a std module Creating Pin @   port = GPIOC   pin = 3 OUT2 Make Digital Output at pin PC_2 Creating a std module Creating Pin @   port = GPIOC   pin = 2 OUT3 Make Digital Output at pin PB_8 Creating a std module Creating Pin @   port = GPIOB   pin = 8 OUT4 Make Digital Output at pin PB_9 Creating a std module Creating Pin @   port = GPIOB   pin = 9 OUT5 Make Digital Output at pin PE_0 Creating a std module Creating Pin @   port = GPIOE   pin = 0 OUT6 Make Digital Output at pin PE_1 Creating a std module Creating Pin @   port = GPIOE   pin = 1 OUT7 Make Digital Output at pin PE_2 Creating a std module Creating Pin @   port = GPIOE   pin = 2 OUT8 Make Digital Output at pin PE_3 Creating a std module Creating Pin @   port = GPIOE   pin = 3 OUT9 Make Digital Output at pin PC_13 Creating a std module Creating Pin @   port = GPIOC   pin = 13 OUT10 Make Digital Output at pin PC_14 Creating a std module Creating Pin @   port = GPIOC   pin = 14 Spindle PWM Creating a std module NVMPG Creating a std module Registering interrupt for interrupt number = 58 Creating NVMPG module UART1 DMA configured ## Entering START state Starting the BASE thread Registering interrupt for interrupt number = 25         power on Timer 1         timer started Starting the SERVO thread Registering interrupt for interrupt number = 28         power on Timer 2         timer started ## Entering IDLE state ## Entering RUNNING state ## Entering RESET state    Resetting rxBuffer ## Entering IDLE state

Please Log in to join the conversation.

More
4 years 6 months ago #240811 by scotta
I've merged the feature branch back into the develop branch with the intent of updating the main branch and a release. Hopefully the issues causes with the watchdog timeout are no longer as I've implemented a system reset when required rather than the watchdog. Much more predictable.

github.com/scottalford75/Remora-NVEM/tree/develop/Firmware

Thanks for those willing to test and persist with the bug fixes.

Please Log in to join the conversation.

More
4 years 6 months ago #240823 by royka
I'm wondering if the stm32f207 is not fast enough for the speeds I would like, if replacing it with an 180mhz F4 chip is an option. It's pin compatible. Would it be hard to change the firmware?

Please Log in to join the conversation.

More
4 years 6 months ago #240842 by scotta
The F2 and F4 series are very compatible. It should only require the clock configuration to be updated.

Please Log in to join the conversation.

More
4 years 6 months ago #240853 by Domi
What procedure do you use when scotta changes the firmware? Are you installing on new eth.h and eth.c? And then how do you run linucncn from the command line? Which files to place then and where? Do you work with print.hal or remora nvem hal? I'm confused. So far, everything has worked for me, but I'm asking me to do it with you. Well thank you

Please Log in to join the conversation.

More
4 years 6 months ago #240858 by Domi
I put a new file bin via STlink to NVEM. What should I do with Remora-NVEM-develop? What is it for?

Please Log in to join the conversation.

More
4 years 6 months ago #240918 by scotta
Hi Domi, 

The latest work has been on the firmware so updating the bin file was all that was necessary.

To get Remora-NVEM up and running (from the develop branch - this will be merged into main soon)

1. Install the LinuxCNC Remora Ethernet component
github.com/scottalford75/Remora/tree/fea...omponents/Remora-eth

2. Add the sample configuration to your LinuxCNC config directory
github.com/scottalford75/Remora/tree/fea...gSamples/remora-nvem

3. Flash the latest firmware
github.com/scottalford75/Remora-NVEM/tree/develop/Firmware

You have to set you computer IP address to be in the 10.10.10.x subnet.

Please Log in to join the conversation.

Time to create page: 0.386 seconds
Powered by Kunena Forum