- Posts: 37
- Thank you received: 5
Remora - ethernet NVEM / EC300 / EC500 cnc board
4 years 3 months ago #247535
by fintech
Replied by fintech on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Did you ever figure out what that unidentified IC was? I wonder if its an eprom with axis count info. I flashed my device with somebody else's ( hydroid7) firmware and the same axis count came up. Its must me pulling this info from somewhere during boot. Not unless hydroid7 firmware upload is 3 axis also. Just trying to figure out if axis count is in firmware or hardware.
Please Log in or Create an account to join the conversation.
4 years 3 months ago #247614
by scotta
Replied by scotta on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
We've never figured out what the mystery IC is but it is definitely how they restrict the number of axes available. I've just got a Digital Dream EC500 3 axis, it has all the componentry needed for 6 axes and I've got Remora running 99% with all 6 axes available.
So in future people should save the $ and buy 3 axis versions and use Remora firmware.
So in future people should save the $ and buy 3 axis versions and use Remora firmware.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
4 years 3 months ago #247619
by fintech
Replied by fintech on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Yeah, the axis and serial info must be stored somewhere. I did several full chip erases and the same serial number and axis count came back up. I got your firmware up, playing with it now.
The following user(s) said Thank You: scotta
Please Log in or Create an account to join the conversation.
4 years 3 months ago #247681
by MX_Master
Replied by MX_Master on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Currently I'm working on my own Ethernet controller (two stm32 black pills and a couple of cheap modules). And when I started a firmware part, I found an old project (firmware + LinuxCNC driver) of mine for the NVEM controller. This project can make a stable 200 KHz output for all 6 axes. I decided to deep into firmware to find out a new methods for the steps output. After a few weeks of testing I found two new methods and combined them into new firmware stepgen module. And now stepgen can outputing steps at 1 MHz rates (for the XY axes) and at 400 KHz rate (for the ZABC axes).
Please Log in or Create an account to join the conversation.
4 years 3 months ago #247734
by scotta
Replied by scotta on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
MX_Master, I'd love to know more if you are willing to share? The software DDS accumulator is great and useable for most application but is definitely limited. Are you using a timer to trigger DMA transfer to the IO port registers? Super curious and I love to keep learning.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
4 years 3 months ago - 4 years 3 months ago #247759
by MX_Master
Replied by MX_Master on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
NVEM developers made a hardware planning mistake, so we can't output pulses directly using STM's timers. But yea, we can use timers + DMA to write data to the GPIO BSRR registers. One problem here - we can use only timer 1 and 8 to do the trick because only those timers has a transfer requests for the DMA2 controller. DMA1 controller has no access to the GPIO BSRR registers. So after a first look we have just 2 stepdir channels for the high speed pulses generation. After second look I found out that we can use timer 1 and 8 for the other stepdir channels too. To do that we must use other timers to generate softly (inside IRQ handler) unused DMA transfer requests for the timer 1 and 8. As a pulses counter we using DMA transfer counter.
And now we got two methods:
FAST (timer1,8 -> DMA2 request -> DMA2 stream -> GPIO BSRR) - up to 1 MHz of pulses;
SLOW (timer3,4,6,7 -> IRQ handler -> DMA2 request -> DMA2 stream -> GPIO BSRR) - up to 400 KHz of pulses.
I can't show the sources because I'm using some parts of the code for the business. But this short description will help to understand the tricks.
And now we got two methods:
FAST (timer1,8 -> DMA2 request -> DMA2 stream -> GPIO BSRR) - up to 1 MHz of pulses;
SLOW (timer3,4,6,7 -> IRQ handler -> DMA2 request -> DMA2 stream -> GPIO BSRR) - up to 400 KHz of pulses.
I can't show the sources because I'm using some parts of the code for the business. But this short description will help to understand the tricks.
Last edit: 4 years 3 months ago by MX_Master. Reason: + screenshots
Please Log in or Create an account to join the conversation.
Time to create page: 0.254 seconds