Subversion Repositories freemyipod

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
974 user890104 1
#!/usr/bin/env python
2
 
3
import sys
4
import os
5
import time
6
import struct
7
import locale
8
 
9
from functools import wraps
10
 
11
import libemcore
12
import libemcoredata
13
from misc import Error, ArgumentError, ArgumentTypeError, Logger, getfuncdoc, gethwname, to_bool, to_int
14
 
15
class Interface(object):
16
    def __init__(self):
17
        self.logger = Logger()
18
        try:
19
            self.emcore = libemcore.Emcore(logger = self.logger)
20
        except libemcore.DeviceNotFoundError:
21
            self.logger.error("No emCORE device found!\n")
22
            exit(1)
23
    def lcdcmd(self, cmd):
24
        data = struct.pack("<I", cmd)
25
        self.emcore.write(0x38300004, data)        
26
    def lcddata(self, data):
27
        data = struct.pack("<I", data)
28
        self.emcore.write(0x38300040, data)        
29
 
30
if __name__ == "__main__":
31
    try:
32
        interface = Interface()
33
        interface.emcore.write(0x38300000, struct.pack("<I", 0x41000c20))
34
#        interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))
35
        interface.emcore.i2cwrite(0, 0xe6, 0x30, struct.pack("B", 200))
36
        if len(sys.argv) > 1:
37
            interface.lcdcmd(int(sys.argv[1], 16))
38
            for i in range(2, len(sys.argv)):
39
                interface.lcddata(int(sys.argv[1], 16))
40
            exit(0)
41
#        '''
42
        print("Software Reset?")
43
        raw_input()
44
        interface.lcdcmd(0x01)
45
        print("Sleep Out?")
46
        raw_input()
47
        interface.lcdcmd(0x11)
48
        print("Display ON?")
49
        raw_input()
50
        interface.lcdcmd(0x29)
51
        print("Power Control 1?")
52
        raw_input()
53
        interface.lcdcmd(0xc0)
54
        print("Data: 00 (unknown)?")
55
        raw_input()
56
        interface.lcddata(0x00)
57
        print("Power Control 2?")
58
        raw_input()
59
        interface.lcdcmd(0xc1)
60
        print("Data: 03 (unknown)?")
61
        raw_input()
62
        interface.lcddata(0x03)
63
        print("Power Control 3?")
64
        raw_input()
65
        interface.lcdcmd(0xc2)
66
        print("Data: 34 (unknown)?")
67
        raw_input()
68
        interface.lcddata(0x34)
69
        print("Power Control 4?")
70
        raw_input()
71
        interface.lcdcmd(0xc3)
72
        print("Data: 72 (unknown)?")
73
        raw_input()
74
        interface.lcddata(0x72)
75
        print("Data: 03 (unknown)?")
76
        raw_input()
77
        interface.lcddata(0x03)
78
        print("Power Control 5?")
79
        raw_input()
80
        interface.lcdcmd(0xc4)
81
        print("Data: 73 (unknown)?")
82
        raw_input()
83
        interface.lcddata(0x73)
84
        print("Data: 03 (unknown)?")
85
        raw_input()
86
        interface.lcddata(0x03)
87
        print("VCOM Control 1?")
88
        raw_input()
89
        interface.lcdcmd(0xc5)
90
        print("Data: 3c (unknown)?")
91
        raw_input()
92
        interface.lcddata(0x3c)
93
        print("Data: 3c (unknown)?")
94
        raw_input()
95
        interface.lcddata(0x3c)
96
        print("Command: fe (unknown)?")
97
        raw_input()
98
        interface.lcdcmd(0xfe)
99
        print("Data: 00 (unknown)?")
100
        raw_input()
101
        interface.lcddata(0x00)
102
        print("Command: b1 (unknown)?")
103
        raw_input()
104
        interface.lcdcmd(0xb1)
105
        print("Data: 6a (unknown)?")
106
        raw_input()
107
        interface.lcddata(0x6a)
108
        print("Data: 15 (unknown)?")
109
        raw_input()
110
        interface.lcddata(0x15)
111
        print("Command: b2 (unknown)?")
112
        raw_input()
113
        interface.lcdcmd(0xb2)
114
        print("Data: 6a (unknown)?")
115
        raw_input()
116
        interface.lcddata(0x00)
117
        print("Data: 15 (unknown)?")
118
        raw_input()
119
        interface.lcddata(0x15)
120
        print("Command: b3 (unknown)?")
121
        raw_input()
122
        interface.lcdcmd(0xb3)
