Bridgeport CNC Mill

From Pumping Station One

Bridgeport CNC Mill Area: Cold Metals

Bridgeport CNC Mill
Owner/Loaner PS:One
Serial Number {{{serial}}}
Make/Model Bridgeport Interact Series I CNC milling machine
Arrival Date 2014
Usability yes
Contact Todd Allen, Abel Greenwald, Ryan Pierce
Where Removed
Authorization Needed yes
Hackable no
Estimated Value ~$2000
Host Area Cold Metals

Removal Section

  • What is it? - Bridgeport CNC Mill
  • Who is sponsoring? - Cold Metals Host - Jim Brink
  • Date published to the mailing list and RT- 06/11/2018
  • Asset value - $1000
  • Suggested method of removal - public sale - Graigslist
  • Background notes -
  • Resolution of removal -
  • Approval -


by Todd Allen - email [email protected] to schedule

Prerequisites: authorization on either [manual Bridgeport mill OR Clausing lathe] AND ShopBot CNC router. In other words you must be authorized on one manual cold metals manual machining center (lathe or mill) AND you must have been authorized on the operation of the ShopBot CNC router. You must be comfortable operating both of those prequalifying tools without supervision. The member to be authorized must be able to generate a toolpath in Fusion 360 with a simulated machining time of 2 minutes or less and must be able to provide a piece of stock and a single ended endmill 3/8" or smaller with a 3/8" shank that is appropriate for the toolpath.



A Bridgeport Series I Interact milling machine with a Heidenhain TNC151 controller.


Maximum table weight, centrally located: 300 pounds

X-axis travel: 18"

Y-axis travel: 12"

Z-axis travel: 5"

Knee travel: 14 3/8"

Positional accuracy: .0005"


Kurt D60 vise

Approximately 13 NMTB 30 tool holders, some DA type collet chucks, some with fixed bore.

1 NMTB 30 drill chuck.


The automatic lubrication system uses Vactra #2 oil. If the reservoir gets too low, a sensor will prevent the Power Enable switch from operating.


The Y and Z axis way wipers were replaced 4/28/15.

What works so far

Almost everything. The table and quill move as expected using the Heidenhain controller and joystick, including the handwheel. We can create and run simple programs using the Heidenhain conversational programming mode. We have switched the machine over to ISO G-code, and have been able to run programs with this. We have changed the communication parameters to FE mode, which permits transferring programs to/from the machine's memory, as well as drip feeding programs directly.

The Bijur mist coolant system works when controlled by 120v. We didn't try it with the mill's controller because it isn't running at this time. The output, with the adjustments we tried, was more like a spray than a mist. Unsure if this is correct or perhaps the jet needs to be cleaned. The sight tube for the coolant level is deceptive. The tube should be cleaned.

We need to reassemble the machine and make many adjustments as well as establish a CAD/CAM process on a external computer.

The only big mechanical task remaining is to fix the bent ball screw cover.

Working Group

A working group was formed to update/complete remaining tasks and to get the machine operational. The group is open to anyone. Help with the continuing maintenance would be appreciated. Please check the google groups and/or calendar for upcoming meetings. The group is currently composed of:

  • Abel Greenwald
  • Andrew Camardella
  • Tom Judge
  • Todd Allen
  • Ed Bennett
  • Ryan Pierce
  • Anna Yu

Open Issues


Spindle RPM adjuster controls are reversed. Decreasing spindle speed barely functions and needs more work to obtain satisfactory performance.

Make aluminum spoil plates and clamps to minimize risks of table mounted work.

Check the BP maintenance manual for other adjustments that are required.

Double-check scaling and backlash machine parameters to verify that they are accurate.

The Y axis ball screw cover doesn't appear to be functioning. You can look in the back and see the ball screw.


Find a process for backing up and restoring system parameters:

This requires a null modem connection from the Heidenhain's DB25 port to a DB9. We were using a DB9 to DB9 adapter that implements the null modem pin swaps. On the Heidenhain side of this, the DSR line must be connected and working! If it isn't, the TNC 151 refuses to think that the computer is present.

Parameters can be accessed by pressing MOD repeatedly until you are prompted to enter a Code, which is 95148. Care should be exercised with machine parameters. In this screen, pressing EXT then NO ENT causes a full dump to serial. Pressing EXT and ENT makes the machine look to read them, but sending them as an ASCII file via a terminal program doesn't seem to work.

