This Old Mill

The journey of a guy getting an old CNC milling machine up and running in his garage…

Software Connection

Now that this old mill is actually connected to a computer (PC), it’s finally time to swap some data between them.  To see the cable I’m using to make the physical connection, visit my serial connection page.  Just to be clear, this page isn’t intended to duplicate the information found in chapter 11 of the operator’s manual, which covers loading and saving files on the Allen Bradley 8400MP control (AB control).  It is intended to provide background, supplement the areas I had trouble understanding, and cover other important topics.

Before I get into the details of all of this, I’m reminded of a line from the movie Casablanca that goes, “Louis, I think this is the beginning of a beautiful friendship”.  I know that’s corny, but this old mill and the PC it’s connected to complement each other. mill_available_memory The AB control doesn’t have much program storage capacity.  Mine only has a little over 87KB – see the number next to the “Available” field in the screen shot.  Yeah we’re talking kilobytes, not megabytes or gigabytes – this is cutting edge 1980’s technology here!  According to some of the AB control documentation, the total amount of program storage space was configurable as purchased, so yours may have more.  Memory was expensive back in the day, so I’m not surprised at how little my AB control has.  If that wasn’t limiting enough, the AB control limits an individual program file to a little over 64KB regardless of how much space is available.  I’ve included another screen shot of the error that’s shown when you attempt to load a program larger than this limitation.mill_full_memory  Even though there is more than 64KB available, the AB control will still indicate “PROGRAM SPACE FULL”.   This limitation aside, its important to recognize a 64KB program created manually utilizing the AB control’s available G code blocks, autocycles, and autoroutines can still be elaborate (see chapter 13 of the operator’s manual).  However, 64KB isn’t much when creating programs generated by modern Computer Aided Machining (CAM) software.  In my experience so far, most of the programs I’ve generated using Autodesk’s Fusion 360 will not fit into the AB control’s 64KB program size limitation.  The good news is this is no big deal!

Why’s that you say?  Well, the AB control is nice enough to allow programs of any size to be “executed from an external device”, to quote a line from chapter 9.3.1 of the operator’s manual.  I’ve quoted Allen Bradley’s language because I believe it to be a bit misleading, perhaps this has something to do with the difference in terminology used in the 1980’s verses the present.  I could be getting too hung up on semantics, but in reality programs are only executed in the AB control.  Programs can absolutely be transferred to the AB control from an external device, such as a PC, but the program itself is always executed by the AB control.  What the Allen Bradley documentation is actually trying to say is, programs residing on a PC can be transferred in blocks to the AB control, and those blocks are then executed by the AB control immediately.  The PC and AB control communicate with each other via a serial communication protocol to accomplish this, and in its most basic sense goes kind of like this:

  1. The PC sends blocks of program data until a chunk of memory (buffer) inside the AB control is full.
  2. The PC then stops sending blocks and waits.
  3. The AB control executes the blocks residing in it’s buffer.   Note, at this time the mill will be moving around trying to machine metal.
  4. The AB control sees the buffer is getting empty and asks the PC to send more program blocks.
  5. This cycle continues until all the program data has been sent.

By the way, this process isn’t unique to the AB control, it’s actually very common among many CNC mill’s, both old and new.  This process goes by a few names, and from what I gather is most commonly called drip feeding, or DNC (Direct/Distributed Numeric Control).  The process of drip feeding blocks of a program to a CNC’s memory instead of transferring the entire program all at once requires some special software that resides on the PC.  There are several providers of software for this purpose, but I’m using one called dnc4u.  Catchy name eh?  Anyway, you can download this software at, and use a full version of it completely free for 60 days without limitation.  I used it this way until the trial period expired, and ended up purchasing it for around $100.  So far I can absolutely say it is worth the price, as it works without issue, and provides lots of communications options.

Setting up the dnc4u software is pretty easy, it includes a simple wizard to establish some initial settings.  As shown in the following image, the dnc4u software automatically detects all the serial ports on your PC, just make sure you select the serial port you want to use to communicate with your AB control.  In my case, the PC I’m using only has (1) serial port – COM1, so I didn’t have a lot of options.  Just go with the defaults in the wizard after you select the serial port.DNC_1

Once finished with the wizard, click the CNC settings button in the menu on the left side of the screen, and duplicate the settings shown in the following screen shot.  Of course this assumes you’re configuring your setup to match mine.  If you’re following along all of my webpages, you’ll see these settings match those shown on my connecting the beast page.DNC_2

The last setting to adjust is found after clicking to the Send tab, and then the Delays tab as shown below.  I’ve found that if I don’t add at least 1 millisecond of character delay, I have trouble drip feeding.  I’m trying to stay out of all the details here, but without a little character delay between the PC and AB control, a communication error may occur.  This means you have to start over again, which absolutely sucks if you’re in the middle of milling something.  Regardless, I haven’t noticed character delay causing any slowing of milling operations unless I set it too high.DNC_3

With the dnc4u software set up, its time to open a program (G-code).  As you can see in the screen shot below, dnc4u does some pretty cool color coding with the program text.  For instance, all of the “G” commands are yellow, and all the “M” functions are pink-ish.  The programs shown is completely editable, and I manually add the “M3 S100” through “TO1” lines to each program I run.  I’ll get into why I’m doing this on a different page I haven’t written yet.  By the way, the program shown below was created in Autodesk’s Fusion 360 using the AB control post processor available on my Download page.DNC_4

So the above is about as much as I think it makes sense to write about.  The following video summarizes all this hard work, and actually shows the process I go through every time to run a program.  I hope this helps!

%d bloggers like this: