The main idea behind the extension is that the full set of valid input characters is mapped to a list of code-points (i.e., sequential integers beginning with zero).
For applications using the English alphabet this is not a problem, since a string of lower-case letters has 26 code-points, and adding Decimal characters adds a further 10, maintaining an N divisible by 2.
Where an N is used that is not divisible by 2 this step returns even numbers for doubled values greater than N which cannot be distinguished from doubled values less than or equal to N. The algorithm will neither detect all single-digit errors nor all transpositions of adjacent digits if an N is used that is not divisible by 2.
The Luhn mod N algorithm odd variation enables applications where N is not divisible by 2 by replacing the doubled value at each position with the remainder after dividing the position's value by N which gives odd number remainders consistent with the original algorithm design.
The associated check character is e. The resulting string abcdefe can then be validated by using a similar procedure: The total sum of digits is 18.
The simplest approach (akin to the original Luhn algorithm) is to use ASCII code arithmetic.
On a positive note, the larger the set of valid input characters, the smaller the impact of the weakness.