Help with Picaxe and serial LCD

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.

In, Out, diff
33, 111, -78
35, 110, -75
37, 109, -73
...
121, 67, 54
123, 66, 57

Odd numbers in, high numbers out.

In, Out, diff
34, 55, -21
36, ?
38, 54, -16
40, ?

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 :slight_smile: it’s at the very bottom of the page in thefirst link

http://www.andrew.meachen.net/images/LCD’s/LCD-16x2%20SPARK%20FUN.BAS

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!

example:
33 (dec) = 010 0001 (bin) would result in 111 (dec) = 110 1111 (bin)
010 0001
shift right (move a zero in on the left, lose the right most bit)
001 0000
invert (ones become zeroes, zeroes become ones)
110 1111

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”!

The odd numbers, or oneables (binary always ends in 1) get divided by 2.
The even numbers, or twoables (binary always ends in 10) get divided by 4.
The fourables (binary always ends in 100) get divided by 8.
The eightables (binary always ends in 1000) get divided by 16.
The sixteenables (binary always ends in 1000) get divided by 32.
The thirtytwoables (binary always ends in 10000) get divided by 64.
The sixtyfourable (binary 1000000) gets divided by 128.

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.

A) signals get inverted, zeroes become ones and ones become zeroes (this is probably an electrical issue!)
B) start bit fails because of the inversion, the first available one (which is now inverted) becomes the new start bit. Effectively shifting the data to the right. Pad with zeroes (real zeroes as far as lcd is concerned) on the left.

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…

@rik

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 :

hex dec
0x01 1
0x14 20
0x10 16
0x18 24
0x1C 28
0x0E 14
0x0C 12
0x0D 13

There is a system to this madness. Here’s all of them from 0x00 thru 0x20:

