Brother TC-225 / TC-229 adventure!

More
20 May 2020 19:31 - 22 May 2020 07:30 #168401 by ricardo
So, my personal responce to quarantine, almost finished Brother TC-321 conversion.
Here you can see how works spindle orient and tool change:

Link to config: bitbucket.org/ricardas-lt/brother-tc-321-linuxcnc/downloads/
Config optimized for 2.8 ver. so will not work on the previous versions.

Details:
Mesa 7i96 + 7i77
Axis - servo motors original Sanyo Denki, drives Copley Xenus xsl-230-40
Spindle motor and drive - original Sanyo Denki.

Big Thanks to laserK, ihavenofish, HalaszAttila and others.
My config is based on laserK config:
github.com/laserK3000/tc215RetrofitlaserK3000]laserK3000

Some photos how it look before conversion and now.
Attachments:
Last edit: 22 May 2020 07:30 by ricardo.

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

More
20 Jun 2020 22:03 #172198 by ihavenofish
Huh, I was not getting any notifications for this thread, I seem to have missed a lot.

I may have a house with a garage next month, which means ill have space for working on my brothers and other things.

Some of my problems some people have addressed her already it seems.

1: I have single phase power.
I have a working spindle drive and motor in the TC225. Thanks to stal I guess it seems we can run single phase 220v? I expect the standard derating to 2/3 current applies - although you have no way to really do that other than to simply not program it to cut heavier than 2.1kw continuous. It will help me tremendously to be ably to use the stock drive, as new 3kw ish single phase ac servo drives cost an absurd amount of money.

2: To rmu, sadly, you wont be using the stock servo axis drives. as you may have seen from earlier in this thread, they really just cant be tuned (under linuxcnc anyway). you can buy new drives and keep the motors I expect, but, delta for example makes top end kits that sell for less than many other peoples drives alone. I'll be using the new Delta B3 motors and drives. 80mm/400w x and y, 80mm/750w for the z on the TC225, and 80mm/750w, 130mm/1kw for the TC229. Downside is you need to make motor adaptor plates, and bore the couplings for the larger shafts. The upside is, they will "just work". no fuss, no tuning nightmares on analogue velocity control, you can run either pulse position, or torque control (which by all accounts works better in linuxcnc than velocity). I have cards for both modes, so ill test both.

3: Thanks for the pinouts ricardo. id worked the basic ones out myself on the 225, they are the same. There is a current feedback on one of the pins, but I never made use of it. Good to know for certain which was the alarm too.


So, ill be starting with my TC229, because its got the best mechanical condition (no backlash).

I will take the spindle drive from the TC225 and use it on the 229. I will make an adapter plate to swap the motors. The motor on the 225 I a little smaller than the 229. At a later date ill swap it back and buy a new drive and motor for the 229 that runs faster.

X and Y axis will get delta B3 750w 80mm servos. As mentioned, these will need the couplings bored, and adapter plates made to fit the 86mm mounts. Z axis will get B3 kit in 1kw, with a 130mm adapter plate. This motor has a brake. It's about $2100ish cdn all in for the 3 axis kits shipped. These are about the cheapest no fuss high end option I can find. There are cheaper kits, and used kits, but, they always have the "I hope it runs right" think hanging over it.

I need to paint the enclosure up (if you remember, I had them chemically stropped), and then I need to call yamazen to get new way cover seals. I also need to laser cut new windows from 1/4" PETG (cause all acrylic and polycarbonate are on covid-19 duty).

The 225 really only needs the ball screw nuts repacked with new balls, but the 229 is more guaranteed to be perfect with less hassle, so ill start there.

