Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/env pythonimport sysimport osimport timeimport structimport localefrom functools import wrapsimport libemcoreimport libemcoredatafrom misc import Error, ArgumentError, ArgumentTypeError, Logger, getfuncdoc, gethwname, to_bool, to_intclass Interface(object):def __init__(self):self.logger = Logger()try:self.emcore = libemcore.Emcore(logger = self.logger)except libemcore.DeviceNotFoundError:self.logger.error("No emCORE device found!\n")exit(1)def lcdcmd(self, cmd):data = struct.pack("<I", cmd)self.emcore.write(0x38300004, data)def lcddata(self, data):data = struct.pack("<I", data)self.emcore.write(0x38300040, data)if __name__ == "__main__":try:interface = Interface()interface.emcore.write(0x38300000, struct.pack("<I", 0x41000c20))# interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))interface.emcore.i2cwrite(0, 0xe6, 0x30, struct.pack("B", 200))if len(sys.argv) > 1:interface.lcdcmd(int(sys.argv[1], 16))for i in range(2, len(sys.argv)):interface.lcddata(int(sys.argv[1], 16))exit(0)# '''print("Software Reset?")raw_input()interface.lcdcmd(0x01)print("Sleep Out?")raw_input()interface.lcdcmd(0x11)print("Display ON?")raw_input()interface.lcdcmd(0x29)print("Power Control 1?")raw_input()interface.lcdcmd(0xc0)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Power Control 2?")raw_input()interface.lcdcmd(0xc1)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Power Control 3?")raw_input()interface.lcdcmd(0xc2)print("Data: 34 (unknown)?")raw_input()interface.lcddata(0x34)print("Power Control 4?")raw_input()interface.lcdcmd(0xc3)print("Data: 72 (unknown)?")raw_input()interface.lcddata(0x72)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Power Control 5?")raw_input()interface.lcdcmd(0xc4)print("Data: 73 (unknown)?")raw_input()interface.lcddata(0x73)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("VCOM Control 1?")raw_input()interface.lcdcmd(0xc5)print("Data: 3c (unknown)?")raw_input()interface.lcddata(0x3c)print("Data: 3c (unknown)?")raw_input()interface.lcddata(0x3c)print("Command: fe (unknown)?")raw_input()interface.lcdcmd(0xfe)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Command: b1 (unknown)?")raw_input()interface.lcdcmd(0xb1)print("Data: 6a (unknown)?")raw_input()interface.lcddata(0x6a)print("Data: 15 (unknown)?")raw_input()interface.lcddata(0x15)print("Command: b2 (unknown)?")raw_input()interface.lcdcmd(0xb2)print("Data: 6a (unknown)?")raw_input()interface.lcddata(0x00)print("Data: 15 (unknown)?")raw_input()interface.lcddata(0x15)print("Command: b3 (unknown)?")raw_input()interface.lcdcmd(0xb3)print("Data: 6a (unknown)?")raw_input()interface.lcddata(0x00)print("Data: 15 (unknown)?")raw_input()interface.lcddata(0x15)print("Command: b4 (unknown)?")raw_input()interface.lcdcmd(0xb4)print("Data: 02 (unknown)?")raw_input()interface.lcddata(0x02)print("Command: b6 (unknown)?")raw_input()interface.lcdcmd(0xb6)print("Data: 12 (unknown)?")raw_input()interface.lcddata(0x12)print("Data: 02 (unknown)?")raw_input()interface.lcddata(0x02)print("Command: 35 (unknown)?")raw_input()interface.lcdcmd(0x35)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Command: 26 (unknown)?")raw_input()interface.lcdcmd(0x26)print("Data: 10 (unknown)?")raw_input()interface.lcddata(0x10)print("Command: e0 (unknown)?")raw_input()interface.lcdcmd(0xe0)print("Data: 77 (unknown)?")raw_input()interface.lcddata(0x77)print("Data: 52 (unknown)?")raw_input()interface.lcddata(0x52)print("Data: 76 (unknown)?")raw_input()interface.lcddata(0x76)print("Data: 53 (unknown)?")raw_input()interface.lcddata(0x53)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 57 (unknown)?")raw_input()interface.lcddata(0x57)print("Data: 42 (unknown)?")raw_input()interface.lcddata(0x42)print("Data: 10 (unknown)?")raw_input()interface.lcddata(0x10)print("Data: 18 (unknown)?")raw_input()interface.lcddata(0x18)print("Data: 09 (unknown)?")raw_input()interface.lcddata(0x09)print("Command: e1 (unknown)?")raw_input()interface.lcdcmd(0xe1)print("Data: 0d (unknown)?")raw_input()interface.lcddata(0x0d)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Data: 23 (unknown)?")raw_input()interface.lcddata(0x23)print("Data: 66 (unknown)?")raw_input()interface.lcddata(0x66)print("Data: 0f (unknown)?")raw_input()interface.lcddata(0x0f)print("Data: 15 (unknown)?")raw_input()interface.lcddata(0x15)print("Data: 4d (unknown)?")raw_input()interface.lcddata(0x4d)print("Data: 85 (unknown)?")raw_input()interface.lcddata(0x85)print("Data: 08 (unknown)?")raw_input()interface.lcddata(0x08)print("Data: 02 (unknown)?")raw_input()interface.lcddata(0x02)print("Data: 10 (unknown)?")raw_input()interface.lcddata(0x10)print("Command: e2 (unknown)?")raw_input()interface.lcdcmd(0xe2)print("Data: 39 (unknown)?")raw_input()interface.lcddata(0x39)print("Data: 60 (unknown)?")raw_input()interface.lcddata(0x60)print("Data: 77 (unknown)?")raw_input()interface.lcddata(0x77)print("Data: 05 (unknown)?")raw_input()interface.lcddata(0x05)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 07 (unknown)?")raw_input()interface.lcddata(0x07)print("Data: 96 (unknown)?")raw_input()interface.lcddata(0x96)print("Data: 64 (unknown)?")raw_input()interface.lcddata(0x64)print("Data: 0d (unknown)?")raw_input()interface.lcddata(0x0d)print("Data: 1a (unknown)?")raw_input()interface.lcddata(0x1a)print("Data: 0a (unknown)?")raw_input()interface.lcddata(0x0a)print("Command: e3 (unknown)?")raw_input()interface.lcdcmd(0xe3)print("Data: 3f (unknown)?")raw_input()interface.lcddata(0x3f)print("Data: 10 (unknown)?")raw_input()interface.lcddata(0x10)print("Data: 16 (unknown)?")raw_input()interface.lcddata(0x16)print("Data: 44 (unknown)?")raw_input()interface.lcddata(0x44)print("Data: 0e (unknown)?")raw_input()interface.lcddata(0x0e)print("Data: 04 (unknown)?")raw_input()interface.lcddata(0x04)print("Data: 6c (unknown)?")raw_input()interface.lcddata(0x6c)print("Data: 44 (unknown)?")raw_input()interface.lcddata(0x44)print("Data: 04 (unknown)?")raw_input()interface.lcddata(0x04)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 0b (unknown)?")raw_input()interface.lcddata(0x0b)print("Command: e4 (unknown)?")raw_input()interface.lcdcmd(0xe4)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Data: 61 (unknown)?")raw_input()interface.lcddata(0x61)print("Data: 77 (unknown)?")raw_input()interface.lcddata(0x77)print("Data: 04 (unknown)?")raw_input()interface.lcddata(0x04)print("Data: 02 (unknown)?")raw_input()interface.lcddata(0x02)print("Data: 04 (unknown)?")raw_input()interface.lcddata(0x04)print("Data: 72 (unknown)?")raw_input()interface.lcddata(0x72)print("Data: 32 (unknown)?")raw_input()interface.lcddata(0x32)print("Data: 09 (unknown)?")raw_input()interface.lcddata(0x09)print("Data: 19 (unknown)?")raw_input()interface.lcddata(0x19)print("Data: 06 (unknown)?")raw_input()interface.lcddata(0x06)print("Command: e5 (unknown)?")raw_input()interface.lcdcmd(0xe5)print("Data: 4f (unknown)?")raw_input()interface.lcddata(0x4f)print("Data: 42 (unknown)?")raw_input()interface.lcddata(0x42)print("Data: 27 (unknown)?")raw_input()interface.lcddata(0x27)print("Data: 67 (unknown)?")raw_input()interface.lcddata(0x67)print("Data: 0f (unknown)?")raw_input()interface.lcddata(0x0f)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 26 (unknown)?")raw_input()interface.lcddata(0x26)print("Data: 33 (unknown)?")raw_input()interface.lcddata(0x33)print("Data: 01 (unknown)?")raw_input()interface.lcddata(0x01)print("Data: 03 (unknown)?")raw_input()interface.lcddata(0x03)print("Data: 09 (unknown)?")raw_input()interface.lcddata(0x09)# print("Command: 3a (unknown)?")# raw_input()# interface.lcdcmd(0x3a)# print("Data: 66 (unknown)?")# raw_input()# interface.lcddata(0x66)print("Command: 36 (unknown)?")raw_input()interface.lcdcmd(0x36)print("Data: 00 (unknown)?")raw_input()interface.lcddata(0x00)print("Sleep Out?")raw_input()interface.lcdcmd(0x11)print("Display ON?")raw_input()interface.lcdcmd(0x29)# '''print("Write pattern?")raw_input()interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))interface.lcdcmd(0x2a)interface.lcddata(64)interface.lcddata(191)interface.lcdcmd(0x2b)interface.lcddata(8)interface.lcddata(0x237)interface.lcdcmd(0x2c)# interface.emcore.write(0x38300000, struct.pack("<I", 0x41000c20))# interface.lcdcmd(0x210)# interface.lcddata(64)# interface.lcdcmd(0x211)# interface.lcddata(191)# interface.lcdcmd(0x212)# interface.lcddata(8)# interface.lcdcmd(0x213)# interface.lcddata(239)# interface.lcdcmd(0x2c)# interface.lcdcmd(0x200)# interface.lcddata(64)# interface.lcdcmd(0x201)# interface.lcddata(8)# interface.lcdcmd(0x202)interface.emcore.write(0x38300000, struct.pack("<I", 0x41104eb8))for r in range(8):for y in range(32):for x in range(32):interface.lcddata(1 << (r + 24))for x in range(32):interface.lcddata(1 << (r + 16))for x in range(32):interface.lcddata(1 << (r + 8))for x in range(32):interface.lcddata(1 << r)for y in range(32):for x in range(32):interface.lcddata(0xff000000)for x in range(32):interface.lcddata(0xff0000)for x in range(32):interface.lcddata(0xff00)for x in range(32):interface.lcddata(0xff)interface.emcore.write(0x38300000, struct.pack("<I", 0x41100db8))interface.lcdcmd(0x2a)interface.lcddata(8)interface.lcddata(63)interface.lcdcmd(0x2b)interface.lcddata(8)interface.lcddata(0x237)interface.lcdcmd(0x2c)# interface.emcore.write(0x38300000, struct.pack("<I", 0x41000da8))# interface.lcdcmd(0x210)# interface.lcddata(8)# interface.lcdcmd(0x211)# interface.lcddata(63)# interface.lcdcmd(0x212)# interface.lcddata(8)# interface.lcdcmd(0x213)# interface.lcddata(239)# interface.lcdcmd(0x2c)# interface.lcdcmd(0x200)# interface.lcddata(8)# interface.lcdcmd(0x201)# interface.lcddata(8)# interface.lcdcmd(0x202)interface.emcore.write(0x38300000, struct.pack("<I", 0x41104eb8))for y in range(256):for k in range(8):interface.lcddata(y << 16)for k in range(8):interface.lcddata(y << 8)for k in range(8):interface.lcddata(y)for k in range(8):interface.lcddata((y << 8) | y)for k in range(8):interface.lcddata((y << 16) | y)for k in range(8):interface.lcddata((y << 16) | (y << 8))for k in range(8):interface.lcddata((y << 16) | (y << 8) | y)except KeyboardInterrupt:sys.exit()