pncconf is a graphical configuration program based from Jeff's excellent program stepconf, for use with servo / hardware stepper systems.
Pncconf is a work in progress. Alpha srage
Right now it supports the Mesa 5i20,5i22,5i23,7i43 3x20 cards with a few different firmware each.
I would hope to add other hardware cards/systems in the future (eg ppmc)
It also supports I/O on max 3 parports, though you can't directly control an axis using the parport (it's for I/O like coolant etc)
I've done some testing and would love to hear about anybody with real hardware to try
if you wish to try it open a terminal, then type 'pncconf'
comments/feedback welcome: Chris Morley on the emc-developers list or leave a message on emc or cnczone forum
- 1. Highlights:
- 2. Conceptual Idea
- 3. future ideas
- 4. Using it to configure EMC2
- 4.1. Load old config page
- 4.2. Basic info page
- 4.3. Gui Configuration
- 4.4. Mesa setup page
- 4.5. Mesa connector pages
- 4.6. Spindle Page
- 5.1. Basic info page
- 5.2. External Controls page
- 5.3. GUI page
- 5.4. Motor Axis setup
- 5.5. Mesa I / O setup page
can choose different front ends (AXIS, Tkemc, Mini) though TKemc and Mini seem not to be suited for lathes (or I don't know how to make them suited)
uses hostmot2 for the Mesa boards so is very flexible.
You can choose which pins are general purpose I/O (GPIO) and whether they are input, output, or open drain output.
supports pwm and pdm
users can write custom signal names for components / GPIO to aid in using custom HAL files.
has a built in pyvcp test panel for Mesa and parport to aid checking connections.
test panel to aid in PID tuning (incomplete)
test panel to aid in step tuning
ability to add user picked extra HAL components to aid in using custom HAL file
ability to add HALUI MDI commands.
ability to add classicladder (same as stepconf)
ability to add pyvcp panels (if not using AXIS will be stand alone panels one problem is the panel will cover the display or vice versa)
supports compensation files (doesn't help to build them but will help to load them)
supports a help button
MPG jogging with multiple scaling and possibility to use one jogwheel with multiply axis. This is outside of GUI jogging
supports PID controlled or stepper driven spindle (incomplete just started)
2. Conceptual Idea
What was I thinking?
I originally added a page to stepconf and wished to do more, but stepconf was built for a specific purpose and does it well. So why mess with it
I wanted a way for new-to-EMC people who had servos to be able to configure a machine without having to learn everything about EMC, HAL, Pyvcp, etc all at once.
One major difference between Mach and EMC2 is that EMC2 supports true closed loop - I think it needs a easier way to try it - I hope pncconf can help.
I am new to python but found it fun to add the page to stepconf. Stepconf was familiar to people already and I think it can be done (or fun to try).
Originally I was going to use the original mesa 5i20 driver but was convinced to try the hostmot2 (was the right idea)
When started using hostmot2 I pretty much had to add hardware stepping as hostmot2 supports this.
I was also going to add the ability to use the parallel port for software encoder and software pwm but have decided to delay this indefinitely.
I wanted it easier to add custom HAL files that could use the extra I / O of the mesa board while having pncconf reflect that fact - so user custom signal names were added
being able to load extra components goes hand in hand with this so I am trying to come up with a practical way to do that too.
I want it so ( 90 % of the cases) you will not have to hand edit the main, pncconf built, HAL file.
I wanted to be able to select different font-ends ( AXIS / Tkemc, Mini) as some like one more then the other. This is tough as each supports different things and things differently
I like this option a lot as with a simple click I can have EMC2 look entirely different!
3. future ideas
This assumes pncconf is useful / accepted
I would like to make it easier to add joystick jogging -right now a user would have to do it entirely in a custom hal file
I would like to add more axis - this is actually pretty easy
I would like to support other I / O methods/cards
I will support more Mesa cards/firmware as requested
4. Using it to configure EMC2
So pncconf is far enough along that I have produced configs mostly for stepper systems
4.1. Load old config page
Nothing different here from stepconf
4.2. Basic info page
Here you can choose one or two mesa board and up to 3 parallel ports for I / O
The parallel ports can be specified as 'in' or 'out' which varies the amount of in or out pins avaliable.
The limit and homing selections will change the available signal names
if you checked mesa there will be quite a pause before the next page as the mesa info is set up-bit of a pain
4.3. Gui Configuration
you can select different front-ends here from Axis,Tkemc and Mini
each supports different things so what works with AXIS maynot with TKemc - more work needs to be done
you can also select a pyvcp panel and if it is a stand alone panel it's initial screen position
4.4. Mesa setup page
This is a busy page
the configuration tab allows you to choose the board, firmware, number of components / gpio, frequency of pwm / pdm and the watchdog timeout
pick the board you want to use then the firmware and you will see the component numbers change
default is to have all the available components active. by choosing less of each component frees up gpio
press 'accept component changes' to have the connector tabs reflect the changes
any signalnames you had already pick will be lost unless the component is the same as before the change
Depending on the board chosen, the tabs will dim if not available.
The connector tabs will display the signal names and the component type
if the type is GPIO (general purpose Input / output) then you may choose between input,output,and opendrain
if PWM GEN you may choose between pwm and pdm
STEP GENs at the moment only support step and direction
And ENCODERS only quadrature. You could change these options in a custom HAL file
If you wish to connect a component to something in a custom HAL file write a unique signal name in the combo entry box
certain components will add endings to your custom signal name, such as the encoder will add -position -count -velocity -index-enable and -reset
4.5. Mesa connector pages
The available tabs are selected based on the mesa card type
The available component types are based on the firmware/ component number selected on the setup page
There are four major pintypes based on the components available:
- GPIO - general purpose input / output
You can select the type in the pintype combobox
This includes GPIOI - input, GPIOO - output, and GPIOD - open drain output
The available signals will change if you switch between GPIOI and GPIOO/GPIOD.
- ENCODER - a hardware base quadrature counter
You select the A phase signal and the rest of the phases (B, I, and possibly M) are automatically included
- STEPGEN - a hardware based step and direction generator
Right now only step and direction stepgens are selectable (you could override that in a custom HAL file)
You select the STEP signal and the direction and enable signals are automatically setup
- PWMGEN - a hardware base pulse width (or density) modulation generator
You can select PWM or PWD in the pintype combobox
you select the PULSE signal and the direction and enable signals are automatically setup
4.6. Spindle Page
The spindle page will only show if you choose a spindle signal.
You can drive the spindle with a stepper motor, an analog controlled motor (with or without PID) or just a relay.
You can also set up an encoder for PID / threading.
5.1. Basic info page
||This is the basic info for a machine
-similar to stepconf.
You can have two Mesa card now.
The limit and home options change the signal names avalable in the parport and mesa pages || ||
5.2. External Controls page
|This is for external jogging / rapid controls and limit / homing switched. || |
5.3. GUI page
|This is for loading different GUI frontends and setting defaults. Pyvcp panels are also selected here. || |
5.4. Motor Axis setup
|This is the first of two pages to set up an axis|
The stepper info is not available because a step generator was not selected for the X axis
The open loop test is for running the motor without PID control (just fwd, rev, speed) and observing the encoder count direction. It's important to have the motor and encoder direction right or a servo 'runaway' is possible under PID control
5.5. Mesa I / O setup page