trinity-users@lists.pearsoncomputing.net

Message: previous - next
Month: May 2019

Re: RPi + TDE + 7i90HD

From: Gene Heskett <gheskett@...>
Date: Fri, 24 May 2019 08:56:41 -0400
On Friday 24 May 2019 04:48:50 am Dr. Nikolaus Klepp wrote:

> Hi Gene!
>
> (This is not directly a TDE question, so it might be of no interest to
> a lot of readers, but anyway ...)
>
> If I recall correctly, you have mentioned somewhere that you have a
> RPi + TDE + 7i90HD running. Yesterday a 7i960HD ended up on my desk.
> Now I want to build a new CNC with RPi + TDE + 7i90HD, but I am stuck
> at how to flash the correct firmware to the card. I understand that I
> need mesaflash to  flash 7i90_spi_svst4_8.bit
> (http://linuxcnc.org/docs/devel/html/man/man9/hm2_rpspi.9.html) from a
> pc via what? Centronics cable? Do you have a link to the needed
> cables? And maybe a working linuxcnc configuration?
>
> Nik

i bought a roll of 26 wire cable and a bunch of connectors 26 on one end 
and db25 on the other, and then discovered /I had to peel one wire off 
the far edge of the cable.  So it fits the parport on the pc, and the 26 
pin socket on the 7i90.  I'd had some cable failures since, 2 or so, 
mainly from inadequate smunch when assembling the cables.  I have never 
used the terminator board for a mesaflash session, but you'll need one 
at the pi header.  Get it from OSHPark, Jon at Pico systems can give you 
the oshpark part number. 3 of those is less than a tenner. You'll need 3 
little grain of sand surface mount 120 ohm resistors per board, a  40 
pin shrouded male connector that fits the pis header on one side of it 
and a 26 pin shrouded male socket on the other side. The termination is 
simple, src term but does allow slightly longer cables, but I mounted a 
fan from a video card under the pi and mounted it upside down so the 
heat sinks are right over the fan. Turning the pi upside down put the 
pi's gpio hearder on the lower edge, which allowed me to use a cable 
about an inch long.

Now, the 7i90 is a 3 volt card, and ANY noise will blow things.  So get 3 
7i42TA's, a 6 pack of 50 pin scsi connectors to fit the sockets on the 
7i90HD, and a hunk of old 50 wire scsi cable you can cut up to hook the 
7i42TA's to the 7i90. The 7i42TA's contain the noise absorbers that 
protect the 7i90HD, allowing the 7i90HD to work in 5 volt circuits, and 
they give you rows of the green screw terminals to greatly simplify 
hooking all this up.  I made a stack useing most of a standoff kit and 
stairstepped them on top of the 7i90HD, so none of my 50 wire cables are 
over 5" long.

I've got a hal file from hell, lots of gingerbread and have made a much 
slower thread than 1 khz servo-thread, something in the 100 to 200 hz 
range is working well and I put all the hand controller stuff in that 
thread, else the servo-thread would be too long to make 1khz work. TDE I 
always figured needed more iron than a pi had to spare, so mine is still 
running the default raspian xfce4 for a gui.  With only a gig of dram, 
my thinking was that the pi would get bogged down in swap. Video refresh 
in real time is but a dream, 5-7 frames at best using xfce4. You do 
eventually get used to it.

You'll need to locate a 3.4-9-rtai-686-pae=3.4.0 kernel and mark it with 
a *hold to keep apt from replacing it. It has one major bug, so the 
first thing you do after bootup is find the keyboard/mouse setting 
uttility in the menu, and make a change so it will be saved so that key 
repeat is limited to 15 cps or so. It boots up at about 1500 cps and 
that floods the usb port nearly everything but the spi and wifi goes 
thru to get to the outside world. Put bluntly, that causes the pi to 
lose key-up events, leaving the machinery you just jogged, jogging until 
you hit the key quickly, sending a keyup before the repeat kicks in or 
it hits something.  Thats broken quite a few carbide tools by running 
then into the workpiece when the spindle isn't turning.  There are a 
couple later kernels, but they all have this same bug. They may work now 
that we know how to fix it. Until the after boot thing is done, use very 
quick pecks on the keys.

How big is the lathe?  And how will you drive the spindle?  I toured the 
local recycle places and found a pair of 1hp 3 phases on a 50 year old 
air compressor that came in from the local horsepistol during a remodel, 
and a 50 dollar bill got the hoses unfurled to cut them off the pads. I 
ordered bearings and replaced them in one motor, saveing it as a spare, 
and put the other on the end of the cables from a 1.5 horse rated vfd, 
and have a 30 amp corfam brick wall filter near the vfd output and 
another at the vfd's input, and radiated noise has not been a problem. I 
used a mesa spinx1 to translate the pwm to analog controls for the vfd. 
I can run this motor at 10hz with this vfd for around an hour before I 
need to let it cool. Obviously I set a current limit in the vfd to not 
exceed the motors FLA, and its all Just Worked.

Having spare i/o's, so I also have a pair of 40 amp SSR's rigged to turn 
off all motor power when motion is disabled by the F2 key.  So I can 
leave power on the pi full time. I also have a pair of the MPJA dials 
mounted on a replacement apron, and thats more gingerbread x2 in the hal 
file, but that gives me a 5 speed jog that works just like the hand 
cranks used to for manual control. Down to .0002" per click.

My compound was smashed by a fallover sometime in its pre-gene history, 
so its a solid block of cast iron carved from a free sprue from the 
foundry that makes wheels for whites large cars (they are here in town)  
now (linuxcnc _is_ the compound as it can drive both to get any angle 
you need to a higher accuracy than you could ever set a compound to, so 
neither of my lathes have a compound today.)

The same fallover that broke the compound, came to a sudden stop hard 
enough that the weight of a mounted chuck bent the spindle just a tad  
so I had to regrind the MT5 in it by about 5 thou, and regrind the 
backplates to get the chucks running true again. And I've put screw comp 
in the hal to compensate for most of the bed wear, diddling X by up to 3 
thou depending on Z position.  So I can turn a pretty good cylinder now.  
I've also made clamps to prevent unscrewing a chuck with the belt 
yelping turnaround's that rigid tapping demands. Turning around a 40 lb 
chuck at 250 revs takes quite some power. :)  I've got some hal to tell 
me how far it travels AFTER the reversal command has been given, and I 
shorten the tap depth in the G33.1 accordingly.

I hope some of this saves you some time and headaches in running 
machinery with a pi.

*hold, here is the contents of my /etc/apt/preferences.d/kernel.pref 
file:
================================
Package:linux-kernel
pin: version 4.4.4-rt9-v7+
Pin-Priority: 1001

Package: linux-headers
Pin: version 4.4.4-rt9-v7+
Pin-Priority: 1001

Package: raspberrypi-bootloader
Pin: version 1.20170427-1
Pin-Priority: 1001

Package: raspberrypi-kernel
Pin: version 1.20170427-1
Pin-Priority: 1001
=================================

Good luck Nik.

Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>