Shop OBEX P1 Docs P2 Docs Learn Events
Propeller and SuperMill — Parallax Forums

Propeller and SuperMill

NewzedNewzed Posts: 2,503
edited 2006-07-23 19:21 in Propeller 1

With the help of SSteve and Mike Green, I have finally finished the Propeller program to run my SuperMill. The program does everything I want it to, and it even has a reset function so that I can reset the X and Y coordinates to 0, 0. Now, I have designed a new PC board to interface the Propeller to the mill. Two boards cost $96.00 from Expresspcb. Since I can only use one, I would like to sell the second board to some one. Here is a description of the board:

Size – 3.8 x 3.0, double sided, PTH, no solder mask, no SS but most parts ID’d with copper.

Chips – Propeller DIP, MAX3232 DIP, 24LC256 DIP

EEPROM hardwired to pins 28 and 29

MAX3232 hardwired to pins 30 and 31

5mHz crystal

Four 8-pos female headers for accessing Propeller pins

5 volt regulator supplying 5VDC to the 8-pos 5V bus and to the 3 volt regulator

8-pos Gnd bus

DB9 female connector for programming

DB9 female connect that accepts a DB9/male to PS/2 female adapter for plugging in keyboard or mouse. Data and clock pins hardwired to pins 24 and 25.· 5V·bus and ground bus hardwired.

RCA connector for TV. The TV resistors R2, R3 and R4, are hardwired to pins 14,13 and 12. R1 is not connected.

Pins 0-7 ported to four 2-pos screw terminals

Pins 16-23 ported to one 8-pos screw terminal

Vin and Gnd ported to one 2-pos screw terminal

Pushbutton with pullup to 3VDC – can be patched to any pin

Reset pushbutton

Red LED for 5V, green LED for 3V. ·R12 – 100 ohms - for 3V LED is guesswork

On-Off switch

Wall transformer input jack

4 mounting holes .125 dia.

You’ll have to accept the layout before I order. If you accept and it turns out that there is an error that can not be fixed, we eat the board. A copy of the Expresspcb layout is attached. Be aware that you are looking at the bottom of the board, not the top, Based on the latest prices from Digikey, parts cost for the board would be about $50.29. Purchase of the board includes the parts list with part numbers and prices.

If I could find three buyers, the board price would drop to $29.00. If interested, please contact me at
Newzed@aol.com.

Sid

«134

