Advanced Search

Search Results (Searched for: )

  • PCW
  • PCW's Avatar
12 Dec 2024 01:40 - 12 Dec 2024 01:42
Replied by PCW on topic Rotary Selector Switches & Resistors

Rotary Selector Switches & Resistors

Category: General LinuxCNC Questions

Here's a 4 --> 2 diode encoder with polarity adjusted
for 7I73 inputs that have built-in pullup resistors
(so read high if unconnected)

 

This browser does not support PDFs. Please download the PDF to view it: Download PDF



Note that mux_generic has built in debouncing so the capacitors should not
be needed if you use mux_generic to select jog increments etc.
  • fully_defined
  • fully_defined's Avatar
12 Dec 2024 01:17
Replied by fully_defined on topic Rotary Selector Switches & Resistors

Rotary Selector Switches & Resistors

Category: General LinuxCNC Questions

Rod, thanks. I get it now that digital/binary is the name of the game here.

I just need to know how to build the switch, physically. Peter recommended the diodes I linked to, offline, and I got the capacitors for debounce. I had problems in EdingCNC with the selector switch not behaving, when I wired it to the UIO-10 with one input per position. I supposed debounce caps would probably help in the transition between positions.

I found your page earlier, but your photos aren't very clear and the thread is 76 pages long. Is there a page there that is especially relevant to my goal?
  • rodw
  • rodw's Avatar
12 Dec 2024 01:10
Replied by rodw on topic Estop change position coordinate

Estop change position coordinate

Category: Basic Configuration

Stepper system

Take the time to home all on power up. A stepper system is normally limited to 200 discrete steps per rev.  Usually you uses microstepping and some drives (like the geckos) are hard coded to microstep.

When you power off the drives, they wil llikely jump to the nearest full step so you loose position anyway...
  • rodw
  • rodw's Avatar
12 Dec 2024 01:05
Replied by rodw on topic Rotary Selector Switches & Resistors

Rotary Selector Switches & Resistors

Category: General LinuxCNC Questions

Most things in LCNC are digital (on/off) inputs. Thats why we suggested you use a binary switch. Additionally, dealing with digital inputs with a MUX component uses less pins. eg MUX4 only needs 2 pins for 4 seperate states. Here is part of my build thread that deals with using binary switches and MUX4 for scale selection. The same process applies if using a MUX8 or larger
forum.linuxcnc.org/show-your-stuff/32029...build?start=20#85279
 
  • rodw
  • rodw's Avatar
12 Dec 2024 00:52

Issue with halcmd show pin not showing pins.

Category: EtherCAT

I have found you need to create a complete config before the pins are able to be displayed.
Keep going and hook up your drives and create a basic cia402 ? config using axis.
  • PCW
  • PCW's Avatar
12 Dec 2024 00:38
Replied by PCW on topic Teknic Clearpath SDSK wiring to 7i96s

Teknic Clearpath SDSK wiring to 7i96s

Category: General LinuxCNC Questions

1. If you are going to wire the step/dir inputs single ended, I would use a per drive GND for the
STEP- and DIR- pins. This is better electrically and allows you to swap drives easily if needed.

2. Since these are servo drives, I would make the enable controlled by a 7I96S output in turn
controlled by LinuxCNC, not permanently enabled as shown.

3. If you want to use the HLFB outputs in series I expect a higher than 5V supply would be needed
because of the per OPTO voltage drop. I would wire them in parallel instead (as long as they can
be programmed to indicate a fault by turning on) or use a 12/24V supply

4. The 7I96S input common needs to be connected to GND.
  • Zayoo
  • Zayoo
11 Dec 2024 23:31

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

I can confirm that generic_spi communicate with board.

@MirkoCNC
And not just headers, but also SPI lines. They should be as short as possible. I tested on my bord at 4Mhz no errors at 4.5Mhz wrong data and to many errors.
  • fully_defined
  • fully_defined's Avatar
