Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 15:02 04 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : MM+: Photorealistic gauges

     Page 1 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 06:06am 30 Jun 2016
Copy link to clipboard 
Print this post




This thread tries to present fairly general purpose code that can be used to display photo-realistic gauges on a SSD1963 display. This is really the same code as presented here but I will try and explain a bit better how it works.

First things first - this only works on a SSD1963 display in which the RD pin is connected to the Micromite (like the Explore 100 )

See this live video

The program works by overlaying a Micromite generated pointer on top of an image of the display loaded from SD card.

The first 4 lines in the program define where on the display the image is to be drawn and where the pivot of the pointer is relative to the top left corner of the image

const Y_top = 0 'Y coordinate of top of the image file on the screen
const X_left = 160 'X coordinate of left of the image file on the screen
const Y_point = 320 'Y coordinate of the centre of the pointer relative to the image top
const X_point = 240 'X coordinate of the centre of the pointer relative to the image left


The next two lines allocate some memory which the CFunction will use to save the image data behind where the pointer is to be drawn. The Cfunction returns how much memory is required so start with plenty and then tune it for actual usage

const buffersize = 1000 'used to store the image data behind the pointer
dim integer buff(buffersize)


Next we need to define the pointer itself. The Cfunction works by saving and restoring triangles so in the example the pointer is constructed like this:



The following lines define the coordinates of the 4 triangles relative to the pivot. Note that I have used my photo program to get the colour of the original pointer in the image and used this so that the pointer matches perfectly. In most gauges there is some sort of round pivot to the pointer. We need to define the outer diameter of this and then we need a simple subroutine to re-draw it each time the pointer moves. In my case I've got the colours off the image and done a very simple circle with a slightly shaded edge to match the original

'
' Now we define the pointer as the X,Y coordinates of a number of triangles with the rotation point at 0,0
' It is simplest to define this in the 12-oclock position which means the Y-coordinates at the top of the pointer will be negative
' The order of data elements in the array is:
' t1x1,t1y1,t1x2,t1y2,t1x3,t1y3, t2x1,t2y1,t2x2,t2y2,t2x3,t2y3,...tntx1,tnty1,tntx2,tnty2,tntx3,tnty3
'
dim integer nt=4 'Number of triangles used to define the pointer
dim integer ptr(5,nt-1)=(-4,0,-4,-130,4,0,-4,-130,4,-130,4,0,-4,0,-8,0,-4,-130,4,0,8,0,4,-130)
DIM INTEGER pcolour=rgb(171,52,32) 'define the colour of the pointer
const pivot=35 'diameter in pixels of the pivot of the pointer

sub drawpivot() 'put anything you like here to draw the pivot as you wish
circle X_point+X_left,Y_point+Y_top,pivot,0,,,rgb(54,54,54)
circle X_point+X_left,Y_point+Y_top,pivot*0.9,0,,,rgb(43,43,43)
end sub


We now need an array to store where the pointer is currently drawn and where it is now to be drawn. As we have 4 triangles we will need 8 slots in the array for the set of 3-coordinate pairs and the colour. Processing is slightly different first time into the main loop as there is no pointer to erase so a flag is needed to remember this

dim integer xx0(nt*2-1),yy0(nt*2-1),xx1(nt*2-1),yy1(nt*2-1),xx2(nt*2-1),yy2(nt*2-1),tcol(nt*2-1)
dim integer first=1 'marker to control alternate processing on first time through the loop


The main loop starts by clearing the display and loading up the background image of the gauge

cls
load image "rtecop8.bmp",X_left,Y_top


2016-06-30_154821_rtecop8.zip

In my example code the program just sweeps the pointer from 45 degrees left of centre to 45 degrees right. Normally of course this will be using some sort of data reading to drive the display.

' demo code moving the pointer
dim float demoangle=-45
do
do
drawpointer(demoangle)
demoangle=demoangle+1
loop while demoangle <=45
do
drawpointer(demoangle)
demoangle=demoangle-1
loop while demoangle >=-45
loop


The main processing routine is drawpointer calling rotatetriangle. This takes each of the triangles making up the pointer and rotates them about the pivot point. The code automatically compensates for the placement of the image as all coordinates are relative to the image top left. The rotatetriangle routine does the trigonometry for each triangle in turn and also stores the coordinates into the arrays which will be used in the call to the CFunction. The first parameter to rotatetriangle is the array position for that triangle (in the example 0-3). The current positions of the 4 triangles are moved to the first four array positions and the new positions are stored in the last four positions. The colours of the current positions of the triangles are set to -1. This is a coded value that tells the Cfunction to restore saved memory rather than writing a triangle afresh.

"drawpointer" tests the first loop flag "first" and only draws new triangles first time in as nothing has been stored at that point. Once the triangles have been drawn by calling "triangles" the pivot is redrawn by a call to "drawpivot"

Sub drawpointer(angle as float)
Local integer i
for i=0 to nt-1
rotatetriangle(i,pcolour,angle,X_point+X_left,Y_point+Y_top,ptr(0,i),ptr(1,i),ptr(2,i),ptr(3,i),ptr(4,i),ptr(5,i)) 'rotate the pointer into the drawing array
next i
if first then 'store the background and write the pointer
i=triangles(nt, buff() , tcol(nt), xx0(nt), yy0(nt), xx1(nt), yy1(nt), xx2(nt), yy2(nt))
print "Read buffer is ",i/buffersize*100,"% used"
first=0
else 'replace the background over the last pointer, store the background for the new pointer and write itand write the pointer
i=triangles(nt*2, buff() , tcol(), xx0(), yy0(), xx1(), yy1(), xx2(), yy2())
endif
drawpivot
End Sub

sub rotatetriangle(n as integer, col as integer, angle as float, x as integer, y as integer, x0 as integer, y0 as integer, x1 as integer, y1 as integer, x2 as integer, y2 as integer)
local float sine=sin(rad(angle)),cosine=cos(rad(angle))
local integer x0a,y0a,x1a,y1a,x2a,y2a
x0a= x0*cosine - y0 * sine + x
y0a= y0*cosine + x0 * sine + y
x1a= x1*cosine - y1 * sine + x
y1a= y1*cosine + x1 * sine + y
x2a= x2*cosine - y2 * sine + x
y2a= y2*cosine + x2 * sine + y
xx0(n)=xx0(n+nt)
yy0(n)=yy0(n+nt)
xx1(n)=xx1(n+nt)
yy1(n)=yy1(n+nt)
xx2(n)=xx2(n+nt)
yy2(n)=yy2(n+nt)
xx0(n+nt)=x0a
yy0(n+nt)=y0a
xx1(n+nt)=x1a
yy1(n+nt)=y1a
xx2(n+nt)=x2a
yy2(n+nt)=y2a
tcol(n)=-1
tcol(n+nt)=col
end sub


The triangles Cfunction itself has two modes of operation. When an array element has a colour of -1 it takes whatever is stored in "buffer" and puts it into the triangular area defined on the screen. When the colour is not -1 it reads the triangular area into the "buffer" and then replaces it with the new triangle defined.

To use this properly all the restore triangles must come first in the array followed by the redraws - don't mix them. In all normal circumstances you should see no flicker of any sort on the display as the CFunction now synchronises with the TFT scan so that restore and write take place between scans (thanks to Nathan for the concept)

The full program for a Explore 100 board follows. To use for a 64-pin part swap the CFunction to the one at the bottom and setup the correct pin that is connected to RD on the SSD1963 display in the MM.STARTUP subroutine

