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

More
1 year 7 months ago #323023 by gene_weber
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
The following user(s) said Thank You: tommylight

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

More
1 year 7 months ago #323041 by unknown
Mesa makes a board that does pwm to analogue.
store.mesanet.com/index.php?route=produc...oduct&product_id=205

Yeah I went that whole route when I was using machine kit and a beagle bone black.
It's a shame that the BBB hasn't had a upgraded CPU with the PRU and more memory. Was a great little platform, actually still is but a little underpowered.

Will agree that there are some great tools out there. I still have a copy of the DOS version of EasyTrax I was given by a very surly PCB maker, top bloke but didn't suffer fools.

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

More
1 year 7 months ago #323422 by gene_weber
I edited a post above to indicate that the three BOBs have now been fully tested. Previously I had checked all the paths with an ohm meter, powered up one of the boards and checked some signals.

 

All three boards have been powered up and tested. All inputs were connected to 3.3v or 5v. The corresponding output was checked for a high (5v or 3.3v). The input of the line being tested was then connected to ground, and the corresponding output checked for a low. The input was again connected to 3.3v or 5v, and the corresponding output checked for a high. Every input and output was verified to work correctly.

I have 100% confidence in the BOBs. If anyone purchases all of these components for $500, and the BOBs don't function properly, I'll refund $100.

Best, Gene
gene_weber@yahoo.com
The following user(s) said Thank You: behai

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

More
1 year 6 months ago #327411 by gene_weber

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

Time to create page: 0.183 seconds
Powered by Kunena Forum