%DASHBOARD{ section="dashboard_start" }% %DASHBOARD{ section="banner" title="Memory-in-Pixel Display" titlestyle="color:#F00000;" }% %DASHBOARD{ section="box_start" title="Intro" width="485" height="250"}% This new type of LCD has the ultra-low power usage of eInk and the fast-refresh rates of an LCD. Viewable in any light, from edge-of-vision to bright sunlight. Wide, symmetrical viewing angles, typically 120° ×120°. Driver [[https://github.com/spyren/Mecrisp-Cube/blob/master/Forth/Src/mip.c][mip.c]], fonts from https://www.mikrocontroller.net/topic/54860. [[https://en.wikipedia.org/wiki/Code_page_850][Code page 850]] <img src="%PUBURLPATH%/MecrispCube/OledDisplay/Codepage-850.png" alt="Code page 850, 9x14" /> %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" title="Contents" width="460" height="250"}% %TOC% %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="400" }% ---+ MIP Words =mip-emit= works like the standard word =emit=. It blocks the calling thread, as long as the character is not written to the MIP display. Horizontal (x) position is in pixel (0 to 167/399), vertical position (y) is in lines (0 to 17/29), a line consists of 8 pixels. Larger fonts takes more than one line. <pre> mip-emit ( Char -- ) Emits a character (writes a character to the MIP display) mip-emit? ( -- Flag ) MIP ready to get a character (SPI not busy) hook-emit ( -- a-addr ) Hooks for redirecting terminal IO on the fly hook-emit? ( -- a-addr ) mippos! ( x y -- ) Set MIP cursor position, x horizontal position, for 6x8 font max. (168 / 6) -1, depends on the font's x size y vertical position (a line consists of 8 pixels), max. 17 for 168x144 or 29 for 400x240 displays. mippos@ ( -- x y ) Get the current MIP cursor position mipclr ( -- ) Clears the OLED display, sets the cursor to 0, 0 mipfont ( u -- ) Select the font, u: 0 6x8, 1 8x8, 2 8X16 , 3 12X16 >mip ( -- addr1 addr2 ) redirect to MIP >term ( addr1 addr2 -- ) terminate redirection </pre> %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="500" }% ---+ Usage It is easy to redirect the terminal output to the MIP display, to use the string formatting words. <pre> : mip-hallo ( -- ) hook-emit @ \ save emit hook ['] mip-emit hook-emit ! \ redirect terminal to mip-emit ." Hallo Velo! " cr ." ciao" hook-emit ! \ restore old hook ; </pre> or even simpler <pre> : mip-hallo ( -- ) >mip \ redirect terminal to mip-emit ." Hallo Velo! " cr ." ciao" >term \ terminate redirection ; </pre> or on a command line <pre> >mip .( Hallo Velo!) >term </pre> show date and time on MIP (see CmsisRtos#How_to_use_Tasks for a background task). <pre> : clock ( -- ) mipclr 3 mipfont -1 -1 -1 alarm! \ set an alarm every second begin wait-alarm \ wait a second 0 0 mippos! >mip .time >term key? until key drop ; </pre> %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="box_start" width="992" height="500" }% ---+ Links ---++ Sharp Memory-in-Pixel LCD * https://www.sharpsecd.com/#/memory-in-pixel-lcds-product * https://www.sharpsecd.com/#/memory-in-pixel-lcds-technology * Datasheet LS013B7DH05 144 x 168 https://www.sharpsecd.com/static/media/Sharp-LCD-Specification-LS013B7DH05-12-17-19.4f9deb60.pdf * Datasheet LS027B7DH01 400 × 240 https://www.sharpsecd.com/static/media/LS027B7DH01%20Spec%20(LD-28305A).02b53ab6.pdf * Programming Sharps Memory LCDs https://www.sharpsde.com/fileadmin/products/Displays/2016_SDE_App_Note_for_Memory_LCD_programming_V1.3.pdf ---++ Adafruit SHARP Memory Display Breakout 1.3" 168x144 Adafruit [[https://www.adafruit.com/product/3502][#3502]] https://cdn-learn.adafruit.com/assets/assets/000/009/082/small360/lcds___displays_1393disp7_LRG.jpg ---++ Adafruit SHARP Memory Display Breakout 2.7" 400x240 Adafruit [[https://www.adafruit.com/product/4694][#4694]] https://cdn-shop.adafruit.com/970x728/4694-00.jpg %DASHBOARD{ section="box_end" }% %DASHBOARD{ section="dashboard_end" }% -- %USERSIG{PeterSchmid - 2022-05-13}% <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <a xmlns:cc="http://creativecommons.org/ns#" href="http://spyr.ch" property="cc:attributionName" rel="cc:attributionURL">Peter Schmid</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
This topic: MecrispCube
>
WebHome
>
SharpMIP
Topic revision: r2 - 2022-05-14 - PeterSchmid
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback