My first P2 board
kbash
Posts: 117
The attached file is a screen shot of my current design for a P2 based control board.
When it looked like the P2 was a couple of weeks out I started laying out a board that I intend to use to control some of my CNC machines.
The design takes Chips original Prop2 Module schematic and adds back a bunch of I/O using the TCA6424A serial to parallel I/O expander. I've also included ferrite filters for lines going directly to the P2 to minimize spikes.
The design is intended to allow use of either stepper , hobby servo, or high power DC servo drives.
With the horsepower of the P2, it should be possible to even “Mix and Match” different motor types if required.
I've found the 9 – 37 pin “D”style connectors to be reliable and cost effective so I've got 6 15pinD connectors for 6 axis of machine control.
Each 15 pin connector has 5 pins going directly to the P2 for motor control and encoder feedback, 3pins going to a 24bit I/O expander for limit switches, etc. These connectors also have 3.3v, 5v, 12v and -12v.
The 15 pin D connectors are intended to plug directly to many applications, but are supplied with voltages to allow small “Daughter Boards” to adapt signals in and out of the“Real world” if necessary. ( these could easily be video driver/connectors, serial com, etc as well as DC amplifiers and such)
The 37pinD is for power input and auxiliary stuff ( coolant, clamping, etc. ) with 8 pins going directly to the P2, and 20 pins going to another 24 bit I/O expander.
A couple of other connectors are for ancillary signals. Programming, SD card, etc.
The board in it's current iteration has a header socket to plug a Parallax Micro-SD card adapter, but may wind up having a dedicated SD socket on-board.
Since we don't have an actual P2 chip to work with, most of this design is on faith that Chip's Prop 2 Module schematic is accurate, ( I do however have great faith in Chip's design ability) so this board may have to go through an iteration or two to get it right once we have P2 chips in hand, but the over-all design should work well for the type of things I generally do with the Prop. ( I have a second board with a similar footprint designed for the Prop 1 after it turned out the P2 would be delayed, but not sure if there would be interest in this board also )
My first question: Is anyone interested in this board for their own projects? Having a ready market might prompt me to put some more time into it.
Second question: Is anyone interested in a collaborative effort to develop a “Killer” motion control board for the P2? I use the P1 to control some of my multi-axis machines right now, so I know the P2 will be a great processor for these applications.
I've got a super fast 6 axis motion control function for steppers with ramping, speed control etc,already running in a single cog of the P1. I also have a crude DC servo-drive function with encoder feedback that uses the “you should be HERE” output of the stepper drive program, to control the output to a DC servo. It needs some clean up to make it a bit“Tighter”, but for a first run, it works pretty well. This controller would make a GREAT board for 3d printers, robots, CNC mills, etc.
Third Question: Is anyone at Parallax willing to review my schematic and layout to see if I've missed anything obvious with what you know of the current design of the P2?
If someone else out there has anything to “Bring to the picnic” I would love to hear from you!
The board is 4 layers, about 4.5 inches by 5 inches in size. Cost: unknown at this time.
Any feedback would be greatly appreciated!
When it looked like the P2 was a couple of weeks out I started laying out a board that I intend to use to control some of my CNC machines.
The design takes Chips original Prop2 Module schematic and adds back a bunch of I/O using the TCA6424A serial to parallel I/O expander. I've also included ferrite filters for lines going directly to the P2 to minimize spikes.
The design is intended to allow use of either stepper , hobby servo, or high power DC servo drives.
With the horsepower of the P2, it should be possible to even “Mix and Match” different motor types if required.
I've found the 9 – 37 pin “D”style connectors to be reliable and cost effective so I've got 6 15pinD connectors for 6 axis of machine control.
Each 15 pin connector has 5 pins going directly to the P2 for motor control and encoder feedback, 3pins going to a 24bit I/O expander for limit switches, etc. These connectors also have 3.3v, 5v, 12v and -12v.
The 15 pin D connectors are intended to plug directly to many applications, but are supplied with voltages to allow small “Daughter Boards” to adapt signals in and out of the“Real world” if necessary. ( these could easily be video driver/connectors, serial com, etc as well as DC amplifiers and such)
The 37pinD is for power input and auxiliary stuff ( coolant, clamping, etc. ) with 8 pins going directly to the P2, and 20 pins going to another 24 bit I/O expander.
A couple of other connectors are for ancillary signals. Programming, SD card, etc.
The board in it's current iteration has a header socket to plug a Parallax Micro-SD card adapter, but may wind up having a dedicated SD socket on-board.
Since we don't have an actual P2 chip to work with, most of this design is on faith that Chip's Prop 2 Module schematic is accurate, ( I do however have great faith in Chip's design ability) so this board may have to go through an iteration or two to get it right once we have P2 chips in hand, but the over-all design should work well for the type of things I generally do with the Prop. ( I have a second board with a similar footprint designed for the Prop 1 after it turned out the P2 would be delayed, but not sure if there would be interest in this board also )
My first question: Is anyone interested in this board for their own projects? Having a ready market might prompt me to put some more time into it.
Second question: Is anyone interested in a collaborative effort to develop a “Killer” motion control board for the P2? I use the P1 to control some of my multi-axis machines right now, so I know the P2 will be a great processor for these applications.
I've got a super fast 6 axis motion control function for steppers with ramping, speed control etc,already running in a single cog of the P1. I also have a crude DC servo-drive function with encoder feedback that uses the “you should be HERE” output of the stepper drive program, to control the output to a DC servo. It needs some clean up to make it a bit“Tighter”, but for a first run, it works pretty well. This controller would make a GREAT board for 3d printers, robots, CNC mills, etc.
Third Question: Is anyone at Parallax willing to review my schematic and layout to see if I've missed anything obvious with what you know of the current design of the P2?
If someone else out there has anything to “Bring to the picnic” I would love to hear from you!
The board is 4 layers, about 4.5 inches by 5 inches in size. Cost: unknown at this time.
Any feedback would be greatly appreciated!
Comments
My project was also supposed to use the P2 but is now being redesigned for the P1 to hopefully get me by until the P2 comes out. For my shop I need a flexible industrial style controller that is not insanely expensive (Fanuc, Mitsubishi, Siemens, Fagor I am talking about you!).
To get the I/O I need I am using a variation of the old style memory mapping with a 3 bit address accessing an 8 bit bidirectional data path with 3 control channels. It handles 8 digital outputs, soft output verification (read back of the output latch values) and 8 binary inputs on each of the 8 individual expansion cards.
With 8 card slots that gives me 64 verified outputs and 64 inputs. Currently I am working on two board designs for it: A 2 axis stepper/servo card with encoder (A,B,I) feedback and a generic 8/8 card for misc stuff. With a dedicated cog the update time for a full set of cards is very fast. Not quite good enough for the rapid speeds I want out of the drives but usable for now.
For analog I parallel the 3 address bits over to a rack of 8 serial analog input/output cards for 64 AI/AO via an 8 channel serial ADC or DAC on each card. The update times are much slower since each card can only be enabled when the primary data controller has the correct address latched so between each card update there is a period where it waits for the main I/O cog to get around to the card address it wants to use next so it can latch it on its address bus, go read the 8 values, and then wait for the window for the next card address. I could probably do this in a more effective way but I wanted to keep the same card/slot design concept.
On the P2 I would be able to have three individual I/O racks: High speed stepper/servo card rack, larger yet slower access digital rack, an analog rack that could also be used as a multi channel serial interface to about anything I want as well as having the user interface built in (planning on using a Cubieboard2 for that now).
I'm not sure exactly how fast my 6 axis function is, but running all 6 axis in a full speed test ( just software, nothing attached ) I seemed to be putting out steps in the 200,000+ per second range which is plenty fast for the stuff I do. This lets me put a microstepper on hi resolution and still get nice speed. There is a delay for the calculations from one 6 axis "go" to the next, but I've never measured it and haven't been able to detect it in operation. Honestly the P1 is fast enough for most of the stuff I do, but I want to use the P2 to do precision control with linear encoder feedback on my CNC mill.
I have all the C++ code to take DXF or HP Plotter output and convert it to motion as well as a basic 6 axis (G, x,y,z,w,r,t) format. I was hoping to port this code to the P2 to have everything running on one inexpensive little controller. For a really nice INDUSTRIAL level controller, the intention is to mount the connectors on the back side of this board and plug it into a signal conditioning board with all the power, opto-io's and industrial strength wire connectors.
200,000 is about what I am running for my cycle time but only 1/2 of those cycles are actual steps since there is one cycle to clock high (step) and one to clock low (ready for next step pulse). With 2000 steps per rev and a .100"/Rev lead screw that gives me a max rapid speed of 300 in / minute.
That is ok for my small special purpose built machines but nothing like the 1600 to 2100 IPM that my real machines run and is slower than the target 800 ipm rapids that I would like in the long run.
I have a lathe with a Centroid controller on it that I want to modify with my control and 3 extra axis (cutoff + 2 side form tools) that is capable of 1100 IPM speeds with the motors that are on it. That was where the original Prop2 project started.