{"id":304,"date":"2009-07-28T13:18:03","date_gmt":"2009-07-28T12:18:03","guid":{"rendered":"http:\/\/www.evertdekker.com\/wp\/?p=304"},"modified":"2023-01-03T15:45:41","modified_gmt":"2023-01-03T14:45:41","slug":"siemens-s65-colordisplay","status":"publish","type":"post","link":"https:\/\/evertdekker.com\/wp\/?p=304","title":{"rendered":"Siemens S65 Colordisplay"},"content":{"rendered":"<hr \/>\n<div class=\"n2_ss_slider_publish__option_code\" dir=\"ltr\" data-mode=\"id\"><\/div>\n<p>&nbsp;<\/p>\n<p>The Siemens S65 display with an resolution of 132&#215;176 pixels is a very nice display, it&#8217;s bigger and clearer then the Nokia 128&#215;128 display. It&#8217;s consumes less power then the Nokia.<br \/>\nSignal levels are at 3V so some level converter is needed when connecting to an 5V Avr. Nice <a href=\"http:\/\/www.mikrocontroller.net\/attachment\/10922\/Using_the_Siemens_S65.pdf\" target=\"_blank\" rel=\"noopener\">schematic sample<\/a> .<br \/>\nThese routines are written for S65 display with the LS020 controller, other controllers are not supported.<br \/>\nDisplay can be used in landscape or portrait mode by changing the\u00a0 <b>Const Landscape = 0<\/b>.<br \/>\nTo keep the display compatible with Bascom&#8217;s BGC created with lcdconvert.exe and font files created with the font editor, it&#8217;s will switch to 8bit mode after init. This will result in 256 color&#8217;s.<\/p>\n<p><div class=\"sdm_download_button_box_default\"><div class=\"sdm_download_link\"><a href=\"https:\/\/evertdekker.com\/wp\/?sdm_process_download=1&download_id=307\" class=\"sdm_download darkblue\" title=\"Siemens S65 Colordisplay\" >Download Now!<\/a><\/div><\/div> <div class=\"sdm_download_count\"><span class=\"sdm_count_number\">3148<\/span><span class=\"sdm_count_string\"> Downloads<\/span><\/div><\/p>\n<hr \/>\n<h4><\/h4>\n<h4>Syntax<\/h4>\n<p><span style=\"color: #3366ff;\">Lcdtext<\/span> string, x , y , fontset , forecolor , backcolor<\/p>\n<h4>Remarks<\/h4>\n<table class=\"alignleft\" style=\"border-color: #000000;\" border=\"2\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td>\u00a0String<\/td>\n<td>\u00a0String to be displayd<\/td>\n<\/tr>\n<tr>\n<td>\u00a0x<\/td>\n<td>\u00a0Constant or variable with x position.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0y<\/td>\n<td>\u00a0Constant or variable with y position.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0fontset<\/td>\n<td>\u00a0Fontset to be used to display the text<\/td>\n<\/tr>\n<tr>\n<td>\u00a0Forecolor<\/td>\n<td>\u00a0RRRGGGBB<\/td>\n<\/tr>\n<tr>\n<td>\u00a0Backcolor<\/td>\n<td>\u00a0RRRGGGBB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>This will show text on the lcd. It uses the Bascom FONT files for compatibility.<br \/>\nTo add or remove fontsets modify these lines in the subroutine;<\/p>\n<p><strong>If<\/strong> Fontset = 1 <strong>Then<\/strong> <strong>Restore<\/strong> Font8x8<br \/>\n<strong>If<\/strong> Fontset = 2 <strong>Then<\/strong> <strong>Restore<\/strong> Font16x16<br \/>\n<strong>If<\/strong> Fontset = 3 <strong>Then<\/strong> <strong>Restore<\/strong> Font6x8<br \/>\n<strong>If<\/strong> Fontset = 4 <strong>Then<\/strong> <strong>Restore<\/strong> Font5x5<\/p>\n<p>Sorry, but there was no better solution.<br \/>\nThese are the name\u2019s that you gave to the font, NOT the filename if you don\u2019t know the font name, open the font file in the font editor, and there it is, right on top.<br \/>\nDon\u2019t forget to $Include your font files at the end of the program.<\/p>\n<p>&nbsp;<\/p>\n<h4>Syntax<\/h4>\n<p><span style=\"color: #3366ff;\">S65_showpicture<\/span>\u00a0 x , y<\/p>\n<h4>Remarks<\/h4>\n<table class=\"alignleft\" style=\"border-color: #000000;\" border=\"2\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td>\u00a0x<\/td>\n<td>\u00a0Constant or variable with x position.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0y<\/td>\n<td>\u00a0Constant or variable with y position.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>This will show an Bascom color BGC (Bascom graphic color) on the lcd.<br \/>\nDon&#8217;t forget to first RESTORE the image name, see the sample.<\/p>\n<p>&nbsp;<\/p>\n<h4>Syntax<\/h4>\n<p><span style=\"color: #3366ff;\">S65_line<\/span>\u00a0 x1, y1 , x2 , y2 , color<\/p>\n<h4>Remarks<\/h4>\n<table class=\"alignleft\" style=\"border-color: #000000;\" border=\"2\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td>\u00a0x1<\/td>\n<td>\u00a0Starting horizontal location of the line.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0y1<\/td>\n<td>\u00a0Starting vertical location of the line.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0x2<\/td>\n<td>\u00a0Horizontal end location of the line.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0y2<\/td>\n<td>\u00a0Vertical end location of the line.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0color<\/td>\n<td>\u00a0RRRGGGBB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Draws a line on the lcd.<\/p>\n<p>&nbsp;<\/p>\n<h4>Syntax<\/h4>\n<p><span style=\"color: #3366ff;\">S65_pset<\/span>\u00a0 x, y , color<\/p>\n<h4>Remarks<\/h4>\n<table class=\"alignleft\" style=\"border-color: #000000;\" border=\"2\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td>\u00a0x<\/td>\n<td>\u00a0The x location.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0y<\/td>\n<td>\u00a0The y location.<\/td>\n<\/tr>\n<tr>\n<td>\u00a0color<\/td>\n<td>\u00a0RRRGGGBB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Set a pixel on the lcd.<\/p>\n<p>&nbsp;<\/p>\n<h4>Syntax<\/h4>\n<p><span style=\"color: #3366ff;\">S65_cls<\/span>\u00a0 backcolor<\/p>\n<h4>Remarks<\/h4>\n<table class=\"alignleft\" style=\"border-color: #000000;\" border=\"2\" cellspacing=\"2\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td>\u00a0backcolor<\/td>\n<td>\u00a0RRRGGGBB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Clears the lcd in an specified color.<\/p>\n<p>&nbsp;<\/p>\n<p>Example code:<\/p>\n<pre class=\"brush: vb; gutter: true\"> &#039;===================================================================================\r\n&#039;=                 Siemens S65 display routines for LS020 controller                             =\r\n&#039;= Special thanks to Dirk Milewski www.comwebnet.de who&#039;s routines i have used to get me going.  =\r\n&#039;=                Copyright, not for private use. by Evert Dekker 2009.                          =\r\n&#039;=                   Written and tested with Bascom version 1.11.9.3                             =\r\n&#039;===================================================================================\r\n$hwstack = 100\r\n$swstack = 100\r\n$framesize = 100\r\n\r\n$regfile = &quot;m128def.Dat&quot;\r\n$crystal = 16000000\r\n$baud = 19200\r\n\r\n\r\n\r\n&#039;=== Config the hardware ===\r\nRs Alias Porta.1                                            &#039;S65 Data\/command pin\r\nRes Alias Porta.5                                           &#039;S65 Reset pin\r\nCs Alias Porta.3                                            &#039;S65 Chip Select pin\r\nClk Alias Portb.1                                           &#039;S65 Clock pin\r\nDat Alias Portb.2                                           &#039;S65 Data pin\r\n\r\nConfig Rs = Output\r\nConfig Dat = Output\r\nConfig Cs = Output\r\nConfig Clk = Output\r\nConfig Res = Output\r\n\r\nConfig Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128\r\n\r\n&#039;=== Define the constante ===\r\nConst Blue = &amp;B00000011                                     &#039;8bit color  RRRGGGBB\r\nConst Yellow = &amp;B11111100\r\nConst Red = &amp;B11100000\r\nConst Green = &amp;B00011100\r\nConst Black = &amp;B00000000\r\nConst White = &amp;B11111111\r\nConst Brightgreen = &amp;B00111110\r\nConst Darkgreen = &amp;B00010100\r\nConst Darkred = &amp;B10100000\r\nConst Darkblue = &amp;B00000010\r\nConst Brightblue = &amp;B00011111\r\nConst Orange = &amp;B11111000\r\n\r\nConst Displaysize_x = 176\r\nConst Displaysize_y = 132\r\nConst Total_pixels = Displaysize_x * Displaysize_y\r\nConst Landscape = 0                                         &#039;Change to 0 if you want to use the display in portrait\r\n\r\n\r\nDeclare Sub S65_init()\r\nDeclare Sub S65_pset(byval Lx As Byte , Byval Ly As Byte , Byval Color As Byte)\r\nDeclare Sub S65_line(byval Lx1 As Byte , Byval Ly1 As Byte , Byval Lx2 As Byte , Byval Ly2 As Byte , Byval Color As Byte)\r\nDeclare Sub S65_cls(byval Backcolor As Byte)\r\nDeclare Sub Lcdtext(byval S As String , Byval Xoffset As Byte , Byval Yoffset As Byte , Byval Fontset As Byte , Byval Forecolor As Byte , Byval Backcolor As Byte )\r\nDeclare Sub S65_cmdw(byval Cmd As Word)\r\nDeclare Sub S65_showpicture(byval Xoffset As Byte , Byval Yoffset As Byte)\r\n\r\n\r\n&#039;=== Main prog ===\r\nS65_init                                                    &#039;First thing to do, init the display\r\nS65_cls White                                               &#039;Clear the display with white background\r\n\r\nDo\r\nLcdtext &quot;Hello world&quot; , 10 , 1 , 1 , Red , White\r\nLcdtext &quot;SIEMENS&quot; , 10 , 12 , 1 , White , Green\r\nLcdtext &quot;S-65&quot; , 10 , 23 , 2 , Blue , White\r\nLcdtext &quot;By Evert Dekker 2009&quot; , 20 , 50 , 4 , Black , White\r\nLcdtext &quot;Landscape &amp; portrait mode&quot; , 5 , 60 , 4 , Black , White\r\n\r\n \r\nRestore Plaatje                                             &#039;FIRST restore you image before you can show it\r\nS65_showpicture 1 , 70                                      &#039;Show your image\r\nWait 2\r\nS65_cls White\r\nWait 2\r\nLoop\r\nEnd\r\n\r\n\r\n&#039;=== Subroutines ===\r\nSub S65_init()                                              &#039;Init the Siemens S65 display\r\nLocal Tempw As Word , Tempb As Byte\r\nSet Res\r\nWaitms 10\r\nReset Res                                                   &#039;HW Reset\r\nSet Cs\r\nSet Clk\r\nSet Dat\r\nSet Rs\r\nWaitms 1\r\nSet Res                                                     &#039;Reset End\r\nWaitms 10\r\nSet Cs\r\nWaitms 1\r\nSet Rs\r\nRestore Init1\r\nFor Tempb = 1 To 12\r\nRead Tempw\r\nS65_cmdw Tempw\r\nNext\r\nWaitms 7\r\nRestore Init2\r\nFor Tempb = 1 To 25\r\nRead Tempw\r\nS65_cmdw Tempw\r\nNext\r\nEnd Sub\r\n\r\nSub S65_cmdw(cmd As Word)                                   &#039;Send 16bits to the display\r\nReset Cs\r\nShiftout Dat , Clk , Cmd\r\nSet Cs\r\nEnd Sub\r\n\r\n\r\nSub S65_cls(byval Backcolor As Byte)                        &#039;Clear the lcd\r\nLocal Pixel As Word\r\nSet Rs\r\nS65_cmdw &amp;HEF90\r\nS65_cmdw &amp;H0500\r\nS65_cmdw &amp;H0600\r\nS65_cmdw &amp;H0700\r\nReset Rs\r\nReset Cs\r\nFor Pixel = 0 To Total_pixels\r\n Shiftout Dat , Clk , Backcolor\r\nNext Pixel\r\nSet Cs\r\nEnd Sub\r\n\r\n\r\n\r\nSub S65_pset(lx As Byte , Ly As Byte , Color As Byte)       &#039;Set a pixel\r\nSet Rs\r\n#if Landscape = 1\r\n   Ly = Displaysize_y - Ly\r\n   S65_cmdw &amp;H0600 + Ly\r\n   S65_cmdw &amp;H0700 + Lx\r\n#else\r\n   S65_cmdw &amp;H0600 + Lx\r\n   S65_cmdw &amp;H0700 + Ly\r\n#endif\r\nReset Rs\r\nReset Cs\r\nShiftout Dat , Clk , Color\r\nSet Cs\r\nEnd Sub\r\n\r\n\r\n\r\nSub S65_line(byval Lx1 As Byte , Byval Ly1 As Byte , Byval Lx2 As Byte , Byval Ly2 As Byte , Byval Color As Byte)       &#039;Draw a line on the lcd\r\nLocal M As Byte , M1 As Single , M2 As Single\r\nLocal Yg As Byte , Cv As Single , Bn As Integer\r\nLocal R As Byte , B As Byte\r\nM1 = Ly2 - Ly1\r\nM2 = Lx2 - Lx1\r\nCv = M1 \/ M2\r\nBn = Int(cv)\r\nM = Low(bn)\r\nB = M * Lx1\r\nB = -1 * B\r\nB = B + Ly1\r\nFor R = Lx1 To Lx2\r\nYg = M * R\r\nYg = Yg + B\r\nS65_pset R , Yg , Color\r\nNext R\r\nEnd Sub\r\n\r\n\r\n\r\nSub S65_showpicture(xoffset As Byte , Yoffset As Byte)      &#039;Draw an Bascom BGC image on the lcd\r\n&#039; Important that you first RESTORE the image before calling this sub. Examp:  [ Restore Plaatje ]\r\nLocal Ysize As Byte , Xsize As Byte , Xpos As Byte , Ypos As Byte       &#039;Dim some local variable\r\nLocal Tempx As Byte , Tempy As Byte\r\nLocal Imagesize As Word , Imagesize_l As Byte , Imagesize_h As Byte\r\nLocal L As Word , Pixel As Byte , Prevpixel As Byte , Repeat As Byte\r\nRead Ysize                                                  &#039;Read the first 4 bytes from the BGC, this contains info about the image\r\nRead Xsize\r\nRead Imagesize_l\r\nRead Imagesize_h\r\nImagesize = Makeint(imagesize_l , Imagesize_h)              &#039;Byte 3&amp;4 contains the image size, add them together\r\nXpos = 1 : Ypos = 1                                         &#039;Set the pointers to 1\r\nDo\r\nRead Pixel                                                  &#039;Read the value for the pixel\r\n   If Pixel = &amp;HAA Then                                     &#039;BGC file is lre coded &amp;HAA represents this, the byte after &amp;HAA is the number of times that the byte before &amp;HAA wil be repeated\r\n     Read Repeat                                            &#039;Byte after &amp;HAA contains the number of times to repeat\r\n     Repeat = Repeat - 1\r\n      For L = 1 To Repeat                                   &#039;Loop the repeat\r\n          Tempx = Xpos + Xoffset                            &#039;Pixel position is the image postion + the offset\r\n          Tempy = Ypos + Yoffset\r\n          S65_pset Tempx , Tempy , Prevpixel                &#039;Set the pixel, for repeating it&#039;s the byte before &amp;HAA (prevpixel)\r\n          Decr Imagesize                                    &#039;Decrease the bytes still to be processed\r\n          Incr Xpos                                         &#039;Incr the xpos\r\n            If Xpos &gt; Xsize Then                            &#039;If the xpos is larger then xsize of the image start at a new y line\r\n               Xpos = 1                                     &#039;and set the xpos pos back to the first position on the new line\r\n               Incr Ypos                                    &#039;Start a new y line\r\n            End If\r\n      Next L                                                &#039;Next repeat loop\r\n   Else                                                     &#039;It&#039;s a regular byte, not LRE encoded\r\n      Tempx = Xpos + Xoffset                                &#039;Pixel position is the image postion + the offset\r\n      Tempy = Ypos + Yoffset\r\n      S65_pset Tempx , Tempy , Pixel                        &#039;Set the pixel\r\n      Prevpixel = Pixel                                     &#039;Store the pixel in a temp byte, maybe we need it if the next byte is &amp;HAA\r\n      Decr Imagesize                                        &#039;Decrease the bytes still to be processed\r\n      Incr Xpos\r\n         If Xpos &gt; Xsize Then                               &#039;If the xpos is larger then xsize of the image start at a new y line\r\n          Xpos = 1                                          &#039;and set the xpos pos back to the first position on the new line\r\n          Incr Ypos                                         &#039;Start a new y line\r\n         End If\r\nEnd If\r\nLoop Until Imagesize = 0                                    &#039;Do until all bytes are processed\r\nEnd Sub\r\n\r\n\r\nSub Lcdtext(byval S As String , Xoffset As Byte , Yoffset As Byte , Fontset As Byte , Forecolor As Byte , Backcolor As Byte )       &#039;Print text on the display\r\nLocal Tempstring As String * 1 , Temp As Byte               &#039;Dim local the variables\r\nLocal A As Byte , Pixels As Byte , Count As Byte , Carcount As Byte , Lus As Byte\r\nLocal Row As Byte , Byteseach As Byte , Blocksize As Byte , Dummy As Byte\r\nLocal Colums As Byte , Columcount As Byte , Rowcount As Byte , Stringsize As Byte\r\nLocal Xpos As Byte , Ypos As Byte , Pixel As Byte , Pixelcount As Byte\r\nStringsize = Len(s) - 1                                     &#039;Size of the text string -1 because we must start with 0\r\nFor Carcount = 0 To Stringsize                              &#039;Loop for the numbers of caracters that must be displayed\r\n\r\n If Fontset = 1 Then Restore Font8x8                        &#039;Add or remove here fontset&#039;s that you need or not,\r\n If Fontset = 2 Then Restore Font16x16                      &#039;this is the name that you gave to the font, NOT the filename\r\n If Fontset = 3 Then Restore Font6x8                        &#039;If you dont know the name, open the font file in wordpad, and there it is,\r\n If Fontset = 4 Then Restore Font5x5                        &#039;right on top.\r\n\r\n Temp = Carcount + 1                                        &#039;Cut the text string in seperate caracters\r\nTempstring = Mid(s , Temp , 1)\r\nRead Row : Read Byteseach : Read Blocksize : Read Dummy     &#039;Read the first 4 bytes from the font file\r\nTemp = Asc(tempstring) - 32                                 &#039;Font files start with caracter 32\r\nFor Lus = 1 To Temp                                         &#039;Do dummie read to point to the correct line in the fontfile\r\n   For Count = 1 To Blocksize\r\n    Read Pixels\r\n   Next Count\r\nNext Lus\r\nColums = Blocksize \/ Row                                    &#039;Calculate the numbers of colums\r\nRow = Row * 8                                               &#039;Row is always 8 pixels high = 1 byte, so working with row in steps of 8.\r\nRow = Row - 1                                               &#039;Want to start with row=0 instead of 1\r\nColums = Colums - 1                                         &#039;Same for the colums\r\n   For Rowcount = 0 To Row Step 8                           &#039;Loop for numbers of rows\r\n     A = Rowcount + Yoffset\r\n       For Columcount = 0 To Colums                         &#039;Loop for numbers of Colums\r\n         Read Pixels\r\n         Xpos = Columcount                                  &#039;Do some calculation to get the caracter on the correct Xposition\r\n         Temp = Carcount * Byteseach\r\n         Xpos = Xpos + Temp\r\n         Xpos = Xpos + Xoffset\r\n            For Pixelcount = 0 To 7                         &#039;Loop for 8 pixels to be set or not\r\n               Ypos = A + Pixelcount                        &#039;Each pixel on his own spot\r\n               Pixel = Pixels.0                             &#039;Set the pixel (or not)\r\n                 If Pixel = 1 Then\r\n                   Pixel = Forecolor\r\n                 Else\r\n                   Pixel = Backcolor\r\n                 End If\r\n                     S65_pset Xpos , Ypos , Pixel           &#039;Finaly we can set the pixel\r\n                     Shift Pixels , Right                   &#039;Shift the byte 1 bit to the right so the next pixel comes availible\r\n            Next Pixelcount\r\n       Next Columcount\r\n   Next Rowcount\r\nNext Carcount\r\nEnd Sub                                                     &#039;End of this amazing subroutine\r\n\r\n\r\n&#039;=== Includes ===\r\n$include &quot;Font8x8.font&quot;                                     &#039;Includes here your font files\r\n$include &quot;Font16x16.font&quot;                                   &#039;If you don&#039;t need the files in your program, don&#039;t include them,\r\n$include &quot;Font6x8.font&quot;                                     &#039;these are flash memory eaters.\r\n$include &quot;Font5x5.font&quot;\r\n\r\n\r\nPlaatje:\r\n$bgf &quot;mcse.bgc&quot;\r\n\r\n\r\nInit1:\r\nData &amp;HFDFD% , &amp;HFDFD%,\r\nData &amp;HEF00%,\r\nData &amp;HEE04% , &amp;H1B04%,\r\nData &amp;HFEFE% , &amp;HFEFE%,\r\nData &amp;HEF90% , &amp;H4A04% , &amp;H7F3F% , &amp;HEE04% , &amp;H4306%\r\n\r\nInit2:\r\nData &amp;HEF90% , &amp;H0983% , &amp;H0800% , &amp;H0BAF% , &amp;H0A00% , &amp;H0500% , &amp;H0600% , &amp;H0700%,\r\nData &amp;HEF00%,\r\nData &amp;HEE0C%,\r\nData &amp;HEF90% , &amp;H0080%,\r\nData &amp;HEFB0% , &amp;H4902%,\r\nData &amp;HEF00%,\r\nData &amp;H7F01% , &amp;HE181%,\r\nData &amp;HE202%,\r\nData &amp;HE276%,\r\nData &amp;HE183%,\r\nData &amp;H8001%,\r\nData &amp;HEF90%,\r\nData &amp;H0000%\r\nData &amp;HEF90% , &amp;HE801%                                      &#039;Switch to 8-bit mode<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; The Siemens S65 display with an resolution of 132&#215;176 pixels is a very nice display, it&#8217;s bigger and clearer then the Nokia 128&#215;128 display. It&#8217;s consumes less power then the Nokia. Signal levels are at 3V so some level converter is needed when connecting to an 5V Avr. Nice schematic sample . These routines [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[26,34],"class_list":["post-304","post","type-post","status-publish","format-standard","hentry","category-bascom","tag-bascom","tag-siemens-s65"],"_links":{"self":[{"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304"}],"version-history":[{"count":10,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/304\/revisions"}],"predecessor-version":[{"id":1830,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/304\/revisions\/1830"}],"wp:attachment":[{"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evertdekker.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}