option explicit
option default none
'
const Y_top = 0 'Y coordinate of top of the image file on the screen
const X_left = 160 'X coordinate of left of the image file on the screen
const Y_point = 320 'Y coordinate of the centre of the pointer relative to the image top
const X_point = 240 'X coordinate of the centre of the pointer relative to the image left
'
const buffersize = 1000 'used to store the image data behind the pointer
dim integer buff(buffersize)
'
'
' Now we define the pointer as the X,Y coordinates of a number of triangles with the rotation point at 0,0
' It is simplest to define this in the 12-oclock position which means the Y-coordinates at the top of the pointer will be negative
' The order of data elements in the array is:
' t1x1,t1y1,t1x2,t1y2,t1x3,t1y3, t2x1,t2y1,t2x2,t2y2,t2x3,t2y3,...tntx1,tnty1,tntx2,tnty2,tntx3,tnty3
'
dim integer nt=4 'Number of triangles used to define the pointer
dim integer ptr(5,nt-1)=(-4,0,-4,-130,4,0,-4,-130,4,-130,4,0,-4,0,-8,0,-4,-130,4,0,8,0,4,-130)
DIM INTEGER pcolour=rgb(171,52,32) 'define the colour of the pointer
const pivot=35 'diameter in pixels of the fulcrum of the pointer
'
dim integer xx0(nt*2-1),yy0(nt*2-1),xx1(nt*2-1),yy1(nt*2-1),xx2(nt*2-1),yy2(nt*2-1),tcol(nt*2-1)
dim integer first=1 'marker to control alternate processing on first time through the loop

'
cls
load image "rtecop8.bmp",X_left,Y_top
'
' demo code moving the pointer
dim float demoangle=-45
do
do
drawpointer(demoangle)
demoangle=demoangle+1
loop while demoangle <=45
do
drawpointer(demoangle)
demoangle=demoangle-1
loop while demoangle >=-45
loop
'
Sub drawpointer(angle as float)
Local integer i
for i=0 to nt-1
rotatetriangle(i,pcolour,angle,X_point+X_left,Y_point+Y_top,ptr(0,i),ptr(1,i),ptr(2,i),ptr(3,i),ptr(4,i),ptr(5,i)) 'rotate the pointer into the drawing array
next i
if first then 'store the background and write the pointer
i=triangles(nt, buff() , tcol(nt), xx0(nt), yy0(nt), xx1(nt), yy1(nt), xx2(nt), yy2(nt))
print "Read buffer is ",i/buffersize*100,"% used"
first=0
else 'replace the background over the last pointer, store the background for the new pointer and write itand write the pointer
i=triangles(nt*2, buff() , tcol(), xx0(), yy0(), xx1(), yy1(), xx2(), yy2())
endif
drawpivot
End Sub