123
        print("Data: 6a (unknown)?")
124
        raw_input()
125
        interface.lcddata(0x00)
126
        print("Data: 15 (unknown)?")
127
        raw_input()
128
        interface.lcddata(0x15)
129
        print("Command: b4 (unknown)?")
130
        raw_input()
131
        interface.lcdcmd(0xb4)
132
        print("Data: 02 (unknown)?")
133
        raw_input()
134
        interface.lcddata(0x02)
135
        print("Command: b6 (unknown)?")
136
        raw_input()
137
        interface.lcdcmd(0xb6)
138
        print("Data: 12 (unknown)?")
139
        raw_input()
140
        interface.lcddata(0x12)
141
        print("Data: 02 (unknown)?")
142
        raw_input()
143
        interface.lcddata(0x02)
144
        print("Command: 35 (unknown)?")
145
        raw_input()
146
        interface.lcdcmd(0x35)
147
        print("Data: 00 (unknown)?")
148
        raw_input()
149
        interface.lcddata(0x00)
150
        print("Command: 26 (unknown)?")
151
        raw_input()
152
        interface.lcdcmd(0x26)
153
        print("Data: 10 (unknown)?")
154
        raw_input()
155
        interface.lcddata(0x10)
156
        print("Command: e0 (unknown)?")
157
        raw_input()
158
        interface.lcdcmd(0xe0)
159
        print("Data: 77 (unknown)?")
160
        raw_input()
161
        interface.lcddata(0x77)
162
        print("Data: 52 (unknown)?")
163
        raw_input()
164
        interface.lcddata(0x52)
165
        print("Data: 76 (unknown)?")
166
        raw_input()
167
        interface.lcddata(0x76)
168
        print("Data: 53 (unknown)?")
169
        raw_input()
170
        interface.lcddata(0x53)
171
        print("Data: 03 (unknown)?")
172
        raw_input()
173
        interface.lcddata(0x03)
174
        print("Data: 03 (unknown)?")
175
        raw_input()
176
        interface.lcddata(0x03)
177
        print("Data: 57 (unknown)?")
178
        raw_input()
179
        interface.lcddata(0x57)
180
        print("Data: 42 (unknown)?")
181
        raw_input()
182
        interface.lcddata(0x42)
183
        print("Data: 10 (unknown)?")
184
        raw_input()
185
        interface.lcddata(0x10)
186
        print("Data: 18 (unknown)?")
187
        raw_input()
188
        interface.lcddata(0x18)
189
        print("Data: 09 (unknown)?")
190
        raw_input()
191
        interface.lcddata(0x09)
192
        print("Command: e1 (unknown)?")
193
        raw_input()
194
        interface.lcdcmd(0xe1)
195
        print("Data: 0d (unknown)?")
196
        raw_input()
197
        interface.lcddata(0x0d)
198
        print("Data: 00 (unknown)?")
199
        raw_input()
200
        interface.lcddata(0x00)
201
        print("Data: 23 (unknown)?")
202
        raw_input()
203
        interface.lcddata(0x23)
204
        print("Data: 66 (unknown)?")
205
        raw_input()
206
        interface.lcddata(0x66)
207
        print("Data: 0f (unknown)?")
208
        raw_input()
209
        interface.lcddata(0x0f)
210
        print("Data: 15 (unknown)?")
211
        raw_input()
212
        interface.lcddata(0x15)
213
        print("Data: 4d (unknown)?")
214
        raw_input()
215
        interface.lcddata(0x4d)
216
        print("Data: 85 (unknown)?")
217
        raw_input()
218
        interface.lcddata(0x85)
219
        print("Data: 08 (unknown)?")
220
        raw_input()
221
        interface.lcddata(0x08)
222
        print("Data: 02 (unknown)?")
223
        raw_input()
224
        interface.lcddata(0x02)
225
        print("Data: 10 (unknown)?")
226
        raw_input()
227
        interface.lcddata(0x10)
228
        print("Command: e2 (unknown)?")
229
        raw_input()
230
        interface.lcdcmd(0xe2)
231
        print("Data: 39 (unknown)?")
232
        raw_input()
233
        interface.lcddata(0x39)
234
        print("Data: 60 (unknown)?")
235
        raw_input()
236
        interface.lcddata(0x60)
237
        print("Data: 77 (unknown)?")
238
        raw_input()
239
        interface.lcddata(0x77)
240
        print("Data: 05 (unknown)?")
241
        raw_input()
242
        interface.lcddata(0x05)
243
        print("Data: 03 (unknown)?")