Comments

  • NewzedNewzed Posts: 2,503
    edited 2006-07-07 23:43
    I had to revise the layout.· Turned out I needed a 5V port, so the 4x2-pos screw terminal has been replaced by a 9-pos screw terminal.· I also made a couple of cosmetic changes.· Rev B is attached.

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-08 16:42
    Hi, it took some searching but I see your supermill is a Proxxon MF70 converted to CNC, I have also done the same thing, here is mine:

    http://www.indoor.flyer.co.uk/millingmachine.htm

    I'm very interested in what you are trying to do, can you tell me some more about how you intend to use the propeller with the mill, will you make a g-code interpreter or are you doing something a little different?

    I want to use the Propeller to control a micro wire EDM machine I am building:

    http://www.indoor.flyer.co.uk/edmwiki.htm

    I was going to use a PIC but that would have mean't a very simple user interface and probably a PC sat next to it in the end. The Propeller seems a good solution for me as I can have one processor monitoring the gap conditions another doing the video etc etc.

    Love to hear some more anyway.

    Cheers,

    Graham
  • NewzedNewzed Posts: 2,503
    edited 2006-07-08 17:29
    Graham, my SuperMill is really not a CNC mill.· The three axes are driven by separate steppers via controllers, and the instructions for each stepper come from the program.· On my menu I have Left, Right, In, Out, Up, Down.· I select the direction, then I enter the travel I want in mils.· The program calculates the number of pulses for the travel I want and sends that many pulses to the appropriate stepper.· I also have a menu option Autorun.· If I select Autorun, the program reads a DAT list that specifies the direction and ending coordinate.

    Generation of the DAT list is a bit time-consuming but it works very well.· Here is how I do it.· First, as I draw the etch paths in Express. I write the ending coordinate for each etch path on an Excel form - not the distance I want to travel but the ending coordinate.· When I am finished, I type all the data I have written down into an Excel template.· The template converts the data I have entered into a DATA format that my Stamp can use.· This DATA list is then pasted into a special Stamp conversion program I wrote.· The conversion program then converts the DATA list into a format that I can paste into my Propeller program.

    When the Propeller program starts reading the DAT list it compares the "coordinate destination" values to the current position.· For example let's take the X table, and let's say the current position of the X table is 500.· If the current instruction is Left 600, the program says:

    travel = coord - posx = 600 - 500 = 100.· The actual distance the X table travels is 100, which puts the X table at 600, which is where I wanted to wind up.· If the current instruction says Right 400 then the program says:

    travel = posx - coord = 500 - 400 = 100.· The X table travels right 100 and winds up at 400 - again exactly where I wanted to be.· I hope I explained that OK.· I keep the converted DAT files in a special folder, so if I want to make a board I have made before, I just paste that data into my Propeller program and away I go.

    There is one disadvantage to this - the computer in the shop where the mill is has Windows ME, which can not handle the Propeller Tool, so I have the disconnect the Prop board. bring it in here, reprogram it, then take it back out to the shop and connect it up again.··I working on some "quick disconnects" that will make this task easier.· So there you are.

    Any questions?

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-08 17:41
    Graham, I forgot to mention.· As each etch instruction is completed, the new X or Y· position is written to EEPROM, which is displayed at the end of each instruction or at the end of the Autorun sequence.· If I turn the Prop off, then back on, it remembers where it was and displays the current positions.··I do not record the Z positions since management of the Z position is always done manually and visually.

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-08 21:43
    I see. What made you do it that way? i.e. why not just an off the shelf freeware CNC controller and more conventional step/direction motor drives?

    Graham
  • NewzedNewzed Posts: 2,503
    edited 2006-07-08 22:10
    Because I didn't know anything about CNC - and still don't -· and everything I looked at cost a bundle.· So I decided to write my own program in a way that I could understand.· Also, I think you need a .dxf file to start with, which Expresspcb can not generate.· It may not be as efficient as a CNC, but it works.

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-09 13:34
    No takers on my extra Propeller board?· Surely, someone out there would like to have it!

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-09 14:01
    Those sound like good enough reasons to me! If you ever do want to go the other route then you should be able to output gerber files from most PCB programs, these are essentially g-code. Programs like turboCNC to run your machine cost about $40 and you can use indefinately before registering. There are lots of people making there own PCBs out there in this way so don't feel alone good groups are CAD_CAM_EDM_DRO and DIY_CNC on yahoo.

    Great stuff anyway I hope I can get as far as you.

    Cheers,

    Graham
  • NewzedNewzed Posts: 2,503
    edited 2006-07-09 23:32
    Graham, I didn't relish the idea of having to reprogram the Prop everytime I waned to make a different board, so I added an option to my program.· Now, when I select Autorun I get a menu showing all of the boards for which I have entered a DAT list.· I select the board I want to make and it runs the appropriate DAT list.· The only time I will have to reprogram is if I want to make a board I have never made before.· Isn't that neat?

    Cheerio

    Sid
  • bambinobambino Posts: 789
    edited 2006-07-10 15:43
    No luck here on the second board, still trying to save up for the starter kit.

    I would like to see a picture of your mill though. Is it already posted in one of the forums.

    Signed,

    ·········· Still Etching.
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 17:05
    Bambino, here is the only picture·I have of the mill.· You can see the stepper for the Z drive clamped on top and the stepper for the X drive, which is mounted on a slider so it travels left and right with the X table.· The aluminum thing in the front is a bracket assembly for the Y belt stepper, which uses gears amd a timing belt to reduce the Y drive speed 2:1.

    Sid
    525 x 578 - 21K
  • bambinobambino Posts: 789
    edited 2006-07-10 17:47
    That's nice. I know I'm dreaming, but someday I'd like to take something like that and prototype copperclad boards with it.

    For my own personnel use of course!
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 18:18
    The mill is an MF-70 from Proxxon, about $290.00.· No electronics, just handheels on each axis.· I replaced the collet-type cutter/drill holder with a keyless chuck.

    Sid
  • bambinobambino Posts: 789
    edited 2006-07-10 19:10
    Thanks again,

    That put my dreams in color anyway.

    Good luck on your board!
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 22:18
    Chip, Steve, Mike, anyone.

    I have a real bug in my Propeller program for SuperMill.· I have a DAT list:

    trav2·· WORD··· "L",846
    ········· WORD·· "I",675
    ··········WORD··· "O",600
    ········· WORD··· "Q"

    "L", 846 appears to work OK.· If I change it to 847, it goes Left 847,then screen displays an extra line - Going out -73 to 73 - and the program freezes.

    If I change it to 848, it goes Left 848, then says "Pausing".· I don't even have a Pause command in this data list.· If I press any key to end the Pause, it then executes the rest of the DAT list

    If I change it to 849, it goes Left 849, then says "Done" and ignores the rest of the DAT list.

    If I change it to 850, it goes Left 850, then displays an extra line - Going right 777 to 73 - then executes the rest of the DAT list.

    Solution, please.

    Thanks

    Sid
  • Mike GreenMike Green Posts: 23,101
    edited 2006-07-10 22:57
    How are you accessing the DAT list? Maybe you're incrementing the address wrong? Even though you're storing only a single character in the first word of the DAT list, you're using a full 16-bit word. The address has to be incremented by 2. If you're using WORD[noparse][[/noparse]@trav2], the compiler takes care of multiplying "i" by 2, then adding that to the address of "trav2". If you're doing WORD[noparse][[/noparse]@trav2+i], it should be WORD[noparse][[/noparse]@trav2+i*2].
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 23:09
    Mike, I'macessing the DAT list ccorrectly, otherwise it wouldn't work when the "L" value is 845 or less.· I write dir :=word[noparse][[/noparse]@trav][noparse][[/noparse]pntr], with pntr = 0 at the start.· I increment it by 1 to read the travel, then increment by 1 again then repeat.

    Anyway, I think I've solved the problem.· I changed WORD in the DAT list to LONG, changed the VAR dir to LONG, and changed the WORD in
    dir:=WORD[noparse][[/noparse]@trav2][noparse][[/noparse]pntr] to LONGwherever necessary and now it looks like it is working.· I'll have to make additional runs to make sure the problem is solved.

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 23:11
    As an afterthought, why did I have to change WORD to LONG?· 850 is a WORD- what am I missing?

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-10 23:41
    Looks like everything is OK.· I ran a DAT list from start to finish, said list having some large vakues in it, and the program did everything it was supposed to and finished up at X = 0, Y = 300, exactly where it should be.· If I can keep correcting things like this I may promote my self to
    Second Class Junior Apprentice Propeller guru.

    Sid
  • PLJackPLJack Posts: 398
    edited 2006-07-11 02:52
    Newzed said...
    I may promote my self to Second Class Junior Apprentice Propeller guru.
    Sid

    Sid, you crack me up.
    BTW, first time I have seen picture of "the mill".
    Very cool.

    Are you using that monitor in the upper right?
    Looks like a 9 pin amber monitor.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - PLJack - - -



    Perfection in design is not achieved when there is nothing left to add.
    It is achieved when there is nothing left to take away.
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 11:56
    PL, that little monitor is a security monitor so I can see if anyone comes up the driveway or to the front door while I'm buried out in the shop.

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 15:30
    PL,I thought you might like to see a picure of the X drive slider.· When I first started putting everything together, I considered mounting the stepper on the end of the X table.· This would have been a bit difficult but not impossible.· However, the main reason I decided against it was because the further left the table travelled, the more of a downward drag there would be from the weight of the stepper, and I was afraid it would affect the accuracy of the travel.· So that is why the slider - there may be some drag but at least it is the same for all directions.

    I bent up the ends of the aluminum base so it would present a curved surface to the slider surface.· I padded the space between the aluminum base and the stepper frame with masking tape until the stepper shaft was almost aligned with the adapter hole, then I made the final padding with double-sided golf-grip tape to hold everything in place.· The bottom of the aluminum base rests on a sheet of .040 galvanized which is anchored in place.· The top surface of the galvanized and the bottom suface of the aluminum base were polished with 400 grit wet-dry until they shone like a mirror.· I keep a film of white lithium grease from a spray can between the aluminum base and the galvanized to reduce friction to an absolute minimum.· About every month or two, I removed the slider assembly from the adapter and repolish both surfaces.· It really works pretty well.

    Sid
    525 x 415 - 14K
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-11 17:28
    Interesting approach, I would be worried that the extra slide creates a potential for error as it would not be very well constrained from rotation although I notice it is nice and wide and looks quite heavy, any lack of flatness causing the block to tilt would also cause positional error.

    Attached is how I did mine, I have had no trouble with droop as the cutter is always directly over the saddle where the bed is held very rigidly.

    Graham

    p.s. For really small drills stick with the collets, they will spin more truly.
    599 x 479 - 31K
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 18:57
    Graham, I would like to see a picture of the end of the X table with the stepper assembly removed.· I'd like to see where you drilled the holes.· How did you get the handwheel off?· I had no trouble removing the crank handle but I couldn't get the wheel itself off.

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-11 20:52
    To remove the handles take off the nut from the far end of the leadscrew (might be a cover) then unscrew the leadscrew. The dial next to the handle can then be slid forward revealing a rolled pin that secures the handle, tap this out with a drift/punch.

    To attach my assembly to the end of the bed I used the holes that attach the origional plastic ends but I just used much longer screws. They only have to prevent the assembly from turning with stepper torque all the real force is applied to the thrust washers at each end of the leadscrew.

    Graham
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 22:07
    Graham, did you get my PM?

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-11 22:57
    yes and I replied
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 23:43
    Steve, I have the backlash compensation added to the four directions in the Start Menu and to all four directions in Autorun.· I also tidied up Autorun - I now have four DAT list selections, three boards I have made in the past plus a little Test list, which I use for checking the TV display.· I think everything necessary and desirable has been done.· I had to switch all the DAT lists and associated program instructions/VARs to LONG instead of WORD to get it to work with large numbers.· I'm just waiting on your comments abut switching to VGA before I make my next move>

    Sid
  • NewzedNewzed Posts: 2,503
    edited 2006-07-11 23:48
    Graham, the nut on the end of the leadscrew rotates with the leadscrew.· Did you hold the wheel with a pair of pliers in order to unscew it, then rotate the wheel by hand just enough to allow the index wheel to be moved enough to give you access to the roll pin?· I would guess that the tightening of the leadscrew nut would be quite critical - not enough and you get excessive backlash.· Too muchand the stepper has to work too hard or the table won't move at all.

    Sid
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2006-07-12 10:06
    Yes, you have to prevent the screw from rotating. I then took the screw right out to make removal of the rolled pin easier but you could screw it out just enough.

    The nut is important as it prevents axial movement of the screw. The leadnuts in the MF70 are made of delrin and have very little backlash, what backlash there is tends to come from end float of the screw. It is important to get the tightening just right, some grease can help too.

    I actually ended up changing the washers that act as thrust bearings at the ends of the screws for normal 6mm ID radial bearings, these are very cheap and the axial load rating is normally about half of the radial. As the radial load is HUGE there is no problem and I can get the screw a bit tighter without it binding. I just hold the bearing with a bit of epoxy around the edge. I can post some pics later.

    Graham
Sign In or Register to comment.