sub rotatetriangle(n as integer, col as integer, angle as float, x as integer, y as integer, x0 as integer, y0 as integer, x1 as integer, y1 as integer, x2 as integer, y2 as integer)
local float sine=sin(rad(angle)),cosine=cos(rad(angle))
local integer x0a,y0a,x1a,y1a,x2a,y2a
x0a= x0*cosine - y0 * sine + x
y0a= y0*cosine + x0 * sine + y
x1a= x1*cosine - y1 * sine + x
y1a= y1*cosine + x1 * sine + y
x2a= x2*cosine - y2 * sine + x
y2a= y2*cosine + x2 * sine + y
xx0(n)=xx0(n+nt)
yy0(n)=yy0(n+nt)
xx1(n)=xx1(n+nt)
yy1(n)=yy1(n+nt)
xx2(n)=xx2(n+nt)
yy2(n)=yy2(n+nt)
xx0(n+nt)=x0a
yy0(n+nt)=y0a
xx1(n+nt)=x1a
yy1(n+nt)=y1a
xx2(n+nt)=x2a
yy2(n+nt)=y2a
tcol(n)=-1
tcol(n+nt)=col
end sub
'
sub drawpivot() 'put anything you like here to draw the fulcrum as you wish
circle X_point+X_left,Y_point+Y_top,pivot,0,,,rgb(54,54,54)
circle X_point+X_left,Y_point+Y_top,pivot*0.9,0,,,rgb(43,43,43)
end sub
'
CFunction triangles '100-pin
00000267
'defineregion
3C029D00 8C420090 24080100 3C03BF88 AC686434 80420015 2488FFFF 24A3FFFF
01064021 24060001 10460004 00671821 24060003 14460005 3C029D00 00805821
01005021 10000008 00602021 8C420094 00605821 00A05021 8C430000 2463FFFF
00682823 00642023 000B6202 000A4202 3C02BF88 24060200 24090100 00053A02
00041A02 35080300 358C0300 356B0300 240D022A AC4D6430 354A0300 AC466434
34E70300 AC466438 34A50300 AC496438 34630300 AC4C6430 34840300 AC466434
AC466438 AC4B6430 AC466434 AC466438 AC486430 2408022B AC466434 AC466438
AC4A6430 AC466434 AC466438 AC496434 AC486430 AC466434 AC466438 AC496438
AC476430 AC466434 AC466438 AC456430 AC466434 AC466438 AC436430 AC466434
AC466438 AC446430 AC466434 AC466438 03E00008 00000000
'writeRectangle
27BDFFD8 AFB40020 AFB3001C 00C0A021 00E09821 72749802 AFB00010 8FB00038
AFB20018 AFB10014 00109403 00108A03 AFBF0024 0411FFA4 00000000 3C02BF88
24030100 24040200 2405022C AC436434 36520300 AC456430 36310300 AC446434
36100300 AC446438 AC436438 1260000F 2673FFFF 24030200 2404FFFF 2673FFFF
AC526430 AC436434 AC436438 AC516430 AC436434 AC436438 AC506430 AC436434
AC436438 1664FFF6 2673FFFF 8FBF0024 8FB40020 8FB3001C 8FB20018 8FB10014
8FB00010 03E00008 27BD0028
'ReadRectangle
27BDFFC8 AFBF0034 AFBE0030 AFB7002C AFB60028 AFB50024 AFB40020 AFB3001C
AFB20018 3C139D00 AFB10014 AFB00010 8E630090 0080B021 8E620028 8064002D
00C0A821 00E0F021 00A0B821 0040F809 8FB10048 8E640090 8E630024 24050006
8084002D 24100001 0060F809 00508004 8E630090 00409021 8E620024 8064002D
24050005 0040F809 0015A040 0295A021 00409821 729E1002 02C02021 02E02821
02A03021 03C03821 0051A021 0411FF53 00000000 3C05BF88 24060100 ACA66434
8FA3004C 24070200 2402022E ACA26430 ACA76434 ACA76438 ACA66438 240600FF
00711821 3C02BF81 3C04BF88 ACA6641C AE700000 8C45F220 8C45F220 8C45F220
AE500000 8C866420 26310003 0234282B A0660000 AE700000 8C46F220 8C46F220
8C46F220 AE500000 8C866420 A0660001 AE700000 8C46F220 8C46F220 8C46F220
AE500000 8C866420 A0660002 14A0FFE8 24630003 3C02BF88 240300FF AC43641C
8FBF0034 02201021 8FBE0030 8FB7002C 8FB60028 8FB50024 8FB40020 8FB3001C
8FB20018 8FB10014 8FB00010 03E00008 27BD0038
'RestoreRectangle
27BDFFE0 AFB20018 AFB10014 00C09021 00E08821 72328802 AFB00010 AFBF001C
8FB00030 0411FF10 00000000 3C02BF88 24030100 24040200 2405022C AC436434
AC456430 AC446434 AC446438 AC436438 1220001D 2631FFFF 8FA40034 02202821
00902021 24030200 2407FFFF 80860000 24A5FFFF 34C60300 AC466430 AC436434
AC436438 80860001 34C60300 AC466430 AC436434 AC436438 80860002 24840003
34C60300 AC466430 AC436434 AC436438 54A7FFEF 80860000 00111040 26100003
00518821 02118021 8FBF001C 02001021 8FB20018 8FB10014 8FB00010 03E00008
27BD0020
'triangles
27BDFFA8 AFB20038 8FA3006C 00809021 8FA40074 AFBE0050 AFB7004C 0083102A
AFB3003C AFB10034 AFBF0054 AFB60048 AFB50044 AFB40040 AFB00030 00A09821
00C0B821 AFA70064 8FB10068 10400006 8FBE007C 02201021 AFA4006C 8FB10070
AFA30074 AFA20070 8FA30074 03C3102A 10400009 8FA6006C 8FA20070 8FA40078
AFBE0074 AFA20078 AFA40070 0060F021 8FA6006C 8FA30074 0066102A 50400008
8FA6006C 8FA40074 02201021 AFA60074 8FB10070 AFA4006C AFA20070 8FA6006C
14DE0036 8FA30074 8FA30070 0071102A 14400006 02203821 0223102A 10400005
8FA40078 10000002 8FA70070 8FB10070 8FA40078 0091102A 54400003 8FB10078
00E4102A 0082380B 1640000C 24020001 8FA5006C 24E70001 02202021 24060001
00F13823 AFB30010 AFB70014 0411FF16 00000000 100000B0 00409821 1642000C
8FA20064 8FA5006C 24E70001 02202021 24060001 00F13823 AFB30010 AFB70014
0411FF6E 00000000 100000A3 00409821 8FA5006C 24E70001 02202021 24060001
00F13823 AFA20010 AFB70014 0411FECB 00000000 10000099 8FBF0054 8FA4006C
007E1026 0002102B 00621023 AFA20020 0044102A 14400044 00808021 8FA60070
8FA20078 00641823 00D13023 00511023 03C42023 AFA60024 AFA20028 0000A021
0000A821 AFA30018 AFA4001C 24160001 8FA40018 8FA6001C 02002821 02A4001A
008001F4 02C03821 00001012 00511021 0286001A 00C001F4 00001812 00711821
0062302A 10C00003 00402021 00601021 00801821 24660001 00402021 16400009
00C23023 02002821 02C03821 AFB30010 AFB70014 0411FECC 00000000 10000012
00409821 5656000C 8FA20064 24630001 00402021 02002821 00623023 02C03821
AFB30010 AFB70014 0411FF24 00000000 10000005 00409821 AFB70014 AFA20010
0411FE86 00000000 8FA30020 8FA40024 8FA60028 26100001 0070102A 02A4A821
1040FFCB 0286A021 03D0102A 1440004A 8FA30070 8FA20078 8FA40074 8FA60078
00431023 AFA20024 8FA2006C 0204A023 00D13023 0202A823 8FA20024 70D5A802
03C41823 8FA4006C AFA60020 AFA30018 03C42023 AFA4001C 24160001 7054A002
8FA40018 8FA6001C 02002821 0284001A 008001F4 8FA40070 02C03821 00001012
00441021 02A6001A 00C001F4 00001812 00711821 0062202A 10800003 00403021
00601021 00C01821 24660001 00402021 16400009 00C23023 02002821 02C03821
AFB30010 AFB70014 0411FE7F 00000000 10000012 00409821 5656000C 8FA20064
24630001 00402021 02002821 00623023 02C03821 AFB30010 AFB70014 0411FED7
00000000 10000005 00409821 AFB70014 AFA20010 0411FE39 00000000 8FA30024
8FA40020 26100001 03D0102A 0283A021 1040FFCB 02A4A821 8FBF0054 02601021
8FBE0050 8FB7004C 8FB60048 8FB50044 8FB40040 8FB3003C 8FB20038 8FB10034
8FB00030 03E00008 27BD0058
'gettearscanline
27BDFFE0 AFBF001C AFB20018 AFB10014 AFB00010 3C109D00 8E030090 8E020028
0040F809 8064002D 8E030090 00409021 8E020024 8064002D 0040F809 24050006
8E030090 00408821 8E020024 8064002D 0040F809 24050005 24040001 3C03BF88
02449004 24060100 24070200 240500FF 24080245 AC666434 3C04BF81 AC686430
AC676434 AC676438 AC666438 AC65641C AC520000 8C86F220 8C86F220 8C86F220
8C86F220 AE320000 8C666420 AC520000 8C82F220 8C82F220 8C82F220 8C82F220
AE320000 8C626420 AC65641C 8FBF001C 30C400FF 00042200 304200FF 00821025
8FB20018 8FB10014 8FB00010 03E00008 27BD0020
'main
27BDFFB0 AFBE0048 AFB70044 AFB60040 8FBE0068 8FB7006C 8FB60070 AFB5003C
AFB40038 AFB1002C AFBF004C AFB30034 AFB20030 AFB00028 00808821 00A0A821
AFA60058 00E0A021 0411FFB0 00000000 2442FE70 2C42000A 1040FFFB 00000000
8E220000 184000A0 00008021 8FA20058 8C440004 04810025 8C470000 8FB20058
00001821 00001021 00008021 8FA40060 8FA50064 02834821 00834021 00A33021
02E32021 03C32821 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000
8C630000 24040001 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018
AFA9001C AFA80020 0411FE7D 00000000 8E240000 26100001 0204202A 1480000E
001018C0 1000006A 00001021 8FA40058 001018C0 00831021 8C440004 8C470000
0480002A 00001021 26120001 001290C0 10000007 02009821 8E44000C 8E470008
0480FFD2 26520008 1000FFF1 8FA40058 8FA50060 8FA40064 02834821 00A34021
00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000
8C880000 8C630000 00002021 00402821 02A03021 AFA30024 AFAC0010 AFAB0014
AFAA0018 AFA9001C AFA80020 0411FE4C 00000000 8E240000 8FA50058 26730001
0264202A 1480000D 00B21821 8E230000 0203182A 10600036 8FA40058 001018C0
00832821 8CA40004 04800031 8CA70000 26120001 10000008 001290C0 8C640004
26450008 0480FFF1 8C670000 02401821 1000FFCF 00A09021 8FA50060 8FA40064
02834821 00A34021 00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000
8CCA0000 8CA90000 8C880000 8C630000 24040002 00402821 02A03021 AFA30024
AFAC0010 AFAB0014 AFAA0018 AFA9001C AFA80020 0411FE1A 00000000 8E240000
8FA50058 26100001 0204202A 10800008 00B21821 8C640004 26450008 04800004
8C670000 02401821 1000FFDB 00A09021 8FBF004C 00021FC3 8FBE0048 000210C3
8FB70044 8FB60040 8FB5003C 8FB40038 8FB30034 8FB20030 8FB1002C 8FB00028
03E00008 27BD0050 1000FFF1 00001021
End CFunction

sub mm.startup
setrd(6) 'set up the pin connected to RD
end sub

Csub setrd
00000000
27BDFFE8 AFBF0014 AFB00010 3C109D00 8C830000 8E020090 24050008 00003021
A043002D 8E030090 8E020010 0040F809 8064002D 8E030090 8E020010 24050065
8064002D 0040F809 00003021 8E030090 8E02001C 24050006 0040F809 8064002D
8FBF0014 8FB00010 03E00008 27BD0018
End Csub