dec hex
0 0x00
1 0x01
2 0x02
3 0x03
4 0x04
5 0x05
6 0x06
7 0x07
8 0x08
9 0x09
10 0x0A
11 0x0B
12 0x0C
13 0x0D
14 0x0E
15 0x0F
16 0x10
17 0x11
18 0x12
19 0x13
20 0x14
21 0x15
22 0x16
23 0x17
24 0x18
25 0x19
26 0x1A
27 0x1B
28 0x1C
29 0x1D
30 0x1E
31 0x1F
32 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--&gt; 1 = ...<br /> 65 = A --mangles-into--&gt; 95 = _<br /> 66 = B --mangles-into--&gt; 47 = /<br /> 67 = C --mangles-into--&gt; 94 = ^<br /> 68 = D --mangles-into--&gt; 23 = ...<br /> 69 = E --mangles-into--&gt; 93 = ]<br /> 70 = F --mangles-into--&gt; 46 = .<br /> 71 = G --mangles-into--&gt; 92 = \<br /> 72 = H --mangles-into--&gt; 11 = ...<br /> 73 = I --mangles-into--&gt; 91 = [<br /> 74 = J --mangles-into--&gt; 45 = -<br /> 75 = K --mangles-into--&gt; 90 = Z<br /> 76 = L --mangles-into--&gt; 22 = ...<br /> 77 = M --mangles-into--&gt; 89 = Y<br /> 78 = N --mangles-into--&gt; 44 = ,<br /> 79 = O --mangles-into--&gt; 88 = X<br /> 80 = P --mangles-into--&gt; 5 = ...<br /> 81 = Q --mangles-into--&gt; 87 = W<br /> 82 = R --mangles-into--&gt; 43 = +<br /> 83 = S --mangles-into--&gt; 86 = V<br /> 84 = T --mangles-into--&gt; 21 = ...<br /> 85 = U --mangles-into--&gt; 85 = U<br /> 86 = V --mangles-into--&gt; 42 = *<br /> 87 = W --mangles-into--&gt; 84 = T<br /> 88 = X --mangles-into--&gt; 10 = ...<br /> 89 = Y --mangles-into--&gt; 83 = S<br /> 90 = Z --mangles-into--&gt; 41 = )<br /> 91 = [ --mangles-into--&gt; 82 = R<br /> 92 = \ --mangles-into--&gt; 20 = ...<br /> 93 = ] --mangles-into--&gt; 81 = Q<br /> 94 = ^ --mangles-into--&gt; 40 = (<br /> 95 = _ --mangles-into--&gt; 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--&gt; 2 = ...<br />176 = ... --mangles-into--&gt; 2 = ...<br />216 = ... --mangles-into--&gt; 2 = ...<br />236 = ... --mangles-into--&gt; 2 = ...<br />246 = ... --mangles-into--&gt; 2 = ...<br />251 = ... --mangles-into--&gt; 2 = ...<br /> 32 = ... --mangles-into--&gt; 3 = ...<br />144 = ... --mangles-into--&gt; 3 = ...<br />200 = ... --mangles-into--&gt; 3 = ...<br />228 = ... --mangles-into--&gt; 3 = ...<br />242 = ... --mangles-into--&gt; 3 = ...<br />249 = ... --mangles-into--&gt; 3 = ...<br />112 = p --mangles-into--&gt; 4 = ...<br />184 = ... --mangles-into--&gt; 4 = ...<br />220 = ... --mangles-into--&gt; 4 = ...<br />238 = ... --mangles-into--&gt; 4 = ...<br />247 = ... --mangles-into--&gt; 4 = ...<br /> 80 = P --mangles-into--&gt; 5 = ...<br />168 = ... --mangles-into--&gt; 5 = ...<br />212 = ... --mangles-into--&gt; 5 = ...<br />234 = ... --mangles-into--&gt; 5 = ...<br />245 = ... --mangles-into--&gt; 5 = ...<br /> 48 = 0 --mangles-into--&gt; 6 = ...<br />152 = ... --mangles-into--&gt; 6 = ...<br />204 = ... --mangles-into--&gt; 6 = ...<br />230 = ... --mangles-into--&gt; 6 = ...<br />243 = ... --mangles-into--&gt; 6 = ...<br /> 16 = ... --mangles-into--&gt; 7 = ...<br />136 = ... --mangles-into--&gt; 7 = ...<br />196 = ... --mangles-into--&gt; 7 = ...<br />226 = ... --mangles-into--&gt; 7 = ...<br />241 = ... --mangles-into--&gt; 7 = ...<br />120 = x --mangles-into--&gt; 8 = ...<br />188 = ... --mangles-into--&gt; 8 = ...<br />222 = ... --mangles-into--&gt; 8 = ...<br />239 = ... --mangles-into--&gt; 8 = ...<br />104 = h --mangles-into--&gt; 9 = ...<br />180 = ... --mangles-into--&gt; 9 = ...<br />218 = ... --mangles-into--&gt; 9 = ...<br />237 = ... --mangles-into--&gt; 9 = ...<br /> 88 = X --mangles-into--&gt; 10 = ...<br />172 = ... --mangles-into--&gt; 10 = ...<br />214 = ... --mangles-into--&gt; 10 = ...<br />235 = ... --mangles-into--&gt; 10 = ...<br /> 72 = H --mangles-into--&gt; 11 = ...<br />164 = ... --mangles-into--&gt; 11 = ...<br />210 = ... --mangles-into--&gt; 11 = ...<br />233 = ... --mangles-into--&gt; 11 = ...<br /> 56 = 8 --mangles-into--&gt; 12 = ...<br />156 = ... --mangles-into--&gt; 12 = ...<br />206 = ... --mangles-into--&gt; 12 = ...<br />231 = ... --mangles-into--&gt; 12 = ...<br /> 40 = ( --mangles-into--&gt; 13 = ...<br />148 = ... --mangles-into--&gt; 13 = ...<br />202 = ... --mangles-into--&gt; 13 = ...<br />229 = ... --mangles-into--&gt; 13 = ...<br /> 24 = ... --mangles-into--&gt; 14 = ...<br />140 = ... --mangles-into--&gt; 14 = ...<br />198 = ... --mangles-into--&gt; 14 = ...<br />227 = ... --mangles-into--&gt; 14 = ...<br /> 8 = ... --mangles-into--&gt; 15 = ...<br />132 = ... --mangles-into--&gt; 15 = ...<br />194 = ... --mangles-into--&gt; 15 = ...<br />225 = ... --mangles-into--&gt; 15 = ...<br />124 = | --mangles-into--&gt; 16 = ...<br />190 = ... --mangles-into--&gt; 16 = ...<br />223 = ... --mangles-into--&gt; 16 = ...<br />116 = t --mangles-into--&gt; 17 = ...<br />186 = ... --mangles-into--&gt; 17 = ...<br />221 = ... --mangles-into--&gt; 17 = ...<br />108 = l --mangles-into--&gt; 18 = ...<br />182 = ... --mangles-into--&gt; 18 = ...<br />219 = ... --mangles-into--&gt; 18 = ...<br />100 = d --mangles-into--&gt; 19 = ...<br />178 = ... --mangles-into--&gt; 19 = ...<br />217 = ... --mangles-into--&gt; 19 = ...<br /> 92 = \ --mangles-into--&gt; 20 = ...<br />174 = ... --mangles-into--&gt; 20 = ...<br />215 = ... --mangles-into--&gt; 20 = ...<br /> 84 = T --mangles-into--&gt; 21 = ...<br />170 = ... --mangles-into--&gt; 21 = ...<br />213 = ... --mangles-into--&gt; 21 = ...<br /> 76 = L --mangles-into--&gt; 22 = ...<br />166 = ... --mangles-into--&gt; 22 = ...<br />211 = ... --mangles-into--&gt; 22 = ...<br /> 68 = D --mangles-into--&gt; 23 = ...<br />162 = ... --mangles-into--&gt; 23 = ...<br />209 = ... --mangles-into--&gt; 23 = ...<br /> 60 = &lt; --mangles-into--&gt; 24 = ...<br />158 = ... --mangles-into--&gt; 24 = ...<br />207 = ... --mangles-into--&gt; 24 = ...<br /> 52 = 4 --mangles-into--&gt; 25 = ...<br />154 = ... --mangles-into--&gt; 25 = ...<br />205 = ... --mangles-into--&gt; 25 = ...<br /> 44 = , --mangles-into--&gt; 26 = ...<br />150 = ... --mangles-into--&gt; 26 = ...<br />203 = ... --mangles-into--&gt; 26 = ...<br /> 36 = $ --mangles-into--&gt; 27 = ...<br />146 = ... --mangles-into--&gt; 27 = ...<br />201 = ... --mangles-into--&gt; 27 = ...<br /> 28 = ... --mangles-into--&gt; 28 = ...<br />142 = ... --mangles-into--&gt; 28 = ...<br />199 = ... --mangles-into--&gt; 28 = ...<br /> 20 = ... --mangles-into--&gt; 29 = ...<br />138 = ... --mangles-into--&gt; 29 = ...<br />197 = ... --mangles-into--&gt; 29 = ...<br /> 12 = ... --mangles-into--&gt; 30 = ...<br />134 = ... --mangles-into--&gt; 30 = ...<br />195 = ... --mangles-into--&gt; 30 = ...<br /> 4 = ... --mangles-into--&gt; 31 = ...<br />130 = ... --mangles-into--&gt; 31 = ...<br />193 = ... --mangles-into--&gt; 31 = ...<br />126 = ~ --mangles-into--&gt; 32 = ...<br />191 = ... --mangles-into--&gt; 32 = ...<br />122 = z --mangles-into--&gt; 33 = !<br />189 = ... --mangles-into--&gt; 33 = !<br />118 = v --mangles-into--&gt; 34 = &quot;<br />187 = ... --mangles-into--&gt; 34 = &quot;<br />114 = r --mangles-into--&gt; 35 = #<br />185 = ... --mangles-into--&gt; 35 = #<br />110 = n --mangles-into--&gt; 36 = $<br />183 = ... --mangles-into--&gt; 36 = $<br />106 = j --mangles-into--&gt; 37 = %<br />181 = ... --mangles-into--&gt; 37 = %<br />102 = f --mangles-into--&gt; 38 = &amp;<br />179 = ... --mangles-into--&gt; 38 = &amp;<br /> 98 = b --mangles-into--&gt; 39 = '<br />177 = ... --mangles-into--&gt; 39 = '<br /> 94 = ^ --mangles-into--&gt; 40 = (<br />175 = ... --mangles-into--&gt; 40 = (<br /> 90 = Z --mangles-into--&gt; 41 = )<br />173 = ... --mangles-into--&gt; 41 = )<br /> 86 = V --mangles-into--&gt; 42 = *<br />171 = ... --mangles-into--&gt; 42 = *<br /> 82 = R --mangles-into--&gt; 43 = +<br />169 = ... --mangles-into--&gt; 43 = +<br /> 78 = N --mangles-into--&gt; 44 = ,<br />167 = ... --mangles-into--&gt; 44 = ,<br /> 74 = J --mangles-into--&gt; 45 = -<br />165 = ... --mangles-into--&gt; 45 = -<br /> 70 = F --mangles-into--&gt; 46 = .<br />163 = ... --mangles-into--&gt; 46 = .<br /> 66 = B --mangles-into--&gt; 47 = /<br />161 = ... --mangles-into--&gt; 47 = /<br /> 62 = &gt; --mangles-into--&gt; 48 = 0<br />159 = ... --mangles-into--&gt; 48 = 0<br /> 58 = : --mangles-into--&gt; 49 = 1<br />157 = ... --mangles-into--&gt; 49 = 1<br /> 54 = 6 --mangles-into--&gt; 50 = 2<br />155 = ... --mangles-into--&gt; 50 = 2<br /> 50 = 2 --mangles-into--&gt; 51 = 3<br />153 = ... --mangles-into--&gt; 51 = 3<br /> 46 = . --mangles-into--&gt; 52 = 4<br />151 = ... --mangles-into--&gt; 52 = 4<br /> 42 = * --mangles-into--&gt; 53 = 5<br />149 = ... --mangles-into--&gt; 53 = 5<br /> 38 = &amp; --mangles-into--&gt; 54 = 6<br />147 = ... --mangles-into--&gt; 54 = 6<br /> 34 = &quot; --mangles-into--&gt; 55 = 7<br />145 = ... --mangles-into--&gt; 55 = 7<br /> 30 = ... --mangles-into--&gt; 56 = 8<br />143 = ... --mangles-into--&gt; 56 = 8<br /> 26 = ... --mangles-into--&gt; 57 = 9<br />141 = ... --mangles-into--&gt; 57 = 9<br /> 22 = ... --mangles-into--&gt; 58 = :<br />139 = ... --mangles-into--&gt; 58 = :<br /> 18 = ... --mangles-into--&gt; 59 = ;<br />137 = ... --mangles-into--&gt; 59 = ;<br /> 14 = ... --mangles-into--&gt; 60 = &lt;<br />135 = ... --mangles-into--&gt; 60 = &lt;<br /> 10 = ... --mangles-into--&gt; 61 = =<br />133 = ... --mangles-into--&gt; 61 = =<br /> 6 = ... --mangles-into--&gt; 62 = &gt;<br />131 = ... --mangles-into--&gt; 62 = &gt;<br /> 2 = ... --mangles-into--&gt; 63 = ?<br />129 = ... --mangles-into--&gt; 63 = ?<br />127 = ... --mangles-into--&gt; 64 = @<br />125 = } --mangles-into--&gt; 65 = A<br />123 = { --mangles-into--&gt; 66 = B<br />121 = y --mangles-into--&gt; 67 = C<br />119 = w --mangles-into--&gt; 68 = D<br />117 = u --mangles-into--&gt; 69 = E<br />115 = s --mangles-into--&gt; 70 = F<br />113 = q --mangles-into--&gt; 71 = G<br />111 = o --mangles-into--&gt; 72 = H<br />109 = m --mangles-into--&gt; 73 = I<br />107 = k --mangles-into--&gt; 74 = J<br />105 = i --mangles-into--&gt; 75 = K<br />103 = g --mangles-into--&gt; 76 = L<br />101 = e --mangles-into--&gt; 77 = M<br /> 99 = c --mangles-into--&gt; 78 = N<br /> 97 = a --mangles-into--&gt; 79 = O<br /> 95 = _ --mangles-into--&gt; 80 = P<br /> 93 = ] --mangles-into--&gt; 81 = Q<br /> 91 = [ --mangles-into--&gt; 82 = R<br /> 89 = Y --mangles-into--&gt; 83 = S<br /> 87 = W --mangles-into--&gt; 84 = T<br /> 85 = U --mangles-into--&gt; 85 = U<br /> 83 = S --mangles-into--&gt; 86 = V<br /> 81 = Q --mangles-into--&gt; 87 = W<br /> 79 = O --mangles-into--&gt; 88 = X<br /> 77 = M --mangles-into--&gt; 89 = Y<br /> 75 = K --mangles-into--&gt; 90 = Z<br /> 73 = I --mangles-into--&gt; 91 = [<br /> 71 = G --mangles-into--&gt; 92 = \<br /> 69 = E --mangles-into--&gt; 93 = ]<br /> 67 = C --mangles-into--&gt; 94 = ^<br /> 65 = A --mangles-into--&gt; 95 = _<br /> 63 = ? --mangles-into--&gt; 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” ;
}