Remora - ethernet NVEM cnc board

More
20 Apr 2022 23:01 #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?
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 or Create an account to join the conversation.

More
20 Apr 2022 23:11 #240767 by royka
No that's not what I'm seeing. however I do see the unexpexted time-out the moment I unlock.
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 or Create an account to join the conversation.

More
20 Apr 2022 23:13 #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
## 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.
Attachments:
The following user(s) said Thank You: royka

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

More
20 Apr 2022 23:22 #240769 by royka
You are awesome! tomorrow I could try further things if you want to
## 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 or Create an account to join the conversation.

More
21 Apr 2022 21:03 #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.
The following user(s) said Thank You: tommylight, royka, spdbmp927

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

More
21 Apr 2022 22:09 #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 or Create an account to join the conversation.

More
22 Apr 2022 00:31 #240842 by scotta
The F2 and F4 series are very compatible. It should only require the clock configuration to be updated.

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

More
22 Apr 2022 05:18 - 22 Apr 2022 05:22 #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
Last edit: 22 Apr 2022 05:22 by Domi.

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

More
22 Apr 2022 07:41 #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 or Create an account to join the conversation.

More
22 Apr 2022 21:38 #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 or Create an account to join the conversation.

Time to create page: 0.336 seconds
Powered by Kunena Forum