For the control, I already did a lot of work to get linuxcnc working, with the atc running, so ill stay on that path, at least for the short term (long term I may get delta controls for both machines, but that's money spent for no gain right now).

Someone touched on the one last issue I have on the machine, which is the ATC save zone. Was there any thoughts on the solution for that yet? My only real thought on that it to put an Arduino in the middle. Call out the G65 IO the same way, but have an Arduino intercept it, and ONLY execute if its in the safe zone, and if not, error the machine. Id need to make the Arduino 24v compliant with a few IO (2 to the mesa, 2 to the relays, 3 for sensors (the 229 has one extra sensor in the turret).

Basically, the safety intercept needs to make certain that the turret may not move in low Z zone, and the Z may not move when the turret is in high z zone.

Part 1 of that is easy. Arduino checks sensor, if its low, then it refuses any turret rotation command and triggers an error. Part 2 is more tricky. The Arduino monitors the upper atc limit, then if it detects the switch go low while the turret is spinning, it e-stops. If the turret isn't on station, it e stops. the 229 has that sensor. the 225 does NOT. The 225 will have to use the g code sub to get that information, which will of course only work during a called toolchange, and not in other accidental situations.

So that's where we are. Should be an entertaining august.

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

More
20 Jun 2020 23:00 #172208 by tommylight

.......which means ill have space for working on my brothers .....

Siblings ??? :)

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

More
20 Jun 2020 23:01 #172209 by ihavenofish
weirdo

:P
The following user(s) said Thank You: tommylight

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

More
22 Jun 2020 17:27 #172373 by ihavenofish
Just thought of a few more safety z cases.
We need the thing to error if the spindle is spinning or not oriented in the atc zone.

This would be the case that prevents the machine from traveling into atc zone during a program.

I think again are Arduino can intercept here.

so, this would be the full method:

- Arduino monitors atc "zone" switch. This may need to be a new switch on the machine to be more convenient. it is a few mm above the z "home", and is always on through the whole atc range, up the the atc "position" switch, and then the Z hard limit at the top.

- Arduino monitors a new output from the control that says "tool change"

- if the machine tries to move into the atc zone when "tool change" is not high, then we error.

So, that's safety failsafe 1, from bad g code programming / jogging

- we request a tool change
- Arduino receives "tool change" input and allows z travel
- Arduino checks carousel orientation (on tc229), if not on a station, error.
- Arduino receives carousel motion input
- Arduino checks atc 'position" switch, if not ok, then error
- Arduino receives decal carousel brake input
- Arduino checks carousel position
- Arduino sees atc "position" go low, and checks carousel position and motion inputs, if not ok, then error.
- Arduino sees atc zone go low.

Now that we are adding in a new switch for atc "zone", I wonder if we need the Arduino here. maybe linuxcnc can manage these things instead. The issue before was swapping limits on the fly, which we cant (easily) do, but this is all just readying switching and responding to them.

Are there easy provisions for a set of "if input X = 1, do or don't allow Y to happen" ?

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

More
22 Jun 2020 17:43 #172374 by ihavenofish
Oh, I thought of one other little hack (at least I think I did, maybe it was mentioned on page 23345661425 :)), that would just electrically swap limits. Just add a switching relay. When low, the lower Z limit is uses, when M6 is called, it turns on the relay, and then the upper ATC home is used. The hard Z limit is still used at the top and bottom for e stop.

We still need the other safety provisions above for spinning the turret, but, this would automatically detect bad g-code as it should.

The last thing I guess was orienting. I never got to that. In my idea world, the machine would see the m6 command, move up to Z home WHILE stopping the spindle at orientation position (commanding the spindle like an axis). THEN in a smooth motion keep going up to ATC home. so, pretending the spline was A here:

