Advanced Search

Search Results (Searched for: )

  • gene_weber
  • gene_weber's Avatar
02 Mar 2025 16:10

RPi 4B w/LinuxCNC 2.9.3, Mesa 7C81, Isolation Card, PWM Card, Relay Card, More

Category: User Exchange

My thoughts regarding my decision to create my own Break Out Board were influenced by my background. I've very recently retired from a 40 year career in hardware and software development. The largest chunk was in integrated circuit design. Where I don't have any experience is in milling and CNC, and I've been finding the learning curve on that to be more than a bit frustrating.

Going more or less chronologically:

I had decided that I wanted to be able to both control the speed of the spindle and read the "actual" spindle rpm. I wanted these lines to be electrically isolated from the mill's electronics. To isolate the spindle rpm signal I wanted to use an opto-isolator. So now I needed a board of some type whether purchased or made by me. Initially I bought a SparkFun Opto-isolator Breakout for this purpose. Spindle RPM control on the PM-728VT is a 0 - 5v analog input. So I searched for a PWM input to analog out board to purchase, because that's circuitry I'm not comfortable designing. I could not find a  board that accepted 5v input, nor could I find one that was 0-5v output. That's not saying no such thing exists, but I couldn't find one. So I went with the board listed above that's 3.3v digital and can output 0-10v. Five volt switching levels are nice in a noisy environment, but from a purely digital design standpoint they are archaic. Which might be why I had a hard time finding a PWM DAC with a 5v input. So if I ran the 7C81 in 5v tolerant mode I'd need to level shift that input. Not a big deal. Initially I was planning to simply put a 138 ohm resistor in series and call it a day. But I started to wonder if between it being a 5v tolerant output, and not a true 5v driver, and the series resistor, would the PWM waveform be sharp or distorted. So I thought the better solution for this particular signal was a true 3.3v signal. I went with the KBSI-240D Signal Isolator board between the PWM DAC and the PM-728vt circuit board because someone on another forum with a PM-718vt used one and was very positive about it.

I wanted a BOB to convert the 26 pin "ribbon cable" connectors on the 7C81 to some type of more robust cabling from the controller box to the mill. I didn't find any boards with three 26 pin "ribbon cable" connectors on one end. What I was seeing were a lot of boards that converted a single connector of some number of lines to terminal blocks, or to 25 pin connectors. I did not want to run a 25 strand cable to the mill and split it at the mill to the individual servos. Also, I personally don't like handling a large number of signal lines via terminal blocks. I also started to think about buffering the 7C81 from the servo and mill electronics. On the off chance that those electronics went south, I didn't like the thought of it possibly toasting the FPGA. Especially since the FPGA is connected directly to the RPi that I spent a lot of time setting up with Linux and LinuxCNC.

So at this point I wanted to make my own BOB that was space efficient at converting the three 26 pin "ribbon connectors" to lower pincount connectors where I could run low wire count cables directly to  each individual servo, and a couple others for other purposes such as limit switches etc. Since I was going to the effort of making a BOB, it seemed only logical to include the opto-isolator rather than having an additional board for that purpose. Figured I might as well put a voltage divider on my BOB that would make the 0-10v out of the PWM DAC 0-5v to feed into the KBSI-240D. Since the BOB now needed power for the opto-isolator anyway, and I felt why not buffer the signals from/to the 7C81 and improve robustness, So I decided to put a couple signal driver ICs on the BOB. Transceiver ICs that level shift are common. Since the  PWM DAC input was 3.3v, and the mill and servos are 5v signals, running the 7C81 at 3.3v and using level shifting transceiver ICs was a logical choice.. Two 74ALVC164245 bus transceivers handled the number of signals I needed and have good specs. At the time designing the BOB was a fun diversion. Amazing what one can do with the FOSS available today. I'm very impressed with KiCAD. My BOB is 2.5" x 3.5" which is pretty compact for the functionality it contains, and I'm rather proud of it.

Best, Gene
  • RDA
  • RDA