Set up the tool chain. Ryan has succeeded in hacking a custom post-processor for Aspire. He fixed the previous problem with arcs. However, it seems the machine slows down at the end of each G-code line, so designs consisting of lots of short line segments have a very low effective feed rate.

Ryan also succeeded in hacking an Autodesk Fusion 360 / HSMWorks post-processor. This makes far more sense for this machine. Multi-tool jobs are supported, including milling operations and peck drilling canned cycles.

Fast moves can trip an adjustable current limit breaker, need to either adjust acceleration/speed parameters and/or the current limit.


The machine was wired at the factory for 460 volt 3 phase and we use 230 volt 3 phase in our shop. Ed and Dean rewired the motor and controller box, in a temporary fashion, to use 230v. It had been using a 460 to 230 volt transformer. Ryan removed this 6/26/2015 and changed all three transformers to use 230V, and re-enabled the accessory outlets at the rear of the machine. He also moved the Heidenhain power source back to the Bridgeport control. PS:One has voltage approaching 250V, so in some cases the voltages at transformer taps are a bit high. However the Heidenhain power, and the external 120V outlets, appear pretty much spot on.


Clean up the BP service manual scans and add the document to the wiki.

Closed Issues

Software limits for X, Y, and Z travel needed to be reset. Current values are determined by running the machine to the e-stop hard limit, recording the position, and subtracting 0.4 mm, except that the X hard limit seems like it isn't positioned properly and may be crushing part of the cover so it was set arbitrarily. Current values are: X: +12 -442.58 Y: +7.29 -300.18 Z: 8.13 -116.55 Note that these must be set both in the machine parameters (#44 - #49) as well as in the user soft limits.

Spindle brake does not appear to be connected. No, it does appear to work. There is a switch to enable or disable it.

Install a 3 phase 240v outlet near the machine. This machine is currently sharing one outlet with 4 other machines.

The Handwheel uses a Heidenhain HR 150.001 5000 F4 controller, Id.Nr. 220 954 01, S.Nr. 1300302 A. It is fragile, using a glass encoder wheel. We have determined that the light bulb that illuminates the wheel, triggering a signal from the photocells, has burned out. This will either need replacement, or we will need a new encoder. Ryan contacted Heidenhain, who does not repair this, and said "this was a very particular lamp/lens assembly, with the lamp focused through the lens in a particular way – not exactly a flashlight bulb." Heidenhain has a replacement: "ID. Nr. 540940-07. It is the current version of the HR 150. List Price $594.00" At Dean's request, Ryan shipped the encoder to Oracle Encoder Service on 5/6/15 for repair; quote was $290. This repair was completed. Oracle adjusted it with very low friction on the bearing, so the hand wheel wouldn't stay in place. Ryan sent this back to them, they fixed it to increase the friction, and it now works. Ryan re-installed it.

The head has some unexpected noise. Not from the motor, probably from the Reeves drive. The Reeves drive needs to be adjusted/rebuilt. New bushing suggested

Oil line needs to be replaced.

Motors need to be remounted.

X Axis Table needs to be remounted.

X, Y and Z limit switches need to be adjusted.

Check the tension on the drive belts. Especially for the Y axis.

Y axis ball screw cover is bent and not sliding properly. It should be removed and replaced (or bent straight). Removal is difficult because it is bent. This could require removing the table, which is heavy.

CMOS memory is used to store the machine parameters. the AA batteries that keep the memory alive leaked and caused minor damage to the battery carrier. We cleaned up the carrier and replaced the batteries. The parameters have been reloaded.

The spindle brake, spindle speed control and flood coolant system all are pneumatically driven and leaky. Maria Savrasova replaced the leaky fittings and tubing.

The original lubricating oil reservoir cracked. Todd Allen made a new reservoir out of acrylic using the laser cutter.

A machine screw was missing that held the ram to the column. It has been replaced.

A pneumatic line has been run from the shop air system to power the spindle brake, coolant and spindle speed control.

The mystery of the spindle taper has been solved. NMTB 30. We now have a good supply of tool holders.

The TNC 151 power supply failed while we were working on the machine. The problem was a bad 220uf 63 volt capacitor, which we replaced.

One half of a y axis limit switch failed. We swapped it for the other limit switch on the same axis which only needed one half working.

The homing sequence could not complete due to a bad index signal from the y axis rotary encoder. By adjusting the alignment of the encoder to the motor, the signal appeared. This adjustment may need attention in the future.

Drip feeding G-code works. Machine parameters were changed so that data transfer occurs in FE mode. The Windows program TNCserver (provided by Heidenhain) will allow the TNC 151 to save and load files, as well as to run files in drip feed mode.