CFunction triangles '64-pin
00000267
'defineregion
3C029D00 8C420090 24081000 3C03BF88 AC686134 80420015 2488FFFF 24A3FFFF
01064021 24060001 10460004 00671821 24060003 14460005 3C029D00 00805821
01005021 10000008 00602021 8C420094 00605821 00A05021 8C430000 2463FFFF
00682823 00642023 000B6202 000A4202 3C02BF88 24060800 24091000 00053A02
00041A02 35081800 358C1800 356B1800 240D022A AC4D6430 354A1800 AC466134
34E71800 AC466138 34A51800 AC496138 34631800 AC4C6430 34841800 AC466134
AC466138 AC4B6430 AC466134 AC466138 AC486430 2408022B AC466134 AC466138
AC4A6430 AC466134 AC466138 AC496134 AC486430 AC466134 AC466138 AC496138
AC476430 AC466134 AC466138 AC456430 AC466134 AC466138 AC436430 AC466134
AC466138 AC446430 AC466134 AC466138 03E00008 00000000
'writeRectangle
27BDFFD8 AFB40020 AFB3001C 00C0A021 00E09821 72749802 AFB00010 8FB00038
AFB20018 AFB10014 00109403 00108A03 AFBF0024 0411FFA4 00000000 3C02BF88
24031000 24040800 2405022C AC436134 36521800 AC456430 36311800 AC446134
36101800 AC446138 AC436138 1260000F 2673FFFF 24030800 2404FFFF 2673FFFF
AC526430 AC436134 AC436138 AC516430 AC436134 AC436138 AC506430 AC436134
AC436138 1664FFF6 2673FFFF 8FBF0024 8FB40020 8FB3001C 8FB20018 8FB10014
8FB00010 03E00008 27BD0028
'ReadRectangle
27BDFFC8 AFBF0034 AFBE0030 AFB7002C AFB60028 AFB50024 AFB40020 AFB3001C
AFB20018 3C139D00 AFB10014 AFB00010 8E630090 0080B021 8E620028 8064002D
00C0A821 00E0F021 00A0B821 0040F809 8FB10048 8E640090 8E630024 24050006
8084002D 24100001 0060F809 00508004 8E630090 00409021 8E620024 8064002D
24050005 0040F809 0015A040 0295A021 00409821 729E1002 02C02021 02E02821
02A03021 03C03821 0051A021 0411FF53 00000000 3C05BF88 24061000 ACA66134
8FA3004C 24070800 2402022E ACA26430 ACA76134 ACA76138 ACA66138 240600FF
00711821 3C02BF81 3C04BF88 ACA6641C AE700000 8C45F220 8C45F220 8C45F220
AE500000 8C866420 26310003 0234282B A0660000 AE700000 8C46F220 8C46F220
8C46F220 AE500000 8C866420 A0660001 AE700000 8C46F220 8C46F220 8C46F220
AE500000 8C866420 A0660002 14A0FFE8 24630003 3C02BF88 240300FF AC43641C
8FBF0034 02201021 8FBE0030 8FB7002C 8FB60028 8FB50024 8FB40020 8FB3001C
8FB20018 8FB10014 8FB00010 03E00008 27BD0038
'RestoreRectangle
27BDFFE0 AFB20018 AFB10014 00C09021 00E08821 72328802 AFB00010 AFBF001C
8FB00030 0411FF10 00000000 3C02BF88 24031000 24040800 2405022C AC436134
AC456430 AC446134 AC446138 AC436138 1220001D 2631FFFF 8FA40034 02202821
00902021 24030800 2407FFFF 80860000 24A5FFFF 34C61800 AC466430 AC436134
AC436138 80860001 34C61800 AC466430 AC436134 AC436138 80860002 24840003
34C61800 AC466430 AC436134 AC436138 54A7FFEF 80860000 00111040 26100003
00518821 02118021 8FBF001C 02001021 8FB20018 8FB10014 8FB00010 03E00008
27BD0020
'triangles
27BDFFA8 AFB20038 8FA3006C 00809021 8FA40074 AFBE0050 AFB7004C 0083102A
AFB3003C AFB10034 AFBF0054 AFB60048 AFB50044 AFB40040 AFB00030 00A09821
00C0B821 AFA70064 8FB10068 10400006 8FBE007C 02201021 AFA4006C 8FB10070
AFA30074 AFA20070 8FA30074 03C3102A 10400009 8FA6006C 8FA20070 8FA40078
AFBE0074 AFA20078 AFA40070 0060F021 8FA6006C 8FA30074 0066102A 50400008
8FA6006C 8FA40074 02201021 AFA60074 8FB10070 AFA4006C AFA20070 8FA6006C
14DE0036 8FA30074 8FA30070 0071102A 14400006 02203821 0223102A 10400005
8FA40078 10000002 8FA70070 8FB10070 8FA40078 0091102A 54400003 8FB10078
00E4102A 0082380B 1640000C 24020001 8FA5006C 24E70001 02202021 24060001
00F13823 AFB30010 AFB70014 0411FF16 00000000 100000B0 00409821 1642000C
8FA20064 8FA5006C 24E70001 02202021 24060001 00F13823 AFB30010 AFB70014
0411FF6E 00000000 100000A3 00409821 8FA5006C 24E70001 02202021 24060001
00F13823 AFA20010 AFB70014 0411FECB 00000000 10000099 8FBF0054 8FA4006C
007E1026 0002102B 00621023 AFA20020 0044102A 14400044 00808021 8FA60070
8FA20078 00641823 00D13023 00511023 03C42023 AFA60024 AFA20028 0000A021
0000A821 AFA30018 AFA4001C 24160001 8FA40018 8FA6001C 02002821 02A4001A
008001F4 02C03821 00001012 00511021 0286001A 00C001F4 00001812 00711821
0062302A 10C00003 00402021 00601021 00801821 24660001 00402021 16400009
00C23023 02002821 02C03821 AFB30010 AFB70014 0411FECC 00000000 10000012
00409821 5656000C 8FA20064 24630001 00402021 02002821 00623023 02C03821
AFB30010 AFB70014 0411FF24 00000000 10000005 00409821 AFB70014 AFA20010
0411FE86 00000000 8FA30020 8FA40024 8FA60028 26100001 0070102A 02A4A821
1040FFCB 0286A021 03D0102A 1440004A 8FA30070 8FA20078 8FA40074 8FA60078
00431023 AFA20024 8FA2006C 0204A023 00D13023 0202A823 8FA20024 70D5A802
03C41823 8FA4006C AFA60020 AFA30018 03C42023 AFA4001C 24160001 7054A002
8FA40018 8FA6001C 02002821 0284001A 008001F4 8FA40070 02C03821 00001012
00441021 02A6001A 00C001F4 00001812 00711821 0062202A 10800003 00403021
00601021 00C01821 24660001 00402021 16400009 00C23023 02002821 02C03821
AFB30010 AFB70014 0411FE7F 00000000 10000012 00409821 5656000C 8FA20064
24630001 00402021 02002821 00623023 02C03821 AFB30010 AFB70014 0411FED7
00000000 10000005 00409821 AFB70014 AFA20010 0411FE39 00000000 8FA30024
8FA40020 26100001 03D0102A 0283A021 1040FFCB 02A4A821 8FBF0054 02601021
8FBE0050 8FB7004C 8FB60048 8FB50044 8FB40040 8FB3003C 8FB20038 8FB10034
8FB00030 03E00008 27BD0058
'gettearscanline
27BDFFE0 AFBF001C AFB20018 AFB10014 AFB00010 3C109D00 8E030090 8E020028
0040F809 8064002D 8E030090 00409021 8E020024 8064002D 0040F809 24050006
8E030090 00408821 8E020024 8064002D 0040F809 24050005 24040001 3C03BF88
02449004 24061000 24070800 240500FF 24080245 AC666134 3C04BF81 AC686430
AC676134 AC676138 AC666138 AC65641C AC520000 8C86F220 8C86F220 8C86F220
8C86F220 AE320000 8C666420 AC520000 8C82F220 8C82F220 8C82F220 8C82F220
AE320000 8C626420 AC65641C 8FBF001C 30C400FF 00042200 304200FF 00821025
8FB20018 8FB10014 8FB00010 03E00008 27BD0020
'main
27BDFFB0 AFBE0048 AFB70044 AFB60040 8FBE0068 8FB7006C 8FB60070 AFB5003C
AFB40038 AFB1002C AFBF004C AFB30034 AFB20030 AFB00028 00808821 00A0A821
AFA60058 00E0A021 0411FFB0 00000000 2442FE70 2C42000A 1040FFFB 00000000
8E220000 184000A0 00008021 8FA20058 8C440004 04810025 8C470000 8FB20058
00001821 00001021 00008021 8FA40060 8FA50064 02834821 00834021 00A33021
02E32021 03C32821 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000
8C630000 24040001 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018
AFA9001C AFA80020 0411FE7D 00000000 8E240000 26100001 0204202A 1480000E
001018C0 1000006A 00001021 8FA40058 001018C0 00831021 8C440004 8C470000
0480002A 00001021 26120001 001290C0 10000007 02009821 8E44000C 8E470008
0480FFD2 26520008 1000FFF1 8FA40058 8FA50060 8FA40064 02834821 00A34021
00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000
8C880000 8C630000 00002021 00402821 02A03021 AFA30024 AFAC0010 AFAB0014
AFAA0018 AFA9001C AFA80020 0411FE4C 00000000 8E240000 8FA50058 26730001
0264202A 1480000D 00B21821 8E230000 0203182A 10600036 8FA40058 001018C0
00832821 8CA40004 04800031 8CA70000 26120001 10000008 001290C0 8C640004
26450008 0480FFF1 8C670000 02401821 1000FFCF 00A09021 8FA50060 8FA40064
02834821 00A34021 00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000
8CCA0000 8CA90000 8C880000 8C630000 24040002 00402821 02A03021 AFA30024
AFAC0010 AFAB0014 AFAA0018 AFA9001C AFA80020 0411FE1A 00000000 8E240000
8FA50058 26100001 0204202A 10800008 00B21821 8C640004 26450008 04800004
8C670000 02401821 1000FFDB 00A09021 8FBF004C 00021FC3 8FBE0048 000210C3
8FB70044 8FB60040 8FB5003C 8FB40038 8FB30034 8FB20030 8FB1002C 8FB00028
03E00008 27BD0050 1000FFF1 00001021
End CFunction