11 Dec 2024 23:28 - 15 Dec 2024 02:08
Teknic Clearpath SDSK wiring to 7i96s was created by fully_defined

Teknic Clearpath SDSK wiring to 7i96s

Category: General LinuxCNC Questions

Edited 2024-12-14 to reflect what I think is correct, but I am currently still looking for confirmation. I want to refer to this post in the future.

I know this has been talked about in the past, but I could not find an example with the entire circuit in a single graphic like this. Executed in Goodnotes on iPad Pro M2 12.9".

The graphic below will reflect my current state of understanding of how to wire 4x Teknic Clearpath SDSK motors and 4x NPN-NC inductive proximity sensors to a Mesa 7i96s card for use in LinuxCNC. It will be updated as my understanding of the circuit evolves and improves, and contributors correct me.

File Attachment:


With daisy-chained HLFB:

File Attachment:
  • gbestwick
  • gbestwick
11 Dec 2024 22:53 - 11 Dec 2024 22:55

Issue with halcmd show pin not showing pins.

Category: EtherCAT

Hello everyone,
First, thank you to everyone who has been working hard on this aspect of LinuxCNC. Your work is greatly appreciated.

So, I have purchase a 16 in -16 out IO module to play with.

I have successfully got etherlab/ethercat installed. The service runs and when I run ethercat slaves I get:

0  0:0  PREOP  +  SG-ELC-ADIO-DI16-DO16-NPN(Digital 16-Input/16-Output)

When I run ethercat xml I get:
[code]
<?xml version="1.0" ?>
<EtherCATInfo>
  <!-- Slave 0 -->
  <Vendor>
    <Id>3992977410</Id>
  </Vendor>
  <Descriptions>
    <Devices>
      <Device>
        <Type ProductCode="#x00010204" RevisionNo="#x00000001">SG-ELC-ADIO-DI16-DO16-NPN(Digital 16-Input/16-Output)</Type>
        <Name><![CDATA[SG-ELC-ADIO-DI16-DO16-NPN(Digital 16-Input/16-Output)]]></Name>
        <Sm Enable="9" StartAddress="#xf02" ControlByte="#x44" DefaultSize="0" />
        <Sm Enable="9" StartAddress="#xf03" ControlByte="#x44" DefaultSize="0" />
        <Sm Enable="1" StartAddress="#x1000" ControlByte="#x0" DefaultSize="0" />
        <RxPdo Sm="0" Fixed="1" Mandatory="1">
          <Index>#x1a00</Index>
          <Name>Output Group 0</Name>
          <Entry>
            <Index>#x3101</Index>
            <SubIndex>1</SubIndex>
            <BitLen>8</BitLen>
            <Name>Output[00..07]</Name>
            <DataType>UINT8</DataType>
          </Entry>
        </RxPdo>
        <RxPdo Sm="1" Fixed="1" Mandatory="1">
          <Index>#x1a01</Index>
          <Name>Output Group 1</Name>
          <Entry>
            <Index>#x3101</Index>
            <SubIndex>2</SubIndex>
            <BitLen>8</BitLen>
            <Name>Output[08..15]</Name>
            <DataType>UINT8</DataType>
          </Entry>
        </RxPdo>
        <TxPdo Sm="2" Fixed="1" Mandatory="1">
          <Index>#x1600</Index>
          <Name>Input Group 0</Name>
          <Entry>
            <Index>#x3001</Index>
            <SubIndex>1</SubIndex>
            <BitLen>8</BitLen>
            <Name>Input[00..07]</Name>
            <DataType>UINT8</DataType>
          </Entry>
        </TxPdo>
        <TxPdo Sm="2" Fixed="1" Mandatory="1">
          <Index>#x1601</Index>
          <Name>Input Group 1</Name>
          <Entry>
            <Index>#x3001</Index>
            <SubIndex>2</SubIndex>
            <BitLen>8</BitLen>
            <Name>Input[08..15]</Name>
            <DataType>UINT8</DataType>
          </Entry>
        </TxPdo>
      </Device>
    </Devices>
  </Descriptions>
