First Chess Project (ver 1.1)
This code seems much better than before, so congrats. Here are a few more things to adjust:


Move your main game loop into a function and call it in an if block like this:

if __name__ = "__main__":
    #call your main function


This is so that people (including yourself) importing your module don't immediately get a chess window popping up.
You factored out the Piece baseclass from all of the pieces, simplifying that code quite a bit. This is good! But now you should finish the job of merging the different coloured pieces into the same class. They are extremely close to identical. You can pass in all of the values that distinguish them (colour, position, etc.) in the __init__ method when you initialize them.
At this point, with the number of global variables and global functions operating on those variables, you should group them into a GameState object to encapsulate them.
I will second the recommendations to replace numbers that are clearly constants with variables to improve readability, as well as follow the style guidelines in PEP 8.


Beyond that, I think the changes we're looking at are either implementation specific (you would do it differently depending on what this is supposed to accomplish, and what your goals are), are too minor to bring up one by one, or down to personal coding style.