244
        raw_input()
245
        interface.lcddata(0x03)
246
        print("Data: 07 (unknown)?")
247
        raw_input()
248
        interface.lcddata(0x07)
249
        print("Data: 96 (unknown)?")
250
        raw_input()
251
        interface.lcddata(0x96)
252
        print("Data: 64 (unknown)?")
253
        raw_input()
254
        interface.lcddata(0x64)
255
        print("Data: 0d (unknown)?")
256
        raw_input()
257
        interface.lcddata(0x0d)
258
        print("Data: 1a (unknown)?")
259
        raw_input()
260
        interface.lcddata(0x1a)
261
        print("Data: 0a (unknown)?")
262
        raw_input()
263
        interface.lcddata(0x0a)
264
        print("Command: e3 (unknown)?")
265
        raw_input()
266
        interface.lcdcmd(0xe3)
267
        print("Data: 3f (unknown)?")
268
        raw_input()
269
        interface.lcddata(0x3f)
270
        print("Data: 10 (unknown)?")
271
        raw_input()
272
        interface.lcddata(0x10)
273
        print("Data: 16 (unknown)?")
274
        raw_input()
275
        interface.lcddata(0x16)
276
        print("Data: 44 (unknown)?")
277
        raw_input()
278
        interface.lcddata(0x44)
279
        print("Data: 0e (unknown)?")
280
        raw_input()
281
        interface.lcddata(0x0e)
282
        print("Data: 04 (unknown)?")
283
        raw_input()
284
        interface.lcddata(0x04)
285
        print("Data: 6c (unknown)?")
286
        raw_input()
287
        interface.lcddata(0x6c)
288
        print("Data: 44 (unknown)?")
289
        raw_input()
290
        interface.lcddata(0x44)
291
        print("Data: 04 (unknown)?")
292
        raw_input()
293
        interface.lcddata(0x04)
294
        print("Data: 03 (unknown)?")
295
        raw_input()
296
        interface.lcddata(0x03)
297
        print("Data: 0b (unknown)?")
298
        raw_input()
299
        interface.lcddata(0x0b)
300
        print("Command: e4 (unknown)?")
301
        raw_input()
302
        interface.lcdcmd(0xe4)
303
        print("Data: 00 (unknown)?")
304
        raw_input()
305
        interface.lcddata(0x00)
306
        print("Data: 61 (unknown)?")
307
        raw_input()
308
        interface.lcddata(0x61)
309
        print("Data: 77 (unknown)?")
310
        raw_input()
311
        interface.lcddata(0x77)
312
        print("Data: 04 (unknown)?")
313
        raw_input()
314
        interface.lcddata(0x04)
315
        print("Data: 02 (unknown)?")
316
        raw_input()
317
        interface.lcddata(0x02)
318
        print("Data: 04 (unknown)?")
319
        raw_input()
320
        interface.lcddata(0x04)
321
        print("Data: 72 (unknown)?")
322
        raw_input()
323
        interface.lcddata(0x72)
324
        print("Data: 32 (unknown)?")
325
        raw_input()
326
        interface.lcddata(0x32)
327
        print("Data: 09 (unknown)?")
328
        raw_input()
329
        interface.lcddata(0x09)
330
        print("Data: 19 (unknown)?")
331
        raw_input()
332
        interface.lcddata(0x19)
333
        print("Data: 06 (unknown)?")
334
        raw_input()
335
        interface.lcddata(0x06)
336
        print("Command: e5 (unknown)?")
337
        raw_input()
338
        interface.lcdcmd(0xe5)
339
        print("Data: 4f (unknown)?")
340
        raw_input()
341
        interface.lcddata(0x4f)
342
        print("Data: 42 (unknown)?")
343
        raw_input()
344
        interface.lcddata(0x42)
345
        print("Data: 27 (unknown)?")
346
        raw_input()
347
        interface.lcddata(0x27)
348
        print("Data: 67 (unknown)?")
349
        raw_input()
350
        interface.lcddata(0x67)
351
        print("Data: 0f (unknown)?")
352
        raw_input()
353
        interface.lcddata(0x0f)
354
        print("Data: 03 (unknown)?")
355
        raw_input()
356
        interface.lcddata(0x03)
357
        print("Data: 26 (unknown)?")
358
        raw_input()
359
        interface.lcddata(0x26)
360
        print("Data: 33 (unknown)?")
361
        raw_input()
362
        interface.lcddata(0x33)
363
        print("Data: 01 (unknown)?")
364
        raw_input()
365
        interface.lcddata(0x01)