02 Mar 2025 15:59
Replied by RDA on topic Dreaming Question On Ohmic

Dreaming Question On Ohmic

Category: Plasmac

One thing is to find the edges of the plate, another is using scrap plate that can have holes from already cut parts. If you just want to find edges and always have square plates the you can use capacitive, laser range sensors or almost anything that senses metal.
In my mind the time saved is quite minimal and only works for squares or rectangles. Well of course you could run a line on all edges but would it be worth it, not really sure.

The camera stuff would be way nicer, example stuff like this Trumpf cut and drop . Libellula Optia the video could show case it better but basically you take a picture of the sheet and then you can nest to it.
  • my1987toyota
  • my1987toyota's Avatar
02 Mar 2025 15:36 - 02 Mar 2025 15:50
Replied by my1987toyota on topic hot wire cutting

hot wire cutting

Category: General LinuxCNC Questions

Another possibility would be to utilize the spindle at speed section of Linuxcnc. Manual sections 5.6.2 and 5.6.2.1.
if you want to use classic ladder you may also want to explore the linuxcnc manual section 8
 
  • PCW
  • PCW's Avatar
02 Mar 2025 15:36
Replied by PCW on topic X axis following Y axis

X axis following Y axis

Category: Advanced Configuration

Not sure but it seems simpler to have a standard X/Y plasma table
with a roll-fed extension. The roll feed could be implemented in hal,
perhaps using the limit component to generate the motion profile
with the required Y distance and a PID loop using the encoder as
feedback.
  • noqui
  • noqui
02 Mar 2025 14:38
Replied by noqui on topic Modify AXIS GUI

Modify AXIS GUI

Category: General LinuxCNC Questions

I think i found the AXIS.GUI source code in qtaxis.ui to edit it with Qt 5 Designer . Is this correct?

Thanks a lot.
  • noqui
  • noqui
02 Mar 2025 14:16
Replied by noqui on topic Modify AXIS GUI

Modify AXIS GUI

Category: General LinuxCNC Questions

Sorry tommylight. I thought you added cammera.zip, but it was cmorley. So sorry.
  • gwond
  • gwond
02 Mar 2025 13:58
Replied by gwond on topic Fusion 360 post processor file for Plamac

Fusion 360 post processor file for Plamac

Category: Plasmac

I've been trying to figure out this post processor with F360 as well. Thanks Hakan for your help, I think I also found that there should be an "if centerpunch" statement in the onRapid function around line 407.
if (centerPunch) {
writeBlock(String("G0"), x, y);
}
else {
writeBlock(gMotionModal.format(0), x, y);
}
After adding this, for the one part I was testing it seemed to issue all the G0 commands prior to the M3 commands. However, when I tested a part with more holes, on the last one it failed to issue the M3 start command and was not going through small hole section at all in the post processor.

I found that the difference evaluated by this line 502: "if (Vector.diff(circleBuffer.start, circleBuffer.end).length < toPreciseUnit(0.01, MM)) { " was 0.22 something which was greater than the allowed tolerance, but I am unclear as to why. All the other holes of same size were showing 0 for this difference. If I raise the threshold to 0.25, the centerpunch command gets executed, but I'm not sure what the ramifications are on doing that. If I don't change that, the else gets evaluated on line 577, causing the centerpunch to get skipped: writeBlock(gMotionModal.format(circleData.clockwise ? 2 : 3), xOutput.format(circleData.end.x), yOutput.format(circleData.end.y), iOutput.format(circleData.center.x - circleData.start.x, 0), jOutput.format(circleData.center.y - circleData.start.y, 0));