</EtherCATInfo>
I have created an XML file called ethercat-conf.xml and this is the contents:
[code]<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
    <!-- EtherCAT Slave -->
    <slave idx="0" type="generic" vid="0xee000002" pid="0x00010204" configPdos="true" name="D1">
      <dcConf assignActivate="300" sync0Cycle="1000000" sync0Shift="0"/>
      <!-- Sync Manager 0: Outputs Group 0 -->
      <syncManager idx="0" dir="out">
        <pdo idx="1a00">
          <pdoEntry idx="3101" subIdx="1" bitLen="8">
            <!-- Digital Outputs 1-8 -->
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-01" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-02" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-03" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-04" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-05" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-06" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-07" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-08" halType="bit"/>
          </pdoEntry>
        </pdo>
      </syncManager>

      <!-- Sync Manager 1: Outputs Group 1 -->
      <syncManager idx="1" dir="out">
        <pdo idx="1a01">
          <pdoEntry idx="3101" subIdx="2" bitLen="8">
            <!-- Digital Outputs 9-16 -->
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-09" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-10" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-11" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-12" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-13" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-14" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-15" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digout-16" halType="bit"/>
          </pdoEntry>
        </pdo>
      </syncManager>

      <!-- Sync Manager 2: Inputs Group 0 -->
      <syncManager idx="2" dir="in">
        <pdo idx="1600">
          <pdoEntry idx="3001" subIdx="1" bitLen="8">
            <!-- Digital Inputs 1-8 -->
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-01" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-02" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-03" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-04" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-05" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-06" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-07" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-08" halType="bit"/>
          </pdoEntry>
        </pdo>
        <pdo idx="1601">
          <pdoEntry idx="3001" subIdx="2" bitLen="8">
            <!-- Digital Inputs 9-16 -->
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-09" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-10" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-11" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-12" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-13" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-14" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-15" halType="bit"/>
            <complexEntry bitLen="1" halPin="lcec.0.0.digin-16" halType="bit"/>
          </pdoEntry>
        </pdo>
      </syncManager>
    </slave>
  </master>
</masters>

I run the command:
halcmd loadusr -W lcec_conf ethercat-config.xml
halcmd show pin lcec

I get:
Component Pins:
Owner   Type  Dir         Value  Name
     4  u32   OUT    0x00000001  lcec.conf.master-count
     4  u32   OUT    0x00000001  lcec.conf.slave-count


I feel like there should be a whole host of pins listed at this point. Can anyone please assist me? Mr. GPT hasn't got me anywhere.
[/code][/code]
  • Masterdrive
  • Masterdrive
11 Dec 2024 21:41
Replied by Masterdrive on topic Remora - ethernet NVEM / EC300 / EC500 cnc board

Remora - ethernet NVEM / EC300 / EC500 cnc board

Category: Computers and Hardware

Hi, there is no cpp source code for the NVMPG. I decompiled the extracted firmware and managed to find the serial transmission section. The communication protocol was derived from that. The attached spreadsheet simulates the protocol. You should be able to use that for your purpose or alternatively look at the code of the NVMPG LinuxCNC component.

github.com/scottalford75/Remora-NVEM/blo.../MPG%20protocol.xlsx

Hi Scott,
thanks for your time and dedication.
I've owned a NVEM 2 since 2018, but buried it long time ago since I was not able to make it work reliably.
www.cnczone.com/forums/controller-cards/...084.html#post2154084
At that point in time, and till now, I've been using Mach3 (yeah... no LinuxCNC... i know...)

2019, after migrating to an UC300ETH controller, I tried to make the MPG work with Mach3 without using the NVEM.
I didn't want to waste such a nice MPG.
At that time, I did some reverse engineering... not as professional as you did... mine was mostly trial and error and listening to the serial communication between the MPG and the NVEM after opening it and finding a MAX232. I captured hundreds of packages, and tried to find the similarities on what was displayed on the MPG and what was within the payload. I almost got the payload down to your level.
I was too dumb to know about headers and such -_-