366
        print("Data: 03 (unknown)?")
367
        raw_input()
368
        interface.lcddata(0x03)
369
        print("Data: 09 (unknown)?")
370
        raw_input()
371
        interface.lcddata(0x09)
372
#        print("Command: 3a (unknown)?")
373
#        raw_input()
374
#        interface.lcdcmd(0x3a)
375
#        print("Data: 66 (unknown)?")
376
#        raw_input()
377
#        interface.lcddata(0x66)
378
        print("Command: 36 (unknown)?")
379
        raw_input()
380
        interface.lcdcmd(0x36)
381
        print("Data: 00 (unknown)?")
382
        raw_input()
383
        interface.lcddata(0x00)
384
        print("Sleep Out?")
385
        raw_input()
386
        interface.lcdcmd(0x11)
387
        print("Display ON?")
388
        raw_input()
389
        interface.lcdcmd(0x29)
390
#        '''
391
        print("Write pattern?")
392
        raw_input()
393
        interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))
394
        interface.lcdcmd(0x2a)
395
        interface.lcddata(64)
396
        interface.lcddata(191)
397
        interface.lcdcmd(0x2b)
398
        interface.lcddata(8)
399
        interface.lcddata(0x237)
400
        interface.lcdcmd(0x2c)
401
#        interface.emcore.write(0x38300000, struct.pack("<I", 0x41000c20))
402
#        interface.lcdcmd(0x210)
403
#        interface.lcddata(64)
404
#        interface.lcdcmd(0x211)
405
#        interface.lcddata(191)
406
#        interface.lcdcmd(0x212)
407
#        interface.lcddata(8)
408
#        interface.lcdcmd(0x213)
409
#        interface.lcddata(239)
410
#        interface.lcdcmd(0x2c)
411
#        interface.lcdcmd(0x200)
412
#        interface.lcddata(64)
413
#        interface.lcdcmd(0x201)
414
#        interface.lcddata(8)
415
#        interface.lcdcmd(0x202)
416
        interface.emcore.write(0x38300000, struct.pack("<I", 0x41104eb8))
417
        for r in range(8):
418
            for y in range(32):
419
                for x in range(32):
420
                    interface.lcddata(1 << (r + 24))
421
                for x in range(32):
422
                    interface.lcddata(1 << (r + 16))
423
                for x in range(32):
424
                    interface.lcddata(1 << (r + 8))
425
                for x in range(32):
426
                    interface.lcddata(1 << r)
427
        for y in range(32):
428
            for x in range(32):
429
                interface.lcddata(0xff000000)
430
            for x in range(32):
431
                interface.lcddata(0xff0000)
432
            for x in range(32):
433
                interface.lcddata(0xff00)
434
            for x in range(32):
435
                interface.lcddata(0xff)
436
        interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))
437
        interface.lcdcmd(0x2a)
438
        interface.lcddata(8)
439
        interface.lcddata(63)
440
        interface.lcdcmd(0x2b)
441
        interface.lcddata(8)
442
        interface.lcddata(0x237)
443
        interface.lcdcmd(0x2c)
444
#        interface.emcore.write(0x38300000, struct.pack("<I", 0x41000da8))
445
#        interface.lcdcmd(0x210)
446
#        interface.lcddata(8)
447
#        interface.lcdcmd(0x211)
448
#        interface.lcddata(63)
449
#        interface.lcdcmd(0x212)
450
#        interface.lcddata(8)
451
#        interface.lcdcmd(0x213)
452
#        interface.lcddata(239)
453
#        interface.lcdcmd(0x2c)
454
#        interface.lcdcmd(0x200)
455
#        interface.lcddata(8)
456
#        interface.lcdcmd(0x201)
457
#        interface.lcddata(8)
458
#        interface.lcdcmd(0x202)
459
        interface.emcore.write(0x38300000, struct.pack("<I", 0x41104eb8))
460
        for y in range(256):
461
            for k in range(8):
462
                interface.lcddata(y << 16)
463
            for k in range(8):
464
                interface.lcddata(y << 8)
465
            for k in range(8):
466
                interface.lcddata(y)
467
            for k in range(8):
468
                interface.lcddata((y << 8) | y)
469
            for k in range(8):
470
                interface.lcddata((y << 16) | y)
471
            for k in range(8):
472
                interface.lcddata((y << 16) | (y << 8))
473
            for k in range(8):
474
                interface.lcddata((y << 16) | (y << 8) | y)
475
    except KeyboardInterrupt:
476
        sys.exit()