N375 M5 $-1
N380 G0 X12.92307 Y10.51936
N385 G0 X37.03129 Y123.7121
(36.1442, 124.511, 0)
(37.0313, 123.712, 0)
(37.0313, 123.712, 0)
(0)
(0)
(TRUE)
(TRUE)
(CENTER PUNCH THE HOLE ONLY)
N390 G0 X36.1442 Y124.511
N395 M3 $2 S1
N400 G91
N405 G1 X0.00001
N410 G90
N415 M5 $-1
N420 G0 X37.03129 Y123.7121
N425 G0 X82.04218 Y124.49036
(83.2358, 124.511, 0) //Circle buffer center
(82.0422, 124.49, 0) // Circle buffer start
(82.042, 124.511, 0) // Circle buffer end
(0.020638258210129726) // Difference
(0) // Plane
(TRUE) // Small hole section
(TRUE) // Centerpunch
N430 G3 X82.042 Y124.511 I1.19363 J0.02064
N435 G1 X82.04218 Y124.49036
N440 M5 $-1
(END CENTERPUNCH)
  • jyeomans
  • jyeomans
02 Mar 2025 13:58
Replied by jyeomans on topic Shutdown hal runs at startup.

Shutdown hal runs at startup.

Category: Basic Configuration

Im sorry i got a little of target here.
My real questions are: should the shutdown.hal run at start up? 
Is this expected behavior?
How fast are loaded user components removed after a shutdown?
Is there a way to pause for a few seconds after the shutdown.hal is called before user components are removed?

All that being said.  
Maha thanks for the link.  i had missed a python library for at exit.  this will almost fix my issue.  i had looked at that a while ago to answer other question i had, for got what he was working on. 
  • Sternfox
  • Sternfox
02 Mar 2025 13:57
Spindle orientation was created by Sternfox

Spindle orientation

Category: Advanced Configuration

Hi gang, So as the title suggests I'm wanting to know the best way to orient my spindle. My spindle motor is controlled by step/dir (its a giant ac servo)it has DI and OUT for spindle orient start, spindle orient complete as well as encoder out. how would this best be implemented into linuxcnc? I'm trying to use the least amount of io as I can (I'm running out) Thanks 
  • Aciera
  • Aciera's Avatar
02 Mar 2025 13:30

Multiple Probes: Touch-off Probe and Edge probe

Category: QtPyVCP

in io.hal replace this:
#net digital-0-input motion.digital-in-00 <= hm2_7i96s.0.inm.00.input-00-not
net probe-input motion.probe-input <= hm2_7i96s.0.inm.00.input-00-not
#net probe-input motion.probe-input <= hm2_7i96s.0.inm.00.input-02-not

with this:
loadrt or2 count=1
addf or2.0 servo-thread
net probe-1 <= hm2_7i96s.0.inm.00.input-00 => or2.0.in0
net probe-2 <= hm2_7i96s.0.inm.00.input-02 => or2.0.in1
net probe-input <= or2.0.out => motion.probe-input

Might also be worth having a look at the docs:
www.linuxcnc.org/docs/html/hal/basic-hal.html
  • my1987toyota
  • my1987toyota's Avatar
02 Mar 2025 13:25
Replied by my1987toyota on topic hot wire cutting

hot wire cutting

Category: General LinuxCNC Questions

On second thought you will need to use some form of ladder logic to prevent the pause button from being activated
while no Gcode is running . That way you can make a latching relay type of circuit. You could use an M code to arm
the relay and just put it in every Gcode right after the wire is turned on. You will probably want some sort of " READY "
button so that once a new wire is in place it wont immediately continue the program until YOU are ready for it to do so.

  If I recall in most CNC machines when the Pause button is pressed the spindle will keep spinning unless other
lock outs are integrated into it. I am pretty sure you are using the " Spindle " for temperature control. You may
want to use the ladder logic again to inhibit the wire from getting hot until the wire is reconnected and the ready
button is pressed.

  Also you may want to integrate a timer so that when the READY button is pressed the machine will delay resuming
Gcode operations for a short time to allow the wire to get to temp or close to it then continue operations.

With that said I have some tutorials for you that another member on this forum had put together . I found they really
helped me get up to speed on how to use classic ladder

www.youtube.com/results?search_query=the+feral+engineer+ladder





 
Displaying 18511 - 18521 out of 18521 results.
Time to create page: 0.639 seconds
Powered by Kunena Forum