The TNC 151 can be programmed in Heidenhain conversational language, or G-code. By default, the keypad labels indicate their functions in conversational mode. In G-code mode, the keypad buttons take on different meanings. The controller originally came with a keypad overlay, attached by magnets, that had different labels for the buttons for use with G-code. We don't have this. Improvising something would be helpful. Update: The intention is to keep the machine permanently in G-code mode. Ryan switched the machine and used a label maker to re-label the changed keys.

We installed a Kurt power draw bar. It works fine, but the length of the drawbar should be checked once the controller is running again.

Tom fixed the air filter leak by replacing the filter/regulator with another we had on hand. He also fixed the leaks in the drawbar system.


Tool Chain

The TNC 151 can be configured for Conversational mode or G-code. The former is designed to be simpler to view, understand, and for a machinist to key in from the control panel. The controller apparently can translate programs between the two formats. But some things may not translate well. For example, the G-code G00 (Rapid) does not exist in Conversational language.

G-code itself has variations among CNC machine platforms. The variant the TNC 151 uses claims to be close to the ISO RS-274-D standard. This differs from other manufacturers, so G-code generated for Fanuc might not be compatible. The TNC 151 has some particular requirements about G-code structure.

Simple jobs can keyed into the TNC 151 directly, in either Conversational or ISO (G-code) mode. These support subroutines and loops, so repetitive operations can be programmed once and executed at different locations.

For somewhat more complex jobs, the TNC 151 can export and export programs, in either Conversational or ISO (G-code) format, via a serial port to or from a computer. One can create and edit the job offline.

It is expected most users will want to use a CAD package to design a part, then build the tool paths for it in a CAM package, and export G-code. This could then be uploaded into program memory on the TNC 151 and executed.

Because program memory in the TNC 151 is limited by length, complex jobs will probably need to be sent to the machine using a "drip feed" where the computer sequentially feeds G-code instructions to the TNC 151 which executes them directly without storing them in memory.

Due to line numbering requirements, it appears the TNC 151's upper limit for drip feeding is 65535 lines of G-code.

Serial parameters are 9600 baud 7-E-2. Ryan increased the baud rate after having problems with the machine keeping up at 2400 baud with CAM-generated files containing lots of short lines that can be executed quickly.

Aspire 8.0

You must give the exported G-code file an exclusively numeric name. It has to end in .H and you probably can't rename the file without editing it because the file number must be embedded in the G-code. This is required so TNCserver can located the program.

When configured for inches, Heidenhain feed rates are in .1 in/min! So N100 G01 X+1.5 F500 is a 50 inch/minute feed. The Aspire post-processor language includes a scaling feature so this will work without needing to give Aspire an incorrect feed rate.

The default post-processor did not do rapids. In that case, Aspire simulates a rapid as a linear move at 2x the normal cutting feed rate. No obvious config setting or way to impose a maximum limit exists. So if you have a 300 in/min feed (F3000), your next "rapid" will be F6000. The TNC 151 is configured to reject feeds in excess of F5000 so this cannot be executed. Modifying the post-processor to do rapids with G00 fixes this, as Aspire no longer generates these 2x problematic "rapids."

Arcs now work. The problem before was using incremental coordinates for circle center I and J, when the Heidenhain was expecting absolute for everything.

Because the Interact Series 1 uses tool holders, not collets, you are supposed to mount each tool in its own holder (which hopefully fixes its length relative to the spindle). You mount your longest tool, touch off the workpiece, call that point Z=0, and designate its tool offset as 0. Then you mount each tool in turn, touch off the workpiece, and store the different Z value (which will be negative) as the tool offset of each other tool. You can define tool offsets in G-code, but Aspire doesn't seem to have that concept. Ryan changed machine parameter 225 to define 25 slots in a central tool table. This is a special Program 0, where you manually key in all your tool offsets and radius values (but that generally isn't used for CAM-generated G-code.) So if T=1 is my zero tool, a cut to Z-0.5 will move the spindle to Z-0.5 and cut a half inch into the workpiece. But if I change to tool T=2 which has a L-1.0 offset, a cut in G-code to Z-0.5 will move the spindle to T-1.5, but since the tool is 1 inch shorter, it will cut a half inch into the workpiece. But it is critical now to check the global tool table before running a job!


A TNC 151 emulator that runs under Windows is available for download at Note that this definitely supports Conversational mode, but it is unclear whether it supports G-code programming. It appears to be shareware, with some features limited.

Web Resources