Step/Dir servos + Encoders = follow errors... and so much pain.....

More
22 Feb 2021 17:23 #199728 by jhandel
Thanks!

You think there would be a problem pig-tailing on the OZ+ going into my 7i89 and into the 7i75 so they are both getting the same signal? or should i pull my OZ+ completely off the encoder block on the 7i89 for now?

Please Log in or Create an account to join the conversation.

More
23 Feb 2021 18:08 #199869 by PCW
Sharing will probably not work as the 7I89s differential termination
will probably reduce the swing enough to not work with the 7I75 inputs
but you could jumper the index on the 7I89 for single ended.

BTW I have got firmware now supporting shared muxed encoder/stepgen
index signals. Its a bit limited because the stepgen instance must match the
encoder instance (that is if you have a shared index on muxed encoders 3,4
they will be hardwired to stepgens 3,4 indexes)
The following user(s) said Thank You: jhandel

Please Log in or Create an account to join the conversation.

More
25 Feb 2021 19:55 #200127 by jhandel
Awesome.. that is much less wiring hackery than the other approach :-)

Please Log in or Create an account to join the conversation.

More
29 May 2023 00:43 #272376 by jhandel
Sorry for resurrecting this thread but a lot happend in life between when I stopped working on this and now.. Anyways, I am finally getting this machine back up and running ( change in jobs, moves, home renos, life, life moth balled this project for 2 years :-O)  

Anyways,   I did some searching and I am not sure clear instructions on how to use the stepgenindex to use index's for homing while still treating a the axis as open loop? 

I imagine it would start with 2.9 and updating the VHD for the pinnouts in the firmware... Here is my current VHD for my 7i76e + 7i89 + generic Bob combo looks like 
library IEEE;
use IEEE.std_logic_1164.all;  -- defines std_logic types
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Copyright (C) 2007, Peter C. Wallace, Mesa Electronics
-- http://www.mesanet.com
--
-- This program is is licensed under a disjunctive dual license giving you
-- the choice of one of the two following sets of free software/open source
-- licensing terms:
--
--    * GNU General Public License (GPL), version 2.0 or later
--    * 3-clause BSD License
-- 
--
-- The GNU GPL License:
-- 
--     This program is free software; you can redistribute it and/or modify
--     it under the terms of the GNU General Public License as published by
--     the Free Software Foundation; either version 2 of the License, or
--     (at your option) any later version.
-- 
--     This program is distributed in the hope that it will be useful,
--     but WITHOUT ANY WARRANTY; without even the implied warranty of
--     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--     GNU General Public License for more details.
-- 
--     You should have received a copy of the GNU General Public License
--     along with this program; if not, write to the Free Software
--     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-- 
-- 
-- The 3-clause BSD License:
-- 
--     Redistribution and use in source and binary forms, with or without
--     modification, are permitted provided that the following conditions
--     are met:
-- 
--   * Redistributions of source code must retain the above copyright
--     notice, this list of conditions and the following disclaimer.
-- 
--   * Redistributions in binary form must reproduce the above
--     copyright notice, this list of conditions and the following
--     disclaimer in the documentation and/or other materials
--     provided with the distribution.
-- 
--   * Neither the name of Mesa Electronics nor the names of its
--     contributors may be used to endorse or promote products
--     derived from this software without specific prior written
--     permission.
-- 
-- 
-- Disclaimer:
-- 
--     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
--     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
--     COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
--     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
--     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
--     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
--     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
--     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
--     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
--     POSSIBILITY OF SUCH DAMAGE.
-- 

use work.IDROMConst.all;

