user16923: I am building a chess board where I have one LED for each column and row, so I can represent moves by iluminating the orogin coordinate (e2) and the destination coordinate (e4)
However chess algebraic notation is simplified and the origin and destination coordinates need additional info to be calculated (like the board and the rules for each piece)
I am looking for some library or function that does this convertion (any language is fine).
Basically I need this function to translate my board coordinates to a chess engine notation and viceversa.

user825: 
https://github.com/niklasf/python-chess

Parses and creates SAN representation of moves.

>>> board = chess.Board()
>>> board.san(chess.Move(chess.E2, chess.E4))
'e4'
>>> board.parse_san('Nf3')
Move.from_uci('g1f3')
>>> board.variation_san([chess.Move.from_uci(m) for m in ["e2e4", "e7e5", "g1f3"]])
'1. e4 e5 2. Nf3'

Do you see "g1f3" translates to Nf3?

user9684: Java:  https://github.com/bhlangonijr/chesslib/tree/master/src/main/java/com/github/bhlangonijr/chesslib
C++:  https://github.com/alexmdc/chesslib
Python:  https://pypi.org/project/python-chess/
C:  https://sourceforge.net/projects/sankit/
These are all able to return long algebraic notation.  Stockfish is reported to also.

16923: <p>I am building a chess board where I have one LED for each column and row, so I can represent moves by iluminating the orogin coordinate (e2) and the destination coordinate (e4)</p>

<p>However chess algebraic notation is simplified and the origin and destination coordinates need additional info to be calculated (like the board and the rules for each piece)</p>

<p>I am looking for some library or function that does this convertion (any language is fine).</p>

<p>Basically I need this function to translate my board coordinates to a chess engine notation and viceversa.</p>
 825: <blockquote>
  <p><a href="https://github.com/niklasf/python-chess" rel="nofollow noreferrer">https://github.com/niklasf/python-chess</a></p>
</blockquote>

<pre><code>Parses and creates SAN representation of moves.

&gt;&gt;&gt; board = chess.Board()
&gt;&gt;&gt; board.san(chess.Move(chess.E2, chess.E4))
'e4'
&gt;&gt;&gt; board.parse_san('Nf3')
Move.from_uci('g1f3')
&gt;&gt;&gt; board.variation_san([chess.Move.from_uci(m) for m in ["e2e4", "e7e5", "g1f3"]])
'1. e4 e5 2. Nf3'
</code></pre>

<p>Do you see "g1f3" translates to <code>Nf3</code>?</p>
 9684: <p>Java:  <a href="https://github.com/bhlangonijr/chesslib/tree/master/src/main/java/com/github/bhlangonijr/chesslib" rel="nofollow noreferrer">https://github.com/bhlangonijr/chesslib/tree/master/src/main/java/com/github/bhlangonijr/chesslib</a></p>

<p>C++:  <a href="https://github.com/alexmdc/chesslib" rel="nofollow noreferrer">https://github.com/alexmdc/chesslib</a></p>

<p>Python:  <a href="https://pypi.org/project/python-chess/" rel="nofollow noreferrer">https://pypi.org/project/python-chess/</a></p>

<p>C:  <a href="https://sourceforge.net/projects/sankit/" rel="nofollow noreferrer">https://sourceforge.net/projects/sankit/</a></p>

<p>These are all able to return long algebraic notation.  Stockfish is reported to also.</p>