I also tried to create an Arduino program for having the MPG communicate with a PC using MODBUS.
But again, I was too dumb to find a smart solution, like having the Button-presses being reflected as Output-Pin changes on the Arduino, and hook those up to my motion-controller. Or using the Arduino Pro-Micro as a HID. Instead I tried to make the communication work with MODBUS and Mach3 "Brain", which resulted in a complex, and unreliable solution.
So I buried that solution almost 4 years ago as well.

That being said... I'm surprised about the NVEM still being a topic after stumbling about this thread by accident.
Would you mind if I would revive my idea of a NVMPG to PC connection, utilizing some of the "wisdom" you've gathered throughout the years?
Don't get me wrong... I'm an "enthusiast", far away from being an "achiever", my programming days are more than 20 years in the past now... but it's been bugging me a lot looking at this "unfinished project" (a lot of them exist though -_-)

Kind regards,
David
  • gardenweazel
  • gardenweazel's Avatar
11 Dec 2024 21:27
Replied by gardenweazel on topic Qtdragon for lathe??

Qtdragon for lathe??

Category: Qtvcp

Got it. No problems.

Ahhh, I misunderstood.

"scroll the gcode, mdi or graphics view" now understood.

Thanks
  • partec
  • partec
11 Dec 2024 21:27
cam_align was created by partec

cam_align

Category: Qtvcp

Chris, a little something here, regarding the variation of the circle diameter

mouse scroll only - scroll circle diameter 

may now work a little slower than in previous versions

It would perhaps be practical if the currently set value according to the

middle mouse single click - cycle through rotation increments 

would also be used to adjust the diameter?
  • gardenweazel
  • gardenweazel's Avatar
11 Dec 2024 21:23
Replied by gardenweazel on topic Inconsistent values from Versaprobe

Inconsistent values from Versaprobe

Category: Qtvcp

Chris,
I'm not sure that the calculation is is correct. I see the tool table file being written to but, the offset is incorrect.

For example, take this line:
T42  P42  D+12.700000 Z+290.403761 ;SpeTool Spiral .5" Shank .5" Dia 2" CL

I first zero'ed the above line, measured spindle with 3d probe. Then the "Z" probe fails multiple times before the gcode starts correctly. The above line was after the multiple probes and the gcode started running.
My "Z" can only travel somewhere around 120mm based on it's current configuration.

Here's another tool table entry:
T28  P28  D+3.175000 Z+12.349993 ;Whiteside 1/8" RD1600
This is what I would expect to see(Z+12.349993).
However I probed multiple times on that one also.

I did look at the code and there is an os.fsync on line 335 of qt_tstat.py which is located in def _save()
There's also comments to this perhaps causing "odd errors".

I'm thinking that maybe the FLUSH before the FSYNC might be causing this?

 
  • cmorley
  • cmorley
11 Dec 2024 20:47
Replied by cmorley on topic Qtdragon for lathe??

Qtdragon for lathe??

Category: Qtvcp

All qtdragon versions have that button now. I'd you have an MPG you might like it to scroll the gcode, mdi or graphics view. There is no option to remove it currently.
  • schnellmued
  • schnellmued
11 Dec 2024 19:51
Replied by schnellmued on topic Remora - ethernet NVEM / EC300 / EC500 cnc board

Remora - ethernet NVEM / EC300 / EC500 cnc board

Category: Computers and Hardware

Remora does not use the Base Thread.
Whether you run Remora or MESA the latency will be the same.
 

Hi Scott

Ok, then i have maybe some weird misconfiguration on my side. Today i switched the mill to a 7i96S today and the servo thread on the same laptop with same kernel params and network card is about 700k-750k instead 1,5m-6,0m with the remora config. Any idea what iam doing wrong ? Shall i upload my remora config ?

-
schnellmued
Displaying 21826 - 21840 out of 22109 results.
Time to create page: 0.604 seconds
Powered by Kunena Forum