G64
G1 Z17.0, A0 F1181 (full speed)
G1 Z21.0 F400 (slower motion to release tool)
G0 X? Y? (move to next lines XY position while waiting for tool to carousel to move)
G1 Z17 F400 (grab new tool)
G1 Z? F1181 (rapid to next Z position
M3 S6000 (start spindle)
G61
Continue G code

This requires a swap to use the spindle as a servo, something I couldn't figure out how to do.

Thoughts?

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

More
22 Jun 2020 19:14 #172378 by IceBear
HI!
Actually I solve this task (safe atc space) pretty simple. Idea is limit Z travel after < home Z> as (0 to -200).... for toolchange extend soflimits as (+150 to -200) and after toolchange swith it back to 0 -200.
You can see a red dash line (wich show softlimits ) extend and then back.

1. I use use atc-range as z home:
# ---setup home / limit switch signals---
net atc-range => joint.2.home-sw-in
net min-z => joint.2.neg-lim-sw-in
net max-z => joint.2.pos-lim-sw-in
2. I use MUX2 to manipulate soft limits:
loadrt mux2 names=z-limit-mux
addf z-limit-mux servo-thread

# switch z-axis soft limits
setp z-limit-mux.in0 [JOINT_2]MAX_LIMIT
setp z-limit-mux.in1 [JOINT_2]MAX_LIMIT_ATC
net z-limit-out <= z-limit-mux.out

# ini.2.max_limit is connectedd in custom_postgui.hal:
net z-limit-out => ini.2.max_limit
net z-limit-out => ini.z.max_limit

3. mux input accept commands from gcode:
net z-limit-select motion.digital-out-01 => z-limit-mux.sel

4. In gcode toolchange (substiyute m6) I use:
to extend z limit up to +150 needed for toolchange:
;
MOVE ATC
(unlock z-travel for ATC range. send true to z-limit-mux.sel--> z-limit-max is set to z-limit-maz-atc)
m64 p1
(debug,Extend z_max_limit = #<_hal[ini.2.max_limit]>)

to limit Z for normal safe operation after toolchange:
(lock z-travel again)
m65 p1

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

More
22 Jun 2020 19:17 - 22 Jun 2020 19:19 #172380 by IceBear

HI!
Actually I solve this task (safe atc space) pretty simple. Idea is limit Z travel after < home Z> as (0 to -200).... for toolchange extend soflimits as (+150 to -200) and after toolchange swith it back to 0 -200.
You can see a red dash line (wich show softlimits ) extend and then back.

1. I use use atc-range as z home:
# ---setup home / limit switch signals---
net atc-range => joint.2.home-sw-in
net min-z => joint.2.neg-lim-sw-in
net max-z => joint.2.pos-lim-sw-in
2. I use MUX2 to manipulate soft limits:
loadrt mux2 names=z-limit-mux
addf z-limit-mux servo-thread

# switch z-axis soft limits
setp z-limit-mux.in0 [JOINT_2]MAX_LIMIT
setp z-limit-mux.in1 [JOINT_2]MAX_LIMIT_ATC
net z-limit-out <= z-limit-mux.out

# ini.2.max_limit is connectedd in custom_postgui.hal:
net z-limit-out => ini.2.max_limit
net z-limit-out => ini.z.max_limit

3. mux input accept commands from gcode:
net z-limit-select motion.digital-out-01 => z-limit-mux.sel

4. In gcode toolchange (substiyute m6) I use:
to extend z limit up to +150 needed for toolchange:
;
MOVE ATC
(unlock z-travel for ATC range. send true to z-limit-mux.sel--> z-limit-max is set to z-limit-maz-atc)
m64 p1
(debug,Extend z_max_limit = #<_hal[ini.2.max_limit]>)

to limit Z for normal safe operation after toolchange:
(lock z-travel again)
m65 p1


This work absolutly safe more then 1 month..... The only note.....if you don't execure home z ..... manualy you can move spindle to atc range area :(
Last edit: 22 Jun 2020 19:19 by IceBear.

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

More
22 Jun 2020 19:40 #172382 by ihavenofish
wow, thanks! I guess that's sorta the equivalent of my physical switch swapping.

the manually moving thing is kinda the same on every axis. its kinda necessary for manual maintenance as well, so just remember to home on start up.

I'm trying to remember the M64/65/66 stuff. I'm using that to read the encoder, and to enable the carousel to spin, to switch its direction, and to brake it.

We'll tuck this away for later then :)


How did you deal with orienting?

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

More
22 Jun 2020 21:24 - 22 Jun 2020 21:33 #172397 by ihavenofish
More questions. Since I now have pulse and direction drives, but an analogue servo spindle, which mesa card should I use.

I have a 7i76, but it seems to me that this does not support a servo spindle, just a vfd. Is this right?

If so, which board should I be using, or do I need an add on?
Last edit: 22 Jun 2020 21:33 by ihavenofish.

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

Moderators: cncbasher
Time to create page: 0.145 seconds
Powered by Kunena Forum