package PIN_7i76x1_7i89x2D_x15ABOB_51 is
    constant ModuleID : ModuleIDType :=( 
        (HM2DPLLTag,    x"00",    ClockLowTag,    x"01",    HM2DPLLBaseRateAddr&PadT,    HM2DPLLNumRegs,        x"00",    HM2DPLLMPBitMask),
        (WatchDogTag,    x"00",    ClockLowTag,    x"01",    WatchDogTimeAddr&PadT,        WatchDogNumRegs,        x"00",    WatchDogMPBitMask),
        (IOPortTag,        x"00",    ClockLowTag,    x"03",    PortAddr&PadT,                    IOPortNumRegs,            x"00",    IOPortMPBitMask),
        (StepGenTag,    x"02",    ClockLowTag,    x"06",    StepGenRateAddr&PadT,        StepGenNumRegs,        x"00",    StepGenMPBitMask),
        (MuxedQcountTag,        MQCRev,    ClockLowTag,    x"0A",    MuxedQcounterAddr&PadT,        MuxedQCounterNumRegs,x"00",    MuxedQCounterMPBitMask),
        (MuxedQCountSelTag,    x"00",    ClockLowTag,    x"01",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (SSerialTag,    x"00",    ClockLowTag,    x"01",    SSerialCommandAddr&PadT,    SSerialNumRegs,        x"10",    SSerialMPBitMask),
        (LEDTag,            x"00",    ClockLowTag,    x"01",    LEDAddr&PadT,                    LEDNumRegs,                x"00",    LEDMPBitMask),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000"),
        (NullTag,                x"00",    NullTag,            x"00",    NullAddr&PadT,                    x"00",                    x"00",    x"00000000")
        );
            
    constant PinDesc : PinDescType :=(
    
--     Base func  sec unit sec func     sec pin                                   
        IOPortTag & x"00" & StepGenTag & StepGenDirPin,                    -- I/O 00    embedded 7I76
        IOPortTag & x"00" & StepGenTag & StepGenStepPin,                -- I/O 01    
        IOPortTag & x"01" & StepGenTag & StepGenDirPin,                    -- I/O 02    
        IOPortTag & x"01" & StepGenTag & StepGenStepPin,                -- I/O 03    
        IOPortTag & x"02" & StepGenTag & StepGenDirPin,                    -- I/O 04    
        IOPortTag & x"02" & StepGenTag & StepGenStepPin,                -- I/O 05    
        IOPortTag & x"03" & StepGenTag & StepGenDirPin,                    -- I/O 06    
        IOPortTag & x"03" & StepGenTag & StepGenStepPin,                -- I/O 07    
        IOPortTag & x"04" & StepGenTag & StepGenDirPin,                    -- I/O 08    
        IOPortTag & x"04" & StepGenTag & StepGenStepPin,                -- I/O 09    
        IOPortTag & x"00" & SSerialTag & SSerialTX0Pin,                 -- I/O 10    
        IOPortTag & x"00" & SSerialTag & SSerialRX0Pin,                 -- I/O 11    
        IOPortTag & x"00" & SSerialTag & SSerialTX1Pin,                 -- I/O 12    
        IOPortTag & x"00" & SSerialTag & SSerialRX1Pin,                 -- I/O 13    
        IOPortTag & x"04" & MuxedQCountTag & MuxedQCountIDXPin,        -- I/O 14    
        IOPortTag & x"04" & MuxedQCountTag & MuxedQCountQBPin,        -- I/O 15    
        IOPortTag & x"04" & MuxedQCountTag & MuxedQCountQAPin,        -- I/O 16    

                                                                            --        P1
                                                                            -- 5ABOB pinout                    
                                                                            -- 26 HDR    -- IDC DB25    
        IOPortTag & x"05" & StepGenTag & StepGenStepPin,    -- I/O 01    PIN 1        PIN 1     just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 02   PIN 2        PIN 14    Spindle Step
        IOPortTag & x"05" & StepGenTag & StepGenDirPin,        -- I/O 03   PIN 3        PIN 2       Spindle Direction
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 04    PIN 4        PIN 15    just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 05    PIN 5        PIN 3       just GPIO    
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 06    PIN 6        PIN 16    just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 07    PIN 7        PIN 4       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 08    PIN 8        PIN 17    just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 09    PIN 9        PIN 5       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 10    PIN 11    PIN 6       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 11    PIN 13    PIN 7       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 12    PIN 15    PIN 8       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 13    PIN 17    PIN 9       just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                    -- I/O 14    PIN 19    PIN 10    just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                  -- I/O 15    PIN 21    PIN 11      just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                  -- I/O 16    PIN 23    PIN 12    just GPIO
        IOPortTag & x"00" & NullTag & NullPin,                -- I/O 33    PIN 25    PIN 13    just GPIO
        
                                                                                        --        P2            HDR26        DB25
        IOPortTag & x"00" & MuxedQCountTag & MuxedQCountQAPin,        -- I/O 17    PIN 1    PIN 1    
        IOPortTag & x"00" & MuxedQCountTag & MuxedQCountQBPin,        -- I/O 18    PIN 14   PIN 2    
        IOPortTag & x"00" & MuxedQCountTag & MuxedQCountIDXPin,        -- I/O 19    PIN 2    PIN 3    
        IOPortTag & x"01" & MuxedQCountTag & MuxedQCountQAPin,        -- I/O 20    PIN 15   PIN 4    
        IOPortTag & x"01" & MuxedQCountTag & MuxedQCountQBPin,        -- I/O 21    PIN 3    PIN 5    
        IOPortTag & x"01" & MuxedQCountTag & MuxedQCountIDXPin,        -- I/O 22    PIN 16   PIN 6    
        IOPortTag & x"02" & MuxedQCountTag & MuxedQCountQAPin,        -- I/O 23    PIN 4    PIN 7    
        IOPortTag & x"02" & MuxedQCountTag & MuxedQCountQBPin,        -- I/O 24    PIN 17   PIN 8    
        IOPortTag & x"02" & MuxedQCountTag & MuxedQCountIDXPin,        -- I/O 25    PIN 5    PIN 9    
        IOPortTag & x"03" & MuxedQCountTag & MuxedQCountQAPin,        -- I/O 26    PIN 6    PIN 11
        IOPortTag & x"03" & MuxedQCountTag & MuxedQCountQBPin,        -- I/O 27    PIN 7    PIN 13
        IOPortTag & x"03" & MuxedQCountTag &  ,        -- I/O 28    PIN 8    PIN 15
        IOPortTag & x"00" & MuxedQCountSelTag & MuxedQCountSel0Pin,    -- I/O 29    PIN 9    PIN 17
        IOPortTag & x"00" & NullTag & NullPin,                                -- I/O 30    PIN 10   PIN 19 powop
        IOPortTag & x"00" & SSerialTag & SSerialRX2Pin,                 -- I/O 31    PIN 11   PIN 21
        IOPortTag & x"00" & SSerialTag & SSerialTX2Pin,                 -- I/O 32    PIN 12   PIN 23
        IOPortTag & x"00" & SSerialTag & SSerialTXEN2Pin,                 -- I/O 33    PIN 13   PIN 25
                                                                                                        
        LIOPortTag & x"00" & SSerialTag & SSerialNTXEn1Pin,  
        
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin, 
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,

        emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin, -- added for IDROM v3
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
        emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin);

end package PIN_7i76x1_7i89x2D_x15ABOB_51;

I am not sure if these updates got pushed into 2.8.3 or 2.8.4 and my github fu couldn't chase down the change set from back then to see if it is still in master or 2.9 or (again possible) pushed into 2.8.3 or .4.. 

Again sorry for resurrecting this, I am finally back in a place where I can bring this machine back to life.. 

 

Please Log in or Create an account to join the conversation.

More
29 May 2023 00:46 - 29 May 2023 01:08 #272377 by jhandel
I read the thread: forum.linuxcnc.org/24-hal-components/482...rmware-update#264600

And I think I still have some questions.. especially on if/what I should change about my VHD (if anything) to make it compatible. 

I downloaded the firmware in the file (which wouldn't work on my card but who's vhd does give me some hints.. but it looks like I don't have to change anything? 

Just need to compile a latest and greatest firmware with my VHD and then make the HAL changes (while on 2.9).

I kind of thought my VHD would have to change but I am not seeing it if it does need to change.
Last edit: 29 May 2023 01:08 by jhandel. Reason: updating post reading of the linked thread to realize it doesn't quite get me there..

Please Log in or Create an account to join the conversation.

Time to create page: 0.097 seconds
Powered by Kunena Forum