Edited by matherp 2016-07-01
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1676
Posted: 08:53am 30 Jun 2016
Copy link to clipboard 
Print this post

That is truly amazing, and it seems to be easy to understand as well, very well documented.
I'm going to be spending quite a bit of time trying to digest how this works
It will be handy for so many things.
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 09:44am 30 Jun 2016
Copy link to clipboard 
Print this post

I think you have a serious issue with the oil pressure in your car (or plane)

Seriously, I think you need to get some sleep - don't you ever stop??

This is amazing stuff. I reckon Zonker will be impressed with this (as will virtually everyone else).

Great stuff once again . . . .
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 09:38pm 30 Jun 2016
Copy link to clipboard 
Print this post

Yep!,

Very VERY Impressive, Another great job Peter,

Kind Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 05:08pm 01 Jul 2016
Copy link to clipboard 
Print this post

Yes Sir.. I like the awesome work Peter has done with all the different displays..!

I managed to get a week off work and will be spending some time trying to get an ALT gauge going with the BMP180 sensor that just showed up on the slow boat... Peters new driver code for the R61505V "round" displays I hope will work in the same way...



After doing the background screen layout, I hope to use a modified version of Peters "Tiny Ben" demo code to move the altimeters needles over the background screen without disturbing anything... I modified the PCB like Peter did to connect the RD pin and need to change the code to use 10 revolutions instead of 12... Maybe change the look of the needles... Still trying to understand all the usable functions inside the display driver... there could be more questions along the way... (fun stuff)..!!

Thanks again Peter for all the fine work you have done..!


 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 09:35pm 01 Jul 2016
Copy link to clipboard 
Print this post

@Zonker

I like your ALT gauge graphic you have there - looks very realistic from the photo

Would be good to see that working smoothly with a moving pointer and changing number.

Do keep us updated . . . .

PS - Can you link to your TFT source please! Cheers
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 02:12am 02 Jul 2016
Copy link to clipboard 
Print this post

Hey WW...

Yep... I got them from AliExpress ... The price was better than the E-bay source with delivery times about the same... Will get an update posted as soon as i get all the code strung together..
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 158
Posted: 03:26am 04 Jul 2016
Copy link to clipboard 
Print this post

Hmmm. Looks like they are no longer available. Seller is instead offering 2.0", 220x220 LCDs with R61505 chips at almost double the price.

Bill
Bill
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 02:14am 07 Jul 2016
Copy link to clipboard 
Print this post

Hey Gang...

Just an update for the ALT gauge.. The code is still very much in prototype stage, as I need to add a user interface to change the the current displayed altitude.. Currently I am using just 3 buttons to change things, but still waiting for the push button encoders to come in... the code currently changes the QNH number to effect the display...

A big tip of the hat goes to Peter M. for creating the code that makes this thing work..! He also updated the R61505V display driver code that uses the RD pin on the display that allows the needles to not disturb the gauge face.. I will be re doing the PCB's after more parts arrive... Hopefully I can group the code together and will end up with a unit that will cover 2 channels of temps (EGT,CHT,OIL,OAT) ect.. as well as a voltmeter and Altimeter... Still working on getting an RPM and Airspeed into the mix as well... Fun stuff..!! Attached the proto code if interested....

2016-07-07_121244_ALT_Gauge_test_program.zip
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 02:40am 07 Jul 2016
Copy link to clipboard 
Print this post

That looks so neat - great work there by both Peter and your goodself!

Next week I am planning on ordering various TFTs for selling on the mm.org website. I would very much like to use a photo/video of your meter if that is ok. Two Q's, do you know who manufactures these round TFTs? And what is the viewing angle like on this particular TFT you are using (guesstimate of horizontal & vertical angle before 'drastic' colour change is good enough).

Nice USB module by the way

WW


For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
mikeb

Senior Member

Joined: 10/04/2016
Location: Australia
Posts: 173
Posted: 05:16pm 07 Jul 2016
Copy link to clipboard 
Print this post

@WW
4D Systems do this type of display. Fairly 'pricey' though.

Round Display
There are 10 kinds of people in the world.
Those that understand binary and those that don't.
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 06:18pm 07 Jul 2016
Copy link to clipboard 
Print this post

@WW...
Just got done looking at the display while running and I think it's awesome...
It is the brightest looking directly at it (well yea)... But the brightness doesn't even start to drop off until about 40 degrees..! The Color does not change no mater what angle (top,bottom or sides) you look at it..! The image displayed can still be seen all the way to about 80 degrees.. I was very impressed..! BTW- I can take a "close-up" shot(s) if needed... I would love it if you wold make these PCB's..!!

As far as price, I was getting them from AliExpress for $3.68 + shipping, so I bought 10 the last time... I read that someone said they were $9 ?? Not sure about that.. I think they can be had on E-bay as well.. (for more money)

@MikeB...

I did see the unit from 4-D, but I agree... To much money... They do have the fancy "Cool Gauge" object you could use, but it's just not configurable enough to match everything I wanted to do with it... Thanks to Peter, we can have what we need AND at a good price point that makes sense..!! Edited by Zonker 2016-07-09
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 10:29pm 07 Jul 2016
Copy link to clipboard 
Print this post

  Quote  I am planning on ordering various TFTs for selling on the mm.org website.


The problem with the round TFTs is that they are not available on any sort of carrier PCB. Zonker and Kiiid have both developed custom PCBs to take the displays and both have let me have one in order to develop/test the driver. Kiiid's PCB uses the 64-pin Micromite+ but is very application specific. Zonker's PCB is much more of a general purpose breakout and uses the 44-pin Micromite. If this TFT is of general interest then it would be worth twisting Zonker's arm to get access to the gerbers to get the PCBs fabricated.
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 07:55am 08 Jul 2016
Copy link to clipboard 
Print this post

No arm twisting will be necessary... I kinda thought that there wasn't to much interest in the rounder, but I liked it because of the gauge like use it has... I just wish there were bigger displays of this type... Anyway, currently, I am spinning up a PCB for Lou for his redesign of his PEMF therapeutic magnetic field generator based on the 44 pinner... After that is completed, I will indeed be re doing the display engine PCB... Peter suggested some changes, like adding an SD card, but so far I haven't got much other feedback.. I would still like to add a very small light sensor to control backlight dimming.. Of course, I will be adding the RD pin to support Peter's new driver code... Any other add on ideas..?? I am all ear's..

The display PCB, as well as the interface board was done in DEX, so posting the entire project back to this fine forum is fine by me..! You fine Gent's have given me so much awesome stuff to use and think about..! None of the projects I am doing (or thinking about) would have been possible without the foundation work done by Geoff and many of the awesome minds here on TBS..!

As much as I like the many display adapter boards that are available to prototype with, I think I would like to create several more PCB's that contain the different classes of LCD displays, but with the MM motors on the back side to have a single board that is ready to "drop-in" to any project..! So, I think we should do some thinking on this and maybe try to "pick-3" to do first... So what is the most used type of display engine used so far..? What would be included on the PCB to make it the most useful to as many of us as possible..?? (feedback needed here)

