I am too
I can’t seem to find a pattern either. But I know why the 124 is not working. If all the numbers are off in comparison to the ascii scale, 124 will be off too!
I am too
I can’t seem to find a pattern either. But I know why the 124 is not working. If all the numbers are off in comparison to the ascii scale, 124 will be off too!
nothing!
I’ve got nothing! here is a table of the codes you sent compared to the characters that got displayed. Notice how lower “h” no longer gets mangled into upper “H”, but into a “white square” which usually indicates some sort of unprintable or unrecognised character.
intended | result | sent (dec) | result (dec) | diff (dec) | sent (bin) | result (bin) |
! | o | 33 | 111 | -78 | 010 0001 | 110 1111 |
" | 7 | 34 | 55 | -21 | 010 0010 | 011 0111 |
# | n | 35 | 110 | -75 | 010 0011 | 110 1110 |
$ | unknown | 36 | n/a | 010 0100 | n/a | |
% | m | 37 | 109 | -72 | 010 0101 | 110 1101 |
& | 6 | 38 | 54 | -16 | 010 0110 | 011 0110 |
’ | l | 39 | 76 | -37 | 010 0111 | 100 1100 |
( | white square | 40 | n/a | 010 1000 | n/a | |
) | k | 41 | 107 | -66 | 010 1001 | 110 1011 |
asterisk | 5 | 42 | 53 | -11 | 010 1010 | 011 0101 |
+ | j | 43 | 106 | -63 | 010 1011 | 110 1010 |
, | . | 44 | 46 | -2 | 010 1100 | 010 1110 |
- | i | 45 | 105 | -60 | 010 1101 | 110 1001 |
. | 4 | 46 | 52 | -6 | 010 1110 | 011 0100 |
/ | h | 47 | 104 | -57 | 010 1111 | 110 1000 |
0 | unknown | 48 | n/a | 011 0000 | n/a | |
1 | g | 49 | 103 | -54 | 011 0001 | 110 0111 |
2 | 3 | 50 | 51 | -1 | 011 0010 | 011 0011 |
3 | f | 51 | 102 | -51 | 011 0011 | 110 0110 |
4 | unknown | 52 | n/a | 011 0100 | n/a | |
5 | e | 53 | 101 | -48 | 011 0101 | 110 0101 |
6 | 2 | 54 | 50 | 4 | 011 0110 | 011 0010 |
7 | d | 55 | 100 | -45 | 011 0111 | 110 0100 |
8 | white square | 56 | n/a | 011 1000 | n/a | |
9 | c | 57 | 99 | -42 | 011 1001 | 110 0011 |
: | 1 | 58 | 49 | 9 | 011 1010 | 011 0001 |
; | b | 59 | 98 | -39 | 011 1011 | 110 0010 |
< | unknown | 60 | n/a | 011 1100 | n/a | |
= | a | 61 | 97 | -36 | 011 1101 | 110 0001 |
> | 0 | 62 | 48 | 14 | 011 1110 | 011 0000 |
? | ’ | 63 | 39 | 24 | 011 1111 | 010 0111 |
@ | white square | 64 | n/a | 100 0000 | n/a | |
A | 65 | 95 | -30 | 100 0001 | 101 1111 | |
B | / | 66 | 47 | 19 | 100 0010 | 010 1111 |
C | ^ | 67 | 94 | -27 | 100 0011 | 101 1110 |
D | unknown | 68 | n/a | 100 0100 | n/a | |
E | ] | 69 | 93 | -24 | 100 0101 | 101 1101 |
F | . | 70 | 46 | 24 | 100 0110 | 010 1110 |
G | Yen | 71 | n/a | 100 0111 | n/a | |
H | unknown | 72 | n/a | 100 1000 | n/a | |
I | [ | 73 | 91 | -18 | 100 1001 | 101 1011 |
J | - | 74 | 45 | 29 | 100 1010 | 010 1101 |
K | z | 75 | 122 | -47 | 100 1011 | 111 1010 |
L | unknown | 76 | n/a | 100 1100 | n/a | |
M | Y | 77 | 89 | -12 | 100 1101 | 101 1001 |
N | unknown | 78 | n/a | 100 1110 | n/a | |
O | g | 79 | 103 | -24 | 100 1111 | 110 0111 |
P | X | 80 | 88 | -8 | 101 0000 | 101 1000 |
Q | W | 81 | 87 | -6 | 101 0001 | 101 0111 |
R | + | 82 | 43 | 39 | 101 0010 | 010 1011 |
S | unknown | 83 | n/a | 101 0011 | n/a | |
T | V | 84 | 86 | -2 | 101 0100 | 101 0110 |
U | unknown | 85 | n/a | 101 0101 | n/a | |
V | asterisk | 86 | 42 | 44 | 101 0110 | 010 1010 |
W | T | 87 | 84 | 3 | 101 0111 | 101 0100 |
X | unknown | 88 | n/a | 101 1000 | n/a | |
Y | S | 89 | 83 | 6 | 101 1001 | 101 0011 |
Y | S | 89 | 83 | 6 | 101 1001 | 101 0011 |
Z | ) | 90 | 41 | 49 | 101 1010 | 010 1001 |
[ | R | 91 | 82 | 9 | 101 1011 | 101 0010 |
[ | R | 91 | 82 | 9 | 101 1011 | 101 0010 |
</div> | unknown | 92 | n/a | 101 1100 | n/a | |
] | Q | 93 | 81 | 12 | 101 1101 | 101 0001 |
^ | ( | 94 | 40 | 54 | 101 1110 | 010 1000 |
P | 95 | 80 | 15 | 101 1111 | 101 0000 | |
` | white square | 96 | n/a | 110 0000 | n/a | |
a | O | 97 | 79 | 18 | 110 0001 | 100 1111 |
a | O | 97 | 79 | 18 | 110 0001 | 100 1111 |
b | ’ | 98 | 39 | 59 | 110 0010 | 010 0111 |
c | N | 99 | 78 | 21 | 110 0011 | 100 1110 |
d | space | 100 | 32 | 68 | 110 0100 | 010 0000 |
d | unknown | 100 | n/a | 110 0100 | n/a | |
e | M | 101 | 77 | 24 | 110 0101 | 100 1101 |
f | & | 102 | 38 | 64 | 110 0110 | 010 0110 |
g | L | 103 | 76 | 27 | 110 0111 | 100 1100 |
g | L | 103 | 76 | 27 | 110 0111 | 100 1100 |
g | L | 103 | 76 | 27 | 110 0111 | 100 1100 |
h | white square | 104 | n/a | 110 1000 | n/a | |
i | K | 105 | 75 | 30 | 110 1001 | 100 1011 |
j | unknown | 106 | n/a | 110 1010 | n/a | |
k | J | 107 | 74 | 33 | 110 1011 | 100 1010 |
l | unknown | 108 | n/a | 110 1100 | n/a | |
m | I | 109 | 105 | 4 | 110 1101 | 110 1001 |
m | I | 109 | 105 | 4 | 110 1101 | 110 1001 |
n | $ | 110 | 36 | 74 | 110 1110 | 010 0100 |
o | H | 111 | 72 | 39 | 110 1111 | 100 1000 |
o | H | 111 | 72 | 39 | 110 1111 | 100 1000 |
o | H | 111 | 72 | 39 | 110 1111 | 100 1000 |
p | white square | 112 | n/a | 111 0000 | n/a | |
q | G | 113 | 71 | 42 | 111 0001 | 100 0111 |
r | # | 114 | 35 | 79 | 111 0010 | 010 0011 |
s | F | 115 | 102 | 13 | 111 0011 | 110 0110 |
t | unknown | 116 | n/a | 111 0100 | n/a | |
u | E | 117 | 69 | 48 | 111 0101 | 100 0101 |
u | E | 117 | 69 | 48 | 111 0101 | 100 0101 |
v | unknown | 118 | n/a | 111 0110 | n/a | |
w | D | 119 | 68 | 51 | 111 0111 | 100 0100 |
x | unknown | 120 | n/a | 111 1000 | n/a | |
y | C | 121 | 67 | 54 | 111 1001 | 100 0011 |
y | C | 121 | 67 | 54 | 111 1001 | 100 0011 |
z | ! | 122 | 33 | 89 | 111 1010 | 010 0001 |
z | ! | 122 | 33 | 89 | 111 1010 | 010 0001 |
{ | B | 123 | 66 | 57 | 111 1011 | 100 0010 |
I included the “HELLO CHRIS” experiment. It would seem that your serlcd is at least somewhat predictable and consistent (except for the h thing).
The whole thing in Excel format here.
hold the presses!!
A picture says more than a thousand numbers:
Think away the "outlyers" (that are probably a result of you not reading your own handwriting correctly) and you get a very clear correlation between input and output. Let's see.
Odd numbers in, high numbers out.
Even numbers in, lower numbers out. Every other even number results in an unknown.
I have not cracked this yet, but at least there is now proof of system in the chaos. Those outlyers can now be cleaned up. And hopefully (tomorrow) I will be able to get a conversion formula. And maybe that formula will explain what we're doing wrong and how to correct that.
Extrapolation tells me that the magical 124 can be had by sending 7 or 9. Excel sheet updated.
8ik
hey ctc, I found this…it
hey ctc, I found this…it might help
http://www.andrew.meachen.net/LCDs.html
this looks to be some code that would work.
he’s got code that may help to understand and test your rig.
as a side, I was curious to know if you had checked to see if you were in fact transmitting the data at 9600. had you tried looking at the terminal window in the picaxe editor…?
good luck!
edit: I left out this link
edit: I left out this link with the code that looked to be with your model…oops it’s at the very bottom of the page in thefirst link
Andrew Meachen uses T9600_8
The more I stare at the numbers and the graph, the more I am convinced that bitwise inversion (zeroes becoming ones and vv) is at least one of our worries.
But I do not understand how exactly the T9600_8 vs N9600_8 fits into that problem/solution. I just notice that this Antipode Andrew uses T9600_8.
Chris, did you really find that an impossible command? Then I would imagine there is a second problem that needs resolving before the inversion. I’ll have a go with the numbers again. Later today. Maybe not until next year.
Have a safe year’s end all!
8ik
inversion indeed but first a shift
Cracked the odd range:
To get from a given value to observed output, shift your bits one position to the right, then invert bitwise. No more than seven bits per character!
The decimal conversion (from which I derived the bitwise conversion) goes: result = - (given / 2) + 128 .
In picaxe basic this would be:
#picaxe28x1
symbol given = 33
symbol result = b1
let result = given >> 1 ’ >> works only for X1 or X2 parts
let result = INV result
This does not work for the even numbers.
Yet.
a third range!
There’s the odd numbers (binary ends in 1).
There’s the even numbers (binary ends in 10).
And now I am starting to see a third range, dividable by 4 (binary ends in 100). Let’s call them fourables.
Looking at the graph, you would expect these to form a set of plots under the even numbers. Starting at result 27 lowering towards result 17. Those are “The Unprintables” (Chris, you wrote those as “white squares”, or just left them empty).
I now start wondering if there is a range of eightables, sixteenables and even thirtytwoables as well.
BINGO is his NAMO!
The Grand Unified Bug has been found! I think…
The clue was indeed in the “eightables, sixteenables, thirtytwoables”. There’s even a “sixtyfourable”!
Now count the binary digits between the parentheses and shift the number by that amount to the right. That’s the same thing as dividing by the divisor mentioned. Once more in a table:
What-ables? | bin ends in (LSB) | divide by |
or rather,
shift how many positions?
|
one | 1 | 2 | 1 |
two | 10 | 4 | 2 |
four | 100 | 8 | 3 |
eight | 1000 | 16 | 4 |
sixteen | 10000 | 32 | 5 |
thirtytwo | 100000 | 64 | 6 |
sixtyfour | 1000000 | 128 | 7 |
The new theory now is that the numbers get pushed from the picaxe to the serlcd LSB first (the least significant bit goes in first). But the receiver does not see any start bit, because the polarity is wrong. So it ignores all zeroes until it receives a one. That one is interpreted as a start bit and then thrown away. Then it finally starts to read whatever is left over. In the case of an odd number, that would be the remaining six bits. The even numbers (that are not in any of the other ranges) leave five bits of actual data, resulting in the lower, but still printable range.
All the others exist only in my imagination, but they fit the theory.
There are still two bugs, but the second derives from the first.
Call for review: I do not trust this analysis off hand. There is just too much room for errors and misinterpretations. Would someone with real knowledge of RS232 please check my exalted claims!
Thanks,
Rik
Resonater frequency
I think Chris said he had a 16 MHz resonator rather than an 8MHz, so possibly T9600_16 might work?
Good job Rik. Did you use
Good job Rik. Did you use your Little Orphan Annie secret decoder ring?
Oops, missed command
Didn’t see the setfreq to recognize what it did. Maybe trying at the native frequency to see if it works?
Holy ■■■■■ rik!
You are amazing.
Alright, if you don’t see me here for a couple days please understand I am not snubbing the thread, I just need some time to go through all this new info and test it STEP-BY-STEP here in the real world. I hope you had fun solving this problem and didn’t consider it work…
I swear you get a podcast dedicated to you!!!
Man, I gotta get to my workbench!!!
don’t forget to celebrate new year’s first
And of course I did this (the way I did) because it beats the heck out of Sudoku! I wish my boss would pay me for this kind of problems. (Oh wait, sometimes he does.)
And stop boasting those podcasts and edit the one under your couch already! Did you notice how… [hold on Rik, that;s a different site] …
8ik
don’t be silly
I have an entire room filled up with a cardboard enigma machine here!
Plus a little MS Office Excel filling up an entire hard drive…
Allright rik,
I finally have a chance to start playing with your conversion math and the display… My “hello chris” experiment still works so I am moving on to some of the commands to clear screen etc. I studied your conversion and found a binary converter online but when I started punching in text to get the binary (to then convert using your system (only to convert back to a regular number)) the converter spit out 8 digit binary. In terms of the 7 bit system you have, I can’t seem to figure out which end to drop the 1 or 0 off of. In addition, we started our test at 33 and, of course, the first number I need (to clear the screen is 0x01 --which I assume to be #1) I have your suggestion of the command # going from the 124 as recommended by the sparkfun datasheet, to a 7 or a 9. Now I need to translate the few command characters that are to follow the 7 or 9. If you have a sec, would you check your magic charts and tell me what you think these are?
0x01
0x14
0x10
0x18
0x1C
0x0E
0x0C
0x0D
If I get these few command numbers translated, I can confirm that the 7 or 9 numbers are right as well.
Thank you in advance --The first video posted of this display working will note your Godness!!
beware of false idols
Save it for your pres-elect. He’s gonna need it way more.
I now believe 7 to result in a 124.
These are the numbers you’re asking (asciing?) for :
There is a system to this madness. Here’s all of them from 0x00 thru 0x20:
The “zero eggs” just indicates “pay attention fools, here comes the hexadecimal stuff”. Just as Picaxe basic would use a dollar sign.
Hang on while I try to translate those into “scrambled eggs”.
8ik
here’s the complete list
(include the usual disclaimer)
This is the result from a piece of code that claims to simulate the bug in your setup. The dotdotdots indicate unprintable characters (0-32 and 127-255).
1 = … --mangles-into–> 127 = …
2 = … --mangles-into–> 63 = ?
3 = … --mangles-into–> 126 = ~
4 = … --mangles-into–> 31 = …
5 = … --mangles-into–> 125 = }
6 = … --mangles-into–> 62 = >
7 = … --mangles-into–> 124 = |
8 = … --mangles-into–> 15 = …
9 = … --mangles-into–> 123 = {
10 = … --mangles-into–> 61 = =
11 = … --mangles-into–> 122 = z
12 = … --mangles-into–> 30 = …
13 = … --mangles-into–> 121 = y
14 = … --mangles-into–> 60 = <
15 = … --mangles-into–> 120 = x
16 = … --mangles-into–> 7 = …
17 = … --mangles-into–> 119 = w
18 = … --mangles-into–> 59 = ;
19 = … --mangles-into–> 118 = v
20 = … --mangles-into–> 29 = …
21 = … --mangles-into–> 117 = u
22 = … --mangles-into–> 58 = :
23 = … --mangles-into–> 116 = t
24 = … --mangles-into–> 14 = …
25 = … --mangles-into–> 115 = s
26 = … --mangles-into–> 57 = 9
27 = … --mangles-into–> 114 = r
28 = … --mangles-into–> 28 = …
29 = … --mangles-into–> 113 = q
30 = … --mangles-into–> 56 = 8
31 = … --mangles-into–> 112 = p
32 = … --mangles-into–> 3 = …
33 = ! --mangles-into–> 111 = o
34 = " --mangles-into–> 55 = 7
35 = # --mangles-into–> 110 = n
36 = $ --mangles-into–> 27 = …
37 = % --mangles-into–> 109 = m
38 = & --mangles-into–> 54 = 6
39 = ’ --mangles-into–> 108 = l
40 = ( --mangles-into–> 13 = …
41 = ) --mangles-into–> 107 = k
42 = * --mangles-into–> 53 = 5
43 = + --mangles-into–> 106 = j
44 = , --mangles-into–> 26 = …
45 = - --mangles-into–> 105 = i
46 = . --mangles-into–> 52 = 4
47 = / --mangles-into–> 104 = h
48 = 0 --mangles-into–> 6 = …
49 = 1 --mangles-into–> 103 = g
50 = 2 --mangles-into–> 51 = 3
51 = 3 --mangles-into–> 102 = f
52 = 4 --mangles-into–> 25 = …
53 = 5 --mangles-into–> 101 = e
54 = 6 --mangles-into–> 50 = 2
55 = 7 --mangles-into–> 100 = d
56 = 8 --mangles-into–> 12 = …
57 = 9 --mangles-into–> 99 = c
58 = : --mangles-into–> 49 = 1
59 = ; --mangles-into–> 98 = b
60 = < --mangles-into–> 24 = …
61 = = --mangles-into–> 97 = a
62 = > --mangles-into–> 48 = 0
63 = ? --mangles-into–> 96 = <br /> 64 = @ --mangles-into--> 1 = ...<br /> 65 = A --mangles-into--> 95 = _<br /> 66 = B --mangles-into--> 47 = /<br /> 67 = C --mangles-into--> 94 = ^<br /> 68 = D --mangles-into--> 23 = ...<br /> 69 = E --mangles-into--> 93 = ]<br /> 70 = F --mangles-into--> 46 = .<br /> 71 = G --mangles-into--> 92 = \<br /> 72 = H --mangles-into--> 11 = ...<br /> 73 = I --mangles-into--> 91 = [<br /> 74 = J --mangles-into--> 45 = -<br /> 75 = K --mangles-into--> 90 = Z<br /> 76 = L --mangles-into--> 22 = ...<br /> 77 = M --mangles-into--> 89 = Y<br /> 78 = N --mangles-into--> 44 = ,<br /> 79 = O --mangles-into--> 88 = X<br /> 80 = P --mangles-into--> 5 = ...<br /> 81 = Q --mangles-into--> 87 = W<br /> 82 = R --mangles-into--> 43 = +<br /> 83 = S --mangles-into--> 86 = V<br /> 84 = T --mangles-into--> 21 = ...<br /> 85 = U --mangles-into--> 85 = U<br /> 86 = V --mangles-into--> 42 = *<br /> 87 = W --mangles-into--> 84 = T<br /> 88 = X --mangles-into--> 10 = ...<br /> 89 = Y --mangles-into--> 83 = S<br /> 90 = Z --mangles-into--> 41 = )<br /> 91 = [ --mangles-into--> 82 = R<br /> 92 = \ --mangles-into--> 20 = ...<br /> 93 = ] --mangles-into--> 81 = Q<br /> 94 = ^ --mangles-into--> 40 = (<br /> 95 = _ --mangles-into--> 80 = P<br /> 96 =
--mangles-into–> 2 = …
97 = a --mangles-into–> 79 = O
98 = b --mangles-into–> 39 = ’
99 = c --mangles-into–> 78 = N
100 = d --mangles-into–> 19 = …
101 = e --mangles-into–> 77 = M
102 = f --mangles-into–> 38 = &
103 = g --mangles-into–> 76 = L
104 = h --mangles-into–> 9 = …
105 = i --mangles-into–> 75 = K
106 = j --mangles-into–> 37 = %
107 = k --mangles-into–> 74 = J
108 = l --mangles-into–> 18 = …
109 = m --mangles-into–> 73 = I
110 = n --mangles-into–> 36 = $
111 = o --mangles-into–> 72 = H
112 = p --mangles-into–> 4 = …
113 = q --mangles-into–> 71 = G
114 = r --mangles-into–> 35 = #
115 = s --mangles-into–> 70 = F
116 = t --mangles-into–> 17 = …
117 = u --mangles-into–> 69 = E
118 = v --mangles-into–> 34 = "
119 = w --mangles-into–> 68 = D
120 = x --mangles-into–> 8 = …
121 = y --mangles-into–> 67 = C
122 = z --mangles-into–> 33 = !
123 = { --mangles-into–> 66 = B
124 = | --mangles-into–> 16 = …
125 = } --mangles-into–> 65 = A
126 = ~ --mangles-into–> 32 = …
127 = … --mangles-into–> 64 = @
128 = … --mangles-into–> 0 = …
129 = … --mangles-into–> 63 = ?
130 = … --mangles-into–> 31 = …
131 = … --mangles-into–> 62 = >
132 = … --mangles-into–> 15 = …
133 = … --mangles-into–> 61 = =
134 = … --mangles-into–> 30 = …
135 = … --mangles-into–> 60 = <
136 = … --mangles-into–> 7 = …
137 = … --mangles-into–> 59 = ;
138 = … --mangles-into–> 29 = …
139 = … --mangles-into–> 58 = :
140 = … --mangles-into–> 14 = …
141 = … --mangles-into–> 57 = 9
142 = … --mangles-into–> 28 = …
143 = … --mangles-into–> 56 = 8
144 = … --mangles-into–> 3 = …
145 = … --mangles-into–> 55 = 7
146 = … --mangles-into–> 27 = …
147 = … --mangles-into–> 54 = 6
148 = … --mangles-into–> 13 = …
149 = … --mangles-into–> 53 = 5
150 = … --mangles-into–> 26 = …
151 = … --mangles-into–> 52 = 4
152 = … --mangles-into–> 6 = …
153 = … --mangles-into–> 51 = 3
154 = … --mangles-into–> 25 = …
155 = … --mangles-into–> 50 = 2
156 = … --mangles-into–> 12 = …
157 = … --mangles-into–> 49 = 1
158 = … --mangles-into–> 24 = …
159 = … --mangles-into–> 48 = 0
160 = … --mangles-into–> 1 = …
161 = … --mangles-into–> 47 = /
162 = … --mangles-into–> 23 = …
163 = … --mangles-into–> 46 = .
164 = … --mangles-into–> 11 = …
165 = … --mangles-into–> 45 = -
166 = … --mangles-into–> 22 = …
167 = … --mangles-into–> 44 = ,
168 = … --mangles-into–> 5 = …
169 = … --mangles-into–> 43 = +
170 = … --mangles-into–> 21 = …
171 = … --mangles-into–> 42 = *
172 = … --mangles-into–> 10 = …
173 = … --mangles-into–> 41 = )
174 = … --mangles-into–> 20 = …
175 = … --mangles-into–> 40 = (
176 = … --mangles-into–> 2 = …
177 = … --mangles-into–> 39 = '
178 = … --mangles-into–> 19 = …
179 = … --mangles-into–> 38 = &
180 = … --mangles-into–> 9 = …
181 = … --mangles-into–> 37 = %
182 = … --mangles-into–> 18 = …
183 = … --mangles-into–> 36 = $
184 = … --mangles-into–> 4 = …
185 = … --mangles-into–> 35 = #
186 = … --mangles-into–> 17 = …
187 = … --mangles-into–> 34 = "
188 = … --mangles-into–> 8 = …
189 = … --mangles-into–> 33 = !
190 = … --mangles-into–> 16 = …
191 = … --mangles-into–> 32 = …
192 = … --mangles-into–> 0 = …
193 = … --mangles-into–> 31 = …
194 = … --mangles-into–> 15 = …
195 = … --mangles-into–> 30 = …
196 = … --mangles-into–> 7 = …
197 = … --mangles-into–> 29 = …
198 = … --mangles-into–> 14 = …
199 = … --mangles-into–> 28 = …
200 = … --mangles-into–> 3 = …
201 = … --mangles-into–> 27 = …
202 = … --mangles-into–> 13 = …
203 = … --mangles-into–> 26 = …
204 = … --mangles-into–> 6 = …
205 = … --mangles-into–> 25 = …
206 = … --mangles-into–> 12 = …
207 = … --mangles-into–> 24 = …
208 = … --mangles-into–> 1 = …
209 = … --mangles-into–> 23 = …
210 = … --mangles-into–> 11 = …
211 = … --mangles-into–> 22 = …
212 = … --mangles-into–> 5 = …
213 = … --mangles-into–> 21 = …
214 = … --mangles-into–> 10 = …
215 = … --mangles-into–> 20 = …
216 = … --mangles-into–> 2 = …
217 = … --mangles-into–> 19 = …
218 = … --mangles-into–> 9 = …
219 = … --mangles-into–> 18 = …
220 = … --mangles-into–> 4 = …
221 = … --mangles-into–> 17 = …
222 = … --mangles-into–> 8 = …
223 = … --mangles-into–> 16 = …
224 = … --mangles-into–> 0 = …
225 = … --mangles-into–> 15 = …
226 = … --mangles-into–> 7 = …
227 = … --mangles-into–> 14 = …
228 = … --mangles-into–> 3 = …
229 = … --mangles-into–> 13 = …
230 = … --mangles-into–> 6 = …
231 = … --mangles-into–> 12 = …
232 = … --mangles-into–> 1 = …
233 = … --mangles-into–> 11 = …
234 = … --mangles-into–> 5 = …
235 = … --mangles-into–> 10 = …
236 = … --mangles-into–> 2 = …
237 = … --mangles-into–> 9 = …
238 = … --mangles-into–> 4 = …
239 = … --mangles-into–> 8 = …
240 = … --mangles-into–> 0 = …
241 = … --mangles-into–> 7 = …
242 = … --mangles-into–> 3 = …
243 = … --mangles-into–> 6 = …
244 = … --mangles-into–> 1 = …
245 = … --mangles-into–> 5 = …
246 = … --mangles-into–> 2 = …
247 = … --mangles-into–> 4 = …
248 = … --mangles-into–> 0 = …
249 = … --mangles-into–> 3 = …
250 = … --mangles-into–> 1 = …
251 = … --mangles-into–> 2 = …
252 = … --mangles-into–> 0 = …
253 = … --mangles-into–> 1 = …
254 = … --mangles-into–> 0 = …
255 = … --mangles-into–> 0 = …
lookup table for workaround code
Here’s the same list sorted by result, so you can look up easily what to send in order to get a desired result. Note how the important numbers are there now: 124 (control character), 1 (clear display) and 107 (k or set speed to 2400 baud).
Alas, a few important ones are missing: 254 (control character) and everything you need to place the cursor at a specific position (basically everything from 128 and up is missing).
128 = … --mangles-into–> 0 = …
192 = … --mangles-into–> 0 = …
224 = … --mangles-into–> 0 = …
240 = … --mangles-into–> 0 = …
248 = … --mangles-into–> 0 = …
252 = … --mangles-into–> 0 = …
254 = … --mangles-into–> 0 = …
255 = … --mangles-into–> 0 = …
64 = @ --mangles-into–> 1 = …
160 = … --mangles-into–> 1 = …
208 = … --mangles-into–> 1 = …
232 = … --mangles-into–> 1 = …
244 = … --mangles-into–> 1 = …
250 = … --mangles-into–> 1 = …
253 = … --mangles-into–> 1 = …
96 = --mangles-into--> 2 = ...<br />176 = ... --mangles-into--> 2 = ...<br />216 = ... --mangles-into--> 2 = ...<br />236 = ... --mangles-into--> 2 = ...<br />246 = ... --mangles-into--> 2 = ...<br />251 = ... --mangles-into--> 2 = ...<br /> 32 = ... --mangles-into--> 3 = ...<br />144 = ... --mangles-into--> 3 = ...<br />200 = ... --mangles-into--> 3 = ...<br />228 = ... --mangles-into--> 3 = ...<br />242 = ... --mangles-into--> 3 = ...<br />249 = ... --mangles-into--> 3 = ...<br />112 = p --mangles-into--> 4 = ...<br />184 = ... --mangles-into--> 4 = ...<br />220 = ... --mangles-into--> 4 = ...<br />238 = ... --mangles-into--> 4 = ...<br />247 = ... --mangles-into--> 4 = ...<br /> 80 = P --mangles-into--> 5 = ...<br />168 = ... --mangles-into--> 5 = ...<br />212 = ... --mangles-into--> 5 = ...<br />234 = ... --mangles-into--> 5 = ...<br />245 = ... --mangles-into--> 5 = ...<br /> 48 = 0 --mangles-into--> 6 = ...<br />152 = ... --mangles-into--> 6 = ...<br />204 = ... --mangles-into--> 6 = ...<br />230 = ... --mangles-into--> 6 = ...<br />243 = ... --mangles-into--> 6 = ...<br /> 16 = ... --mangles-into--> 7 = ...<br />136 = ... --mangles-into--> 7 = ...<br />196 = ... --mangles-into--> 7 = ...<br />226 = ... --mangles-into--> 7 = ...<br />241 = ... --mangles-into--> 7 = ...<br />120 = x --mangles-into--> 8 = ...<br />188 = ... --mangles-into--> 8 = ...<br />222 = ... --mangles-into--> 8 = ...<br />239 = ... --mangles-into--> 8 = ...<br />104 = h --mangles-into--> 9 = ...<br />180 = ... --mangles-into--> 9 = ...<br />218 = ... --mangles-into--> 9 = ...<br />237 = ... --mangles-into--> 9 = ...<br /> 88 = X --mangles-into--> 10 = ...<br />172 = ... --mangles-into--> 10 = ...<br />214 = ... --mangles-into--> 10 = ...<br />235 = ... --mangles-into--> 10 = ...<br /> 72 = H --mangles-into--> 11 = ...<br />164 = ... --mangles-into--> 11 = ...<br />210 = ... --mangles-into--> 11 = ...<br />233 = ... --mangles-into--> 11 = ...<br /> 56 = 8 --mangles-into--> 12 = ...<br />156 = ... --mangles-into--> 12 = ...<br />206 = ... --mangles-into--> 12 = ...<br />231 = ... --mangles-into--> 12 = ...<br /> 40 = ( --mangles-into--> 13 = ...<br />148 = ... --mangles-into--> 13 = ...<br />202 = ... --mangles-into--> 13 = ...<br />229 = ... --mangles-into--> 13 = ...<br /> 24 = ... --mangles-into--> 14 = ...<br />140 = ... --mangles-into--> 14 = ...<br />198 = ... --mangles-into--> 14 = ...<br />227 = ... --mangles-into--> 14 = ...<br /> 8 = ... --mangles-into--> 15 = ...<br />132 = ... --mangles-into--> 15 = ...<br />194 = ... --mangles-into--> 15 = ...<br />225 = ... --mangles-into--> 15 = ...<br />124 = | --mangles-into--> 16 = ...<br />190 = ... --mangles-into--> 16 = ...<br />223 = ... --mangles-into--> 16 = ...<br />116 = t --mangles-into--> 17 = ...<br />186 = ... --mangles-into--> 17 = ...<br />221 = ... --mangles-into--> 17 = ...<br />108 = l --mangles-into--> 18 = ...<br />182 = ... --mangles-into--> 18 = ...<br />219 = ... --mangles-into--> 18 = ...<br />100 = d --mangles-into--> 19 = ...<br />178 = ... --mangles-into--> 19 = ...<br />217 = ... --mangles-into--> 19 = ...<br /> 92 = \ --mangles-into--> 20 = ...<br />174 = ... --mangles-into--> 20 = ...<br />215 = ... --mangles-into--> 20 = ...<br /> 84 = T --mangles-into--> 21 = ...<br />170 = ... --mangles-into--> 21 = ...<br />213 = ... --mangles-into--> 21 = ...<br /> 76 = L --mangles-into--> 22 = ...<br />166 = ... --mangles-into--> 22 = ...<br />211 = ... --mangles-into--> 22 = ...<br /> 68 = D --mangles-into--> 23 = ...<br />162 = ... --mangles-into--> 23 = ...<br />209 = ... --mangles-into--> 23 = ...<br /> 60 = < --mangles-into--> 24 = ...<br />158 = ... --mangles-into--> 24 = ...<br />207 = ... --mangles-into--> 24 = ...<br /> 52 = 4 --mangles-into--> 25 = ...<br />154 = ... --mangles-into--> 25 = ...<br />205 = ... --mangles-into--> 25 = ...<br /> 44 = , --mangles-into--> 26 = ...<br />150 = ... --mangles-into--> 26 = ...<br />203 = ... --mangles-into--> 26 = ...<br /> 36 = $ --mangles-into--> 27 = ...<br />146 = ... --mangles-into--> 27 = ...<br />201 = ... --mangles-into--> 27 = ...<br /> 28 = ... --mangles-into--> 28 = ...<br />142 = ... --mangles-into--> 28 = ...<br />199 = ... --mangles-into--> 28 = ...<br /> 20 = ... --mangles-into--> 29 = ...<br />138 = ... --mangles-into--> 29 = ...<br />197 = ... --mangles-into--> 29 = ...<br /> 12 = ... --mangles-into--> 30 = ...<br />134 = ... --mangles-into--> 30 = ...<br />195 = ... --mangles-into--> 30 = ...<br /> 4 = ... --mangles-into--> 31 = ...<br />130 = ... --mangles-into--> 31 = ...<br />193 = ... --mangles-into--> 31 = ...<br />126 = ~ --mangles-into--> 32 = ...<br />191 = ... --mangles-into--> 32 = ...<br />122 = z --mangles-into--> 33 = !<br />189 = ... --mangles-into--> 33 = !<br />118 = v --mangles-into--> 34 = "<br />187 = ... --mangles-into--> 34 = "<br />114 = r --mangles-into--> 35 = #<br />185 = ... --mangles-into--> 35 = #<br />110 = n --mangles-into--> 36 = $<br />183 = ... --mangles-into--> 36 = $<br />106 = j --mangles-into--> 37 = %<br />181 = ... --mangles-into--> 37 = %<br />102 = f --mangles-into--> 38 = &<br />179 = ... --mangles-into--> 38 = &<br /> 98 = b --mangles-into--> 39 = '<br />177 = ... --mangles-into--> 39 = '<br /> 94 = ^ --mangles-into--> 40 = (<br />175 = ... --mangles-into--> 40 = (<br /> 90 = Z --mangles-into--> 41 = )<br />173 = ... --mangles-into--> 41 = )<br /> 86 = V --mangles-into--> 42 = *<br />171 = ... --mangles-into--> 42 = *<br /> 82 = R --mangles-into--> 43 = +<br />169 = ... --mangles-into--> 43 = +<br /> 78 = N --mangles-into--> 44 = ,<br />167 = ... --mangles-into--> 44 = ,<br /> 74 = J --mangles-into--> 45 = -<br />165 = ... --mangles-into--> 45 = -<br /> 70 = F --mangles-into--> 46 = .<br />163 = ... --mangles-into--> 46 = .<br /> 66 = B --mangles-into--> 47 = /<br />161 = ... --mangles-into--> 47 = /<br /> 62 = > --mangles-into--> 48 = 0<br />159 = ... --mangles-into--> 48 = 0<br /> 58 = : --mangles-into--> 49 = 1<br />157 = ... --mangles-into--> 49 = 1<br /> 54 = 6 --mangles-into--> 50 = 2<br />155 = ... --mangles-into--> 50 = 2<br /> 50 = 2 --mangles-into--> 51 = 3<br />153 = ... --mangles-into--> 51 = 3<br /> 46 = . --mangles-into--> 52 = 4<br />151 = ... --mangles-into--> 52 = 4<br /> 42 = * --mangles-into--> 53 = 5<br />149 = ... --mangles-into--> 53 = 5<br /> 38 = & --mangles-into--> 54 = 6<br />147 = ... --mangles-into--> 54 = 6<br /> 34 = " --mangles-into--> 55 = 7<br />145 = ... --mangles-into--> 55 = 7<br /> 30 = ... --mangles-into--> 56 = 8<br />143 = ... --mangles-into--> 56 = 8<br /> 26 = ... --mangles-into--> 57 = 9<br />141 = ... --mangles-into--> 57 = 9<br /> 22 = ... --mangles-into--> 58 = :<br />139 = ... --mangles-into--> 58 = :<br /> 18 = ... --mangles-into--> 59 = ;<br />137 = ... --mangles-into--> 59 = ;<br /> 14 = ... --mangles-into--> 60 = <<br />135 = ... --mangles-into--> 60 = <<br /> 10 = ... --mangles-into--> 61 = =<br />133 = ... --mangles-into--> 61 = =<br /> 6 = ... --mangles-into--> 62 = ><br />131 = ... --mangles-into--> 62 = ><br /> 2 = ... --mangles-into--> 63 = ?<br />129 = ... --mangles-into--> 63 = ?<br />127 = ... --mangles-into--> 64 = @<br />125 = } --mangles-into--> 65 = A<br />123 = { --mangles-into--> 66 = B<br />121 = y --mangles-into--> 67 = C<br />119 = w --mangles-into--> 68 = D<br />117 = u --mangles-into--> 69 = E<br />115 = s --mangles-into--> 70 = F<br />113 = q --mangles-into--> 71 = G<br />111 = o --mangles-into--> 72 = H<br />109 = m --mangles-into--> 73 = I<br />107 = k --mangles-into--> 74 = J<br />105 = i --mangles-into--> 75 = K<br />103 = g --mangles-into--> 76 = L<br />101 = e --mangles-into--> 77 = M<br /> 99 = c --mangles-into--> 78 = N<br /> 97 = a --mangles-into--> 79 = O<br /> 95 = _ --mangles-into--> 80 = P<br /> 93 = ] --mangles-into--> 81 = Q<br /> 91 = [ --mangles-into--> 82 = R<br /> 89 = Y --mangles-into--> 83 = S<br /> 87 = W --mangles-into--> 84 = T<br /> 85 = U --mangles-into--> 85 = U<br /> 83 = S --mangles-into--> 86 = V<br /> 81 = Q --mangles-into--> 87 = W<br /> 79 = O --mangles-into--> 88 = X<br /> 77 = M --mangles-into--> 89 = Y<br /> 75 = K --mangles-into--> 90 = Z<br /> 73 = I --mangles-into--> 91 = [<br /> 71 = G --mangles-into--> 92 = \<br /> 69 = E --mangles-into--> 93 = ]<br /> 67 = C --mangles-into--> 94 = ^<br /> 65 = A --mangles-into--> 95 = _<br /> 63 = ? --mangles-into--> 96 =
61 = = --mangles-into–> 97 = a
59 = ; --mangles-into–> 98 = b
57 = 9 --mangles-into–> 99 = c
55 = 7 --mangles-into–> 100 = d
53 = 5 --mangles-into–> 101 = e
51 = 3 --mangles-into–> 102 = f
49 = 1 --mangles-into–> 103 = g
47 = / --mangles-into–> 104 = h
45 = - --mangles-into–> 105 = i
43 = + --mangles-into–> 106 = j
41 = ) --mangles-into–> 107 = k
39 = ’ --mangles-into–> 108 = l
37 = % --mangles-into–> 109 = m
35 = # --mangles-into–> 110 = n
33 = ! --mangles-into–> 111 = o
31 = … --mangles-into–> 112 = p
29 = … --mangles-into–> 113 = q
27 = … --mangles-into–> 114 = r
25 = … --mangles-into–> 115 = s
23 = … --mangles-into–> 116 = t
21 = … --mangles-into–> 117 = u
19 = … --mangles-into–> 118 = v
17 = … --mangles-into–> 119 = w
15 = … --mangles-into–> 120 = x
13 = … --mangles-into–> 121 = y
11 = … --mangles-into–> 122 = z
9 = … --mangles-into–> 123 = {
7 = … --mangles-into–> 124 = |
5 = … --mangles-into–> 125 = }
3 = … --mangles-into–> 126 = ~
1 = … --mangles-into–> 127 = …
in case any one is interested in the simulating code #!/usr/bin/perl -w
foreach my $b (1 … 255 ) {
my $d = $b ;
# print the decimal and associated character (if it’s printable)
if ($d > 32 && $d < 127) {
$c = chr $d ;
} else {
$c = “…” ;
}
printf "%3i = %3s ", $d, $c ;
# invert
$d = ~ $d ;
# the result is 32 bit, we only need 8
$d = $d & 255 ;
# shift until we hit a start bit
while (($d & 1)) {
$d = $d >> 1 ;
$d = $d & 255 ;
}
# shift the alleged start bit out as well
$d = $d >> 1 ;
# now what is left counts as a character
if ($d > 32 && $d < 127) {
$c = chr $d ;
} else {
$c = “…” ;
}
printf " --mangles-into–> %3i = %3s ", $d, $c ;
print “\n” ;
}