Hey, I am just functioning as a PCB lackey here, but I want to invest more of my time to further along this awesome programming platform we have..!! When the rest of the planet catches on to what has been done here, it will spread like wild-fire..!

And it's because MMBasic is making powerful programming easy to do, and at a low cost to get started... Easy Peasy..!!

THANK YOU TBS..!!Edited by Zonker 2016-07-09
 
palcal

Guru

Joined: 12/10/2011
Location: Australia
Posts: 1804
Posted: 11:12am 08 Jul 2016
Copy link to clipboard 
Print this post

I was also thinking about building a PEMF device but after some research gave up.
read thisMagnetic Therapy
Paul.
"It is better to be ignorant and ask a stupid question than to be plain Stupid and not ask at all"
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 01:43am 07 Aug 2016
Copy link to clipboard 
Print this post

Attached bug fix for use on 4.3" SSD1963 displays and use at CPU 120

64-pin

CFunction triangles '64-pin
00000286
'defineregion
3C029D00 8C430090 24081000 3C02BF88 AC486134 80620015 2489FFFF 24A8FFFF
01264821 24060001 10460004 01074021 24060003 54460005 80630014 00805821
01205021 10000013 01002021 24020001 14620009 3C029D00 8C420094 01005021
00A05821 8C480000 2508FFFF 01092823 10000008 01042023 8C420094 01005821
00A05021 8C480000 2508FFFF 01092823 01042023 000B6202 000A4A02 3C02BF88
24030800 24061000 00054202 00043A02 35291800 358C1800 356B1800 240D022A
AC4D6430 354A1800 AC436134 35081800 AC436138 34A51800 AC466138 34E71800
AC4C6430 34841800 AC436134 AC436138 AC4B6430 AC436134 AC436138 AC496430
2409022B AC436134 AC436138 AC4A6430 AC436134 AC436138 AC466134 AC496430
AC436134 AC436138 AC466138 AC486430 AC436134 AC436138 AC456430 AC436134
AC436138 AC476430 AC436134 AC436138 AC446430 AC436134 AC436138 03E00008
00000000
'writeRectangle
27BDFFD8 AFB40020 AFB3001C 00C0A021 00E09821 72749802 AFB00010 8FB00038
AFB20018 AFB10014 00109403 00108A03 AFBF0024 0411FF99 00000000 3C02BF88
24031000 24040800 2405022C AC436134 36521800 AC456430 36311800 AC446134
36101800 AC446138 AC436138 1260000F 2673FFFF 24030800 2404FFFF 2673FFFF
AC526430 AC436134 AC436138 AC516430 AC436134 AC436138 AC506430 AC436134
AC436138 1664FFF6 2673FFFF 8FBF0024 8FB40020 8FB3001C 8FB20018 8FB10014
8FB00010 03E00008 27BD0028
'ReadRectangle
27BDFFC8 AFBF0034 AFBE0030 AFB7002C AFB60028 AFB50024 AFB40020 AFB3001C
AFB20018 3C139D00 AFB10014 AFB00010 8E630090 0080B021 8E620028 8064002D
00C0A821 00E0F021 00A0B821 0040F809 8FB10048 8E640090 8E630024 24050006
8084002D 24100001 0060F809 00508004 8E630090 00409021 8E620024 8064002D
24050005 0040F809 0015A040 0295A021 00409821 729E1002 02C02021 02E02821
02A03021 03C03821 0051A021 0411FF48 00000000 3C04BF88 24051000 AC856134
8FA2004C 24060800 2403022E AC836430 AC866134 AC866138 AC856138 240500FF
00511021 3C03BF88 AC85641C 00000000 00000000 00000000 AE700000 00000000
00000000 00000000 00000000 AE500000 00000000 00000000 00000000 00000000
00000000 8C646420 A0440000 AE700000 00000000 00000000 00000000 00000000
AE500000 00000000 00000000 00000000 00000000 00000000 8C646420 A0440001
AE700000 00000000 00000000 00000000 00000000 AE500000 00000000 00000000
00000000 00000000 00000000 8C656420 26310003 0234202B A0450002 1480FFD3
24420003 3C02BF88 240300FF AC43641C 8FBF0034 02201021 8FBE0030 8FB7002C
8FB60028 8FB50024 8FB40020 8FB3001C 8FB20018 8FB10014 8FB00010 03E00008
27BD0038
'RestoreRectangle
27BDFFE0 AFB20018 AFB10014 00C09021 00E08821 72328802 AFB00010 AFBF001C
8FB00030 0411FEF1 00000000 3C02BF88 24031000 24040800 2405022C AC436134
AC456430 AC446134 AC446138 AC436138 1220001D 2631FFFF 8FA40034 02202821
00902021 24030800 2407FFFF 80860000 24A5FFFF 34C61800 AC466430 AC436134
AC436138 80860001 34C61800 AC466430 AC436134 AC436138 80860002 24840003
34C61800 AC466430 AC436134 AC436138 54A7FFEF 80860000 00111040 26100003
00518821 02118021 8FBF001C 02001021 8FB20018 8FB10014 8FB00010 03E00008
27BD0020
'triangles
27BDFFA8 AFB20038 8FA3006C 00809021 8FA40074 AFBE0050 AFB7004C 0083102A
AFB3003C AFB10034 AFBF0054 AFB60048 AFB50044 AFB40040 AFB00030 00A09821
00C0B821 AFA70064 8FB10068 10400006 8FBE007C 02201021 AFA4006C 8FB10070
AFA30074 AFA20070 8FA30074 03C3102A 10400009 8FA6006C 8FA20070 8FA40078
AFBE0074 AFA20078 AFA40070 0060F021 8FA6006C 8FA30074 0066102A 50400008
8FA6006C 8FA40074 02201021 AFA60074 8FB10070 AFA4006C AFA20070 8FA6006C
14DE0036 8FA30074 8FA30070 0071102A 14400006 02203821 0223102A 10400005
8FA40078 10000002 8FA70070 8FB10070 8FA40078 0091102A 54400003 8FB10078
00E4102A 0082380B 1640000C 24020001 8FA5006C 24E70001 02202021 24060001
00F13823 AFB30010 AFB70014 0411FF02 00000000 100000B0 00409821 1642000C
8FA20064 8FA5006C 24E70001 02202021 24060001 00F13823 AFB30010 AFB70014
0411FF6E 00000000 100000A3 00409821 8FA5006C 24E70001 02202021 24060001
00F13823 AFA20010 AFB70014 0411FEB7 00000000 10000099 8FBF0054 8FA4006C
007E1026 0002102B 00621023 AFA20020 0044102A 14400044 00808021 8FA60070
8FA20078 00641823 00D13023 00511023 03C42023 AFA60024 AFA20028 0000A021
0000A821 AFA30018 AFA4001C 24160001 8FA40018 8FA6001C 02002821 02A4001A
008001F4 02C03821 00001012 00511021 0286001A 00C001F4 00001812 00711821
0062302A 10C00003 00402021 00601021 00801821 24660001 00402021 16400009
00C23023 02002821 02C03821 AFB30010 AFB70014 0411FEB8 00000000 10000012
00409821 5656000C 8FA20064 24630001 00402021 02002821 00623023 02C03821
AFB30010 AFB70014 0411FF24 00000000 10000005 00409821 AFB70014 AFA20010
0411FE72 00000000 8FA30020 8FA40024 8FA60028 26100001 0070102A 02A4A821
1040FFCB 0286A021 03D0102A 1440004A 8FA30070 8FA20078 8FA40074 8FA60078
00431023 AFA20024 8FA2006C 0204A023 00D13023 0202A823 8FA20024 70D5A802
03C41823 8FA4006C AFA60020 AFA30018 03C42023 AFA4001C 24160001 7054A002
8FA40018 8FA6001C 02002821 0284001A 008001F4 8FA40070 02C03821 00001012
00441021 02A6001A 00C001F4 00001812 00711821 0062202A 10800003 00403021
00601021 00C01821 24660001 00402021 16400009 00C23023 02002821 02C03821
AFB30010 AFB70014 0411FE6B 00000000 10000012 00409821 5656000C 8FA20064
24630001 00402021 02002821 00623023 02C03821 AFB30010 AFB70014 0411FED7
00000000 10000005 00409821 AFB70014 AFA20010 0411FE25 00000000 8FA30024
8FA40020 26100001 03D0102A 0283A021 1040FFCB 02A4A821 8FBF0054 02601021
8FBE0050 8FB7004C 8FB60048 8FB50044 8FB40040 8FB3003C 8FB20038 8FB10034
8FB00030 03E00008 27BD0058
'gettearscanline
27BDFFE0 AFBF001C AFB20018 AFB10014 AFB00010 3C109D00 8E030090 8E020028
0040F809 8064002D 8E030090 00409021 8E020024 8064002D 0040F809 24050006
8E030090 00408821 8E020024 8064002D 0040F809 24050005 24040001 3C03BF88
02449004 24061000 24070800 240500FF 24080245 AC666134 3C04BF81 AC686430
AC676134 AC676138 AC666138 AC65641C AC520000 8C86F220 8C86F220 8C86F220
8C86F220 AE320000 8C666420 AC520000 8C82F220 8C82F220 8C82F220 8C82F220
AE320000 8C626420 AC65641C 8FBF001C 30C400FF 00042200 304200FF 00821025
8FB20018 8FB10014 8FB00010 03E00008 27BD0020
'main
27BDFFB0 AFBE0048 AFB70044 AFB60040 AFB5003C AFB40038 AFB1002C AFBF004C
AFB30034 AFB20030 AFB00028 3C029D00 8C420090 24030001 00808821 80420014
00A0A821 AFA60058 00E0A021 8FBE0068 8FB7006C 10430011 8FB60070 0411FFAB
00000000 2442FE70 2C42000A 1040FFFB 00000000 8E220000 18400034 00008021
8FA20058 8C440004 0480000C 8C470000 00008021 100000A2 00001821 0411FF9B
00000000 2442FF10 2C42000A 1040FFFB 00000000 1000FFF0 8E220000 8FB20058
00001821 00001021 00008021 8FA40060 8FA50064 02834821 00834021 00A33021
02E32021 03C32821 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000
8C630000 24040001 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018
AFA9001C AFA80020 0411FE6D 00000000 8E240000 26100001 0204202A 14800005
001018C0 1000002F 00001021 1000002D 00001021 8E44000C 8E470008 0480FFDB
26520008 8FA40058 001018C0 00831021 8C440004 8C470000 04810069 00001021
10000021 8E230000 8FA50060 8FA40064 02834821 00A34021 00833021 03C32821
02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000 8C630000
00002021 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018 AFA9001C
AFA80020 0411FE3E 00000000 8E240000 8FA50058 26730001 0264202A 1480000D
00B21821 8E230000 0203182A 10600036 8FA40058 001018C0 00832821 8CA40004
04800031 8CA70000 26120001 10000008 001290C0 8C640004 26450008 0480FFF1
8C670000 02401821 1000FFCF 00A09021 8FA50060 8FA40064 02834821 00A34021
00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000
8C880000 8C630000 24040002 00402821 02A03021 AFA30024 AFAC0010 AFAB0014
AFAA0018 AFA9001C AFA80020 0411FE0C 00000000 8E240000 8FA50058 26100001
0204202A 10800008 00B21821 8C640004 26450008 04800004 8C670000 02401821
1000FFDB 00A09021 8FBF004C 00021FC3 8FBE0048 000210C3 8FB70044 8FB60040
8FB5003C 8FB40038 8FB30034 8FB20030 8FB1002C 8FB00028 03E00008 27BD0050
26120001 001290C0 02009821 1000FF96 00001021
End CFunction


100-pin

CFunction triangles '100-pin
00000286
'defineregion
3C029D00 8C430090 24080100 3C02BF88 AC486434 80620015 2489FFFF 24A8FFFF
01264821 24060001 10460004 01074021 24060003 54460005 80630014 00805821
01205021 10000013 01002021 24020001 14620009 3C029D00 8C420094 01005021
00A05821 8C480000 2508FFFF 01092823 10000008 01042023 8C420094 01005821
00A05021 8C480000 2508FFFF 01092823 01042023 000B6202 000A4A02 3C02BF88
24030200 24060100 00054202 00043A02 35290300 358C0300 356B0300 240D022A
AC4D6430 354A0300 AC436434 35080300 AC436438 34A50300 AC466438 34E70300
AC4C6430 34840300 AC436434 AC436438 AC4B6430 AC436434 AC436438 AC496430
2409022B AC436434 AC436438 AC4A6430 AC436434 AC436438 AC466434 AC496430
AC436434 AC436438 AC466438 AC486430 AC436434 AC436438 AC456430 AC436434
AC436438 AC476430 AC436434 AC436438 AC446430 AC436434 AC436438 03E00008
00000000
'writeRectangle
27BDFFD8 AFB40020 AFB3001C 00C0A021 00E09821 72749802 AFB00010 8FB00038
AFB20018 AFB10014 00109403 00108A03 AFBF0024 0411FF99 00000000 3C02BF88
24030100 24040200 2405022C AC436434 36520300 AC456430 36310300 AC446434
36100300 AC446438 AC436438 1260000F 2673FFFF 24030200 2404FFFF 2673FFFF
AC526430 AC436434 AC436438 AC516430 AC436434 AC436438 AC506430 AC436434
AC436438 1664FFF6 2673FFFF 8FBF0024 8FB40020 8FB3001C 8FB20018 8FB10014
8FB00010 03E00008 27BD0028
'ReadRectangle
27BDFFC8 AFBF0034 AFBE0030 AFB7002C AFB60028 AFB50024 AFB40020 AFB3001C
AFB20018 3C139D00 AFB10014 AFB00010 8E630090 0080B021 8E620028 8064002D
00C0A821 00E0F021 00A0B821 0040F809 8FB10048 8E640090 8E630024 24050006
8084002D 24100001 0060F809 00508004 8E630090 00409021 8E620024 8064002D
24050005 0040F809 0015A040 0295A021 00409821 729E1002 02C02021 02E02821
02A03021 03C03821 0051A021 0411FF48 00000000 3C04BF88 24050100 AC856434
8FA2004C 24060200 2403022E AC836430 AC866434 AC866438 AC856438 240500FF
00511021 3C03BF88 AC85641C 00000000 00000000 00000000 AE700000 00000000
00000000 00000000 00000000 AE500000 00000000 00000000 00000000 00000000
00000000 8C646420 A0440000 AE700000 00000000 00000000 00000000 00000000
AE500000 00000000 00000000 00000000 00000000 00000000 8C646420 A0440001
AE700000 00000000 00000000 00000000 00000000 AE500000 00000000 00000000
00000000 00000000 00000000 8C656420 26310003 0234202B A0450002 1480FFD3
24420003 3C02BF88 240300FF AC43641C 8FBF0034 02201021 8FBE0030 8FB7002C
8FB60028 8FB50024 8FB40020 8FB3001C 8FB20018 8FB10014 8FB00010 03E00008
27BD0038
'RestoreRectangle
27BDFFE0 AFB20018 AFB10014 00C09021 00E08821 72328802 AFB00010 AFBF001C
8FB00030 0411FEF1 00000000 3C02BF88 24030100 24040200 2405022C AC436434
AC456430 AC446434 AC446438 AC436438 1220001D 2631FFFF 8FA40034 02202821
00902021 24030200 2407FFFF 80860000 24A5FFFF 34C60300 AC466430 AC436434
AC436438 80860001 34C60300 AC466430 AC436434 AC436438 80860002 24840003
34C60300 AC466430 AC436434 AC436438 54A7FFEF 80860000 00111040 26100003
00518821 02118021 8FBF001C 02001021 8FB20018 8FB10014 8FB00010 03E00008
27BD0020
'triangles
27BDFFA8 AFB20038 8FA3006C 00809021 8FA40074 AFBE0050 AFB7004C 0083102A
AFB3003C AFB10034 AFBF0054 AFB60048 AFB50044 AFB40040 AFB00030 00A09821
00C0B821 AFA70064 8FB10068 10400006 8FBE007C 02201021 AFA4006C 8FB10070
AFA30074 AFA20070 8FA30074 03C3102A 10400009 8FA6006C 8FA20070 8FA40078
AFBE0074 AFA20078 AFA40070 0060F021 8FA6006C 8FA30074 0066102A 50400008
8FA6006C 8FA40074 02201021 AFA60074 8FB10070 AFA4006C AFA20070 8FA6006C
14DE0036 8FA30074 8FA30070 0071102A 14400006 02203821 0223102A 10400005
8FA40078 10000002 8FA70070 8FB10070 8FA40078 0091102A 54400003 8FB10078
00E4102A 0082380B 1640000C 24020001 8FA5006C 24E70001 02202021 24060001
00F13823 AFB30010 AFB70014 0411FF02 00000000 100000B0 00409821 1642000C
8FA20064 8FA5006C 24E70001 02202021 24060001 00F13823 AFB30010 AFB70014
0411FF6E 00000000 100000A3 00409821 8FA5006C 24E70001 02202021 24060001
00F13823 AFA20010 AFB70014 0411FEB7 00000000 10000099 8FBF0054 8FA4006C
007E1026 0002102B 00621023 AFA20020 0044102A 14400044 00808021 8FA60070
8FA20078 00641823 00D13023 00511023 03C42023 AFA60024 AFA20028 0000A021
0000A821 AFA30018 AFA4001C 24160001 8FA40018 8FA6001C 02002821 02A4001A
008001F4 02C03821 00001012 00511021 0286001A 00C001F4 00001812 00711821
0062302A 10C00003 00402021 00601021 00801821 24660001 00402021 16400009
00C23023 02002821 02C03821 AFB30010 AFB70014 0411FEB8 00000000 10000012
00409821 5656000C 8FA20064 24630001 00402021 02002821 00623023 02C03821
AFB30010 AFB70014 0411FF24 00000000 10000005 00409821 AFB70014 AFA20010
0411FE72 00000000 8FA30020 8FA40024 8FA60028 26100001 0070102A 02A4A821
1040FFCB 0286A021 03D0102A 1440004A 8FA30070 8FA20078 8FA40074 8FA60078
00431023 AFA20024 8FA2006C 0204A023 00D13023 0202A823 8FA20024 70D5A802
03C41823 8FA4006C AFA60020 AFA30018 03C42023 AFA4001C 24160001 7054A002
8FA40018 8FA6001C 02002821 0284001A 008001F4 8FA40070 02C03821 00001012
00441021 02A6001A 00C001F4 00001812 00711821 0062202A 10800003 00403021
00601021 00C01821 24660001 00402021 16400009 00C23023 02002821 02C03821
AFB30010 AFB70014 0411FE6B 00000000 10000012 00409821 5656000C 8FA20064
24630001 00402021 02002821 00623023 02C03821 AFB30010 AFB70014 0411FED7
00000000 10000005 00409821 AFB70014 AFA20010 0411FE25 00000000 8FA30024
8FA40020 26100001 03D0102A 0283A021 1040FFCB 02A4A821 8FBF0054 02601021
8FBE0050 8FB7004C 8FB60048 8FB50044 8FB40040 8FB3003C 8FB20038 8FB10034
8FB00030 03E00008 27BD0058
'gettearscanline
27BDFFE0 AFBF001C AFB20018 AFB10014 AFB00010 3C109D00 8E030090 8E020028
0040F809 8064002D 8E030090 00409021 8E020024 8064002D 0040F809 24050006
8E030090 00408821 8E020024 8064002D 0040F809 24050005 24040001 3C03BF88
02449004 24060100 24070200 240500FF 24080245 AC666434 3C04BF81 AC686430
AC676434 AC676438 AC666438 AC65641C AC520000 8C86F220 8C86F220 8C86F220
8C86F220 AE320000 8C666420 AC520000 8C82F220 8C82F220 8C82F220 8C82F220
AE320000 8C626420 AC65641C 8FBF001C 30C400FF 00042200 304200FF 00821025
8FB20018 8FB10014 8FB00010 03E00008 27BD0020
'main
27BDFFB0 AFBE0048 AFB70044 AFB60040 AFB5003C AFB40038 AFB1002C AFBF004C
AFB30034 AFB20030 AFB00028 3C029D00 8C420090 24030001 00808821 80420014
00A0A821 AFA60058 00E0A021 8FBE0068 8FB7006C 10430011 8FB60070 0411FFAB
00000000 2442FE70 2C42000A 1040FFFB 00000000 8E220000 18400034 00008021
8FA20058 8C440004 0480000C 8C470000 00008021 100000A2 00001821 0411FF9B
00000000 2442FF10 2C42000A 1040FFFB 00000000 1000FFF0 8E220000 8FB20058
00001821 00001021 00008021 8FA40060 8FA50064 02834821 00834021 00A33021
02E32021 03C32821 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000
8C630000 24040001 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018
AFA9001C AFA80020 0411FE6D 00000000 8E240000 26100001 0204202A 14800005
001018C0 1000002F 00001021 1000002D 00001021 8E44000C 8E470008 0480FFDB
26520008 8FA40058 001018C0 00831021 8C440004 8C470000 04810069 00001021
10000021 8E230000 8FA50060 8FA40064 02834821 00A34021 00833021 03C32821
02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000 8C880000 8C630000
00002021 00402821 02A03021 AFA30024 AFAC0010 AFAB0014 AFAA0018 AFA9001C
AFA80020 0411FE3E 00000000 8E240000 8FA50058 26730001 0264202A 1480000D
00B21821 8E230000 0203182A 10600036 8FA40058 001018C0 00832821 8CA40004
04800031 8CA70000 26120001 10000008 001290C0 8C640004 26450008 0480FFF1
8C670000 02401821 1000FFCF 00A09021 8FA50060 8FA40064 02834821 00A34021
00833021 03C32821 02E32021 02C31821 8D2C0000 8D0B0000 8CCA0000 8CA90000
8C880000 8C630000 24040002 00402821 02A03021 AFA30024 AFAC0010 AFAB0014
AFAA0018 AFA9001C AFA80020 0411FE0C 00000000 8E240000 8FA50058 26100001
0204202A 10800008 00B21821 8C640004 26450008 04800004 8C670000 02401821
1000FFDB 00A09021 8FBF004C 00021FC3 8FBE0048 000210C3 8FB70044 8FB60040
8FB5003C 8FB40038 8FB30034 8FB20030 8FB1002C 8FB00028 03E00008 27BD0050
26120001 001290C0 02009821 1000FF96 00001021
End CFunction
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 12:13am 08 Aug 2016
Copy link to clipboard 
Print this post

Thank you very much Peter for the driver updates..! As soon as the new Grogster E-100 board arrives, I will spend some time on the on your test program.. Looks awesome..!

I have also sent the "rev B" round gauge board out to get 15 made that include the RD pin changes... Attached are the updated files if anyone is interested...

2016-08-08_101308_EIS_Round_Gauge_MPU_Rev_B.zip
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 158
Posted: 01:05pm 08 Aug 2016
Copy link to clipboard 
Print this post

and has anybody found another supplier of the round LCD? Zonker's nominated supplier no longer stocks them in that size and resolution.

Bill
 
Zonker

Guru

Joined: 18/08/2012
Location: United States
Posts: 761
Posted: 02:56pm 08 Aug 2016
Copy link to clipboard 
Print this post

Yep... I found them on AliExpress and E-Bay BUT... Compared to the earlier price of less than $4.00, the new prices really SUCK..!!

"Zonker NOT happy"

Not sure what to say about all this.... Will keep searching...

EDIT: - Also at Alibaba but no price on them.. Selling in lots of ten... I have a quote in for 100...Edited by Zonker 2016-08-10
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 158
Posted: 06:28pm 08 Aug 2016
Copy link to clipboard 
Print this post

They are all 1.38", compared to the 2.2" you have now. Getting a bit on the small size for me.
Bill
 
     Page 1 of 2    
Print this page
© JAQ Software 2024