IdeaBeam

Samsung Galaxy M02s 64GB

Micropython framebuffer example. If c is given, set the specified pixel to the given color.


Micropython framebuffer example To design efficient MicroPython code it is necessary to have an understanding of the way the interpreter allocates RAM. Apr 14, 2019 · I've been experimenting with a pyboard (running uPy 1. It supports fast rotated text rendering by any angle from 0 to 360 degrees, and is written using the Viper native code emitter. bellad Posts: 96 Joined: Tue May 14, 2019 1:47 pm. We have the image data in fbuf, which can be blitted directly to our display framebuffer, using . task_handler() sleep_ms(100) which seems to work. MONO_HLSB used is different to that used by the ssd1306 screen (framebuf. Jan 31, 2017 · Here's an example program that displays the (old) MicroPython logo on the WeMos D1 Mini OLED shield. See Display interface — LVGL documentation. Note: from version release v1. Consider use of Micropython's framebuf Framebuffer library to see if it offers any acceleration, or just for conformance with other libraries - draw primitives look like they are the same. Waveshare supply an example program with the screen driver included rather than as a separate library. poly(x, y, coords, c[, f])¶ Given a list of coordinates, draw an arbitrary (convex or concave) closed polygon at the given x, y location using the given color. MicroPython examples will be shown to: Scan devices connected to an I2C bus. These can be outlines only or filled. 3). Jul 18, 2014 · This has been referenced on the Github discussion on the framebuffer class. They have sample code for Arduino and MicroPython. 9" E-Paper Module(B/W) and have had no success. Feb 1, 2020 · But it seems to be wrong. The font drawer is designed the write text on a MicroPython FrameBuffer. Dec 28, 2022 · In some examples on the web I see that you can create a FrameBuffer memory array (to match the size of a graphic file), bit blast (load) a graphic file into the array then display the array on the LCD. Jul 18, 2014 · This forum supports MicroPython. The list of MicroPython escape characters are described in Table 1. Three widgets are included: Weather forecast, news, and notes. g. MicroPython blit operations use a data representation format for images called a ByteArray. Jun 2, 2019 · Hi all, I'm new to the micropython community, and am working on a project that's based around a custom ESP32 board and one of the common Waveshare/Good Display 2. Anyway, thanks for your example !! – The following methods draw shapes onto the FrameBuffer. vline (x Returns true if the requested button is currently pressed. vline (x Saved searches Use saved searches to filter your results more quickly The following methods draw shapes onto the FrameBuffer. The palette height is one pixel and its pixel width is the number of colors in the source FrameBuffer. Connect multiple devices to the same I2C bus. For a different display you need to modify the parameters passed to the driver. 7 or higher. So it's not fit my need. FrameBuffer class so inherits all drawing methods from that class. 13" black and white e-ink displays. vline (x Aug 10, 2021 · I want to get the width, height, format from FrameBuffer object, because I need to pass a lot of arguments when using the FrameBuffer object. This repo mainly focuses on the Waveshare 2. The FrameBuffer class provides a pixel buffer which can be drawn upon with pixels, lines, rectangles, text and even other FrameBuffer’s. Using a SSD1306 OLED display¶. vline (x Nov 13, 2021 · All ESP32 boards running MicroPython. Mostly these are provided by a third party. The Kobo e-reader which that port works with has an eInk display, but it essentially behaves like a framebuffer when interacting with it from userspace. For those not following this I've written a proposal for a hopefully standard way of handling font files. Further examples (without pin definitions) are in this nano-gui directory. I use about 11 colors for the UI inspired by the google material design color picker, which leaves a couple more colors for arbitrary use (i. This may leave a footprint of the previous colors in the FrameBuffer. One little nitpick is that the Feb 28, 2017 · I'm working with the ssd1306 class which uses the framebuffer class to write text to the display. 3 version of the ssd1306. The image shows up as very dim because instead of converting the white pixels from 1 to 15, they are remaining at 1 which is a very dark gray on the grayscale. py - Used to convert ttf font to py script. 0 on 2024-06-02; Raspberry Pi Pico with RP2040 Reproduction Run the code below in the REPL, or ru Mar 20, 2023 · Probably too late but I wrote 2 years ago a simple VGA driver for micropython on the PICO using PIO and DMA. The bytearray contents were lifted from my C-style array for weather icons and put inside a Python bufferarray. fill (c) ¶ Fill the entire FrameBuffer with the specified color. In this guide, you’ll learn how to use the 0. The FrameBuffer class provides a pixel buffer which can be drawn upon with pixels, lines, rectangles, ellipses, polygons, text and even other FrameBuffers. I blit the 4 images onto the main framebuffer. Now, I would like to display the temperature near the thermometer image. vline (x Pure python implementation of MicroPython framebuf module. This accepts coordinates at which to blit. The FrameBuffer class provides a pixel buffer which can be drawn upon with pixels, lines, rectangles, ellipses, polygons, text and even other FrameBuffers. 13 inch black & white & red Waveshare 2. py and tft_buttons. Note: The module has two memory areas. FrameBuffer(buffer, 32, 32, framebuf. Useful to generating output for display. Example code and images are for 128*64 SSD1306 OLED displays. 180 degrees are easy, because this can be done using only hardware flags of Below is an example of using FrameBuffer to display a 16x16 pixel black hole event horizon. This works. The SSD1306 OLED display uses either a SPI or I2C interface and comes in a variety of sizes (128x64, 128x32, 72x40, 64x48) and colours (white, yellow, blue, yellow + blue). It enables drawing of double, triple, quadruple, and larger size text to FrameBuffer objects using the built-in font provided in the framebuf module. If c is not given, get the color value of the specified pixel. blit. py is to show you how to initialize it and call method in the ST7567 file. tft_config. Jun 17, 2022 · The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. RGB565) Several lines down in the Constructor description it says: width is the width of the framebuffer in pixels height is the height of the framebuffer in pixels This fork has been modified to use the MicroPython FrameBuffer class for speed. vline (x For images in the dat format, make sure that they do not exceed the screen display area when using non-framebuffer driver modes. I am a little bit confused with the lack of visible event loop in examples like this one. bin font file to draw characters inside the MicroPython FrameBuffer of a screen. 0 (build v317) which added support for 128x64 displays, the use of the rotate parameter has changed. The display is double-buffered, meaning that any modifications to the pixels are only updated on the physical display when the show() method is called. Given that the micropython board has an accelerometer, I think it is only natural to ask, whether the content of a display can automatically be adjusted, if I turn the microcontroller upside down. examples/ - a set of examples for using the library ST7565_SPI; for_examples/ - files related to examples. Apr 1, 2023 · a simple micropython lib (class) to drive Sitronix ST7567 128*64 dot matrix LCD display, using framebuffer (a MicroPython-specific librarie) the main. I am confused by the mpython. Useful for boards with limited flash memory that cannot use the native C framebuf module. 17). 2024-11-02: Added demo method to demonstrate usage of the display. The screen is divided into different widgets that can be activated to gather information. vline (x SpiderMaf examines the framebuffer data a little more - and then finds a different way to put the data straight into the sprite memory storeGeneral Python co Jan 27, 2022 · Hi! I am a begginer to LVGL and I am struggling with understanding how should I use (or not?) event loop and lv_task_handler. 13B E-ink screen Run on ESP32 Waveshare driver board (software SPI) Adapted by me -- April 2019 """ import epaper2in13b from machine import Pin, SPI # software SPI on ESP32 Waveshare driver board sck = Pin(13) mosi = Pin(14) cs = Pin(15) busy = Pin(25) rst = Pin(26) dc = Pin(27) # miso is not used but must be declared. 14. I used the 1. There are a set of constants in the CosmicUnicorn class that represent each of the buttons. Feb 27, 2024 · The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. The code borrows heavily from an old MicroPython Forum discussion The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. vline (x The driver is conceived to use little memory, but it has an optional framebuffer target (240x240x2 bytes of memory used) that is much faster and is used in the example code here. (I quite like this method as you do not have to keep adding and removing libraries as you change peripherals. 架构图: Engine -> Activity -> View -> DrawAble The following methods draw shapes onto the FrameBuffer. For example, \n is commonly used in a print() statement to force a newline. They are coded using the following notation: The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. Apr 22, 2019 · Code: Select all """ Example for 2. . I don't know if Adafruit support using different fonts. It would take too much time each time. I managed to write some text next to the image, but the font is way too small. bdf sources are in the Unicode folder. The results are much faster than the original version of this driver, however the framebuffer does use a large chunk of ram, so it's not a straight upgrade. I am working on porting some of the Arduino code for the LCD, which is quite advanced, back to MP, including fonts. Some are intended as pointers for programmers rather than being complete solutions. The Unicode page has an example of how to use it. Jun 7, 2023 · To not overload the micro memory, the framebuffer is created on the web page :-) So it works only with web applications, I mean micropython programs with a web server. You can implement LVGL display driver based on that driver, but I would recommend using DMA otherwise it would be extremely slow. Please note that the MicroPython SoftSPI implementation is very slow. For example: This module extends the FrameBuffer class in MicroPython's framebuf module. As an example, we’ll show you how to display a simple ‘Hello, World!’ message. Click here to experiment on the online simulator. pygame will clear the screen after exit; if you want to show the image, pygame need to run background. Micropython frame buffer driver is unrelated to LVGL display driver. py module as well. MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments. FrameBuffer. FrameBuffer(buffer, width, height, format, stride=width) The buffer argument is where the binary data for the image is stored. Target audience: MicroPython users with an ESP32 board. Resources for teaching MicroPython to CoderDojo Twin Cities students. Aug 20, 2022 · This repo is a user c module. Jul 23, 2012 · Actually, I need the program to run once, exit and leave the image on screen. I'd like to let the FrameBuffer class to directly write into the display ram but I need to grab the FrameBuffer's write operations on the bytearray object used as image buffer. framebuffer: A bytearray object large enough to contain every pixel; width: The width of the FrameBuffer in pixels; height: The height of the FrameBuffer in pixels Sep 27, 2019 · The memory buffers used by MicroPython are objects created from class framebuf. An escape character is prefixed with a backslash (\) followed by a printable character. pixel (x, y [, c]) ¶. Once DisplayFrame is invoked, the following function SetFrameMemory will set the other memory area, e. This is handled transparently by the framebuffer when blitting. Example files may be found in the setup_examples directory. How can I efficiently do the conversion or is there a possibility to tell the framebuffer to store the color data in big endian mode? Jan 3, 2023 · @Tonygo2 - that is excellent! It is the type of thing I am looking for. MicroPython SH1106 OLED driver, I2C and SPI interfaces. # Load the raspberry pi logo into the framebuffer (the image is 32x32) fb = framebuf. The coords must be specified as a array of integers The following methods draw shapes onto the FrameBuffer. Example usage: Nov 7, 2021 · Discussion about programs, libraries and tools that work with MicroPython. py driver file to your ESP8266 for this to work. Various display technologies are supported, including small color and monochrome OLED's, color TFT's, ePaper and Sharp units. Content Rotation The rotate parameter in the constructor allows you to rotate the display by a 90, 180 or 270 degrees clockwise. rgb(True) # Assign 2 pixels for fixed and invisible area # (ST7735S frame buffer vertical size is 162 pixels) tft. 23. vline (x Jun 15, 2018 · Might be a little late for you, but you can also do this by converting the image in GIMP and exporting as PBM binary. You may need to modify the tft_buttons. blit (fbuf, x, y [, key]) ¶ Draw another FrameBuffer on top of the current one at the given coordinates. pixel (x, y [, c]) ¶ If c is not given, get the color value of the specified pixel. Modification history 2024-11-11: Added Sphinx-style comments for documentation. Fill the entire FrameBuffer with the specified color. To remove my endless confusion and misunderstandings, would it be possible to share the complete code for me to load If you want to experiment with LVGL + MicroPython without downloading anything, you can use our online simulator! It's a fully functional LVGL + MicroPython that runs entirely in the browser and allows you to edit a python script and run it. I have 5 framebuffers: 4 are images (60x60 pixels), 1 is the "main" one. The PBM format is monochrome, and aside from the header lines (can readline 3x to skip these) is the correct format to load into a framebuffer object. First of all, you need to install: pip install freetype-py. For applications needing only to render text to a display, and optionally to draw graphics using FrameBuffer primitives, the writer module may be used alone. Synchronization between PIO and DMA is achived using PIO Irqs. display()” (or similar partial The following methods draw shapes onto the FrameBuffer. Hugh The first part of this repo comprises assorted code ideas for MicroPython and also serves as an unofficial MicroPython FAQ. Aug 31, 2021 · Micropython provides a ssd1306 driver. FrameBuffer ( gs8buf , 128 , 296 , framebuf . I thought you were talking about a dynamic native module. Working with ByteArrays. I am developing app GUI on RPI Zero 2 (so UNIX port) with framebuffer as display driver and evdev touchscreen driver. To do this, a buffer contains the state of all the pixels on the screen: it is an array of bits of type The following methods draw shapes onto the FrameBuffer. vline (x It is based on the MicroPython framebuffer class and consists wrappers for this class as well as special methods for controlling the display. Also included are methods to draw triangles and circles. Dec 20, 2023 · I’ve been trying to get this to draw a filled rectangle on a mono oled (ssd1306 SPI / I2C and similar) The MicroPython documentation for Pico in Read-the-Docs provides: FrameBuffer. I tried setting up a palette framebuffer to handle the conversion, but I can’t figure out the correct syntax. 3 Kb compiled to MPY); the javascript module (rendering the display on the web page), about 10 Kb. 一个现代的,极简的,易于扩展的UI框架,基于MicroPython和FrameBuffer,支持事件驱动。 完成度 60%. All pixels of the screen are sent at once. That's pretty much it; There is a veritable TL;DR of documentation in the repo, with working examples etc. Closed scumola opened this issue Feb 28, 2022 · 9 comments Closed Framebuffer example crashes micropython #4. Scrolling text, multiple fonts. py module to match the pins your device uses. 3) and a 128x32 OLED display controlled by an SSD1306. I assume it is just not available for micropython (I have version 1. 0. In a few words, it means that every drawing command you submit to the display will be converted into a byte array and sent to the display with the “epd. Tomas Fryza. Examples are discussed using ESP32 and Raspberry Pi Pico development boards. tools/font_to_py. The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. FrameBuffer(buffer, width, height, format [, stride=width]) Constructs a FrameBuffer object with parameters. I can display text and shapes in portrait mode with no issues. The rendering code is written from scratch, and allows blitting text in a MicroPython framebuffer without using the framebuffer primitives (in order to implement things otherwise not possible). Dec 12, 2020 · A design point I've been successful with for UI-type of use-cases is to use a "GS4" (4-bit) framebuffer and then do a color table lookup when sending the FB to the display. The framebuffer. MicroPython driver for MAX7219 8x8 LED matrix modules, cascadable and with framebuf - mcauser/micropython-max7219 ESP8266 Examples. io on MicroPython Frame Buffer Operation. readinto(buf[, nbytes]) To answer your question, uart. , Raspberry Pi Pico Interfacing and Programming with MicroPython. vline (x Dec 28, 2015 · Hi all, I was wondering, whether it is possible to rotate the framebuffer. 2023-10-27: File created, initial release May 9, 2024 · There is a font. The binary . However, in various posts I read that you shouldn May 11, 2022 · Got a Waveshare Raspberry Pi Pico LCD display but not sure where to start? How about experimenting with colours and shapes with MicroPython! In this article we will show you colour control using MicroPython with Waveshare Raspberry Pi Pico displays, including: How screen colours are controlled Basic text and graphical drawing instructions - rectangles How to input values from potentiometers Dec 22, 2015 · pythoncoder wrote:I suggest you look at uart. The palette for an N-bit source needs 2**N pixels; the palette for a monochrome source would have 2 pixels representing background and foreground colors. Although it should work with an ESP8266, my initial tests showed issues due to the Jan 13, 2022 · I'm using a raspberry pi pico to read data from a SHT3x sensor using the I2C protocol. This tutorial helps you deploy a project to control an E-INK display using an ESP32. The bdf2dict tool (below) is easy to install and use, just requiring Python 3. Use them if you don't have enough RAM. 9. On my older projects I first loaded in different types of meter scales (from graphics files) over which I draw the pointer, but this is a really good jump forward for me on the pico to restart experimenting. scroll (xstep, ystep) ¶ Shift the contents of the FrameBuffer by the given vector. It fixes some issues from the original repo and mainly splits the E-Paper display part and the Framebuffer goodies. text() method appears to only support the ASCII characters between 0x20 and 0x7e (dec. 96 inch SSD1306 OLED display with an ESP32 or ESP8266 using MicroPython firmware. As a quick-and-dirty hack I used while True: lv. initb2() tft. gs8buf = bytearray ( 128 * 296 ) gsfb = framebuf . Also, note that you need to copy the ssd1306. A curated list of awesome MicroPython libraries, frameworks, software and resources. fill (c) ¶. 3 posts • Page 1 of 1. Link here in the old micropython forum. A search on their forum or a query there might produce results. Read and write I2C data. Does the new Pimoroni PicoGraphics version of Micropython W have a framebuffer or similar option to allow moving a block of data into it? Thanks The font drawer is a MicroPython code that uses a . bin format is quicly loaded inside the microcontroler memory with minimal impact on the micropython parser! micropython-touch Input is provided by touch. MicroPython libraries and example to draw font characters on screen. Screen drivers generally do not send data directly when a pixel is modified. All content licensed Creative Commons ShareAlike Attribution Noncommercial Frame Buffer - MicroPython for Kids May 17, 2018 · Display a Frame (DisplayFrame) DisplayFrame is used to display the data from the frame memory. h -- you are treating the passed-in machine. py module to be present. MONO_HLSB) # Clear the oled display in case it has junk on it. com framebuf. readthedocs. Jun 2, 2024 · Port, board and/or hardware RP2; Unix (but I believe this affects any board with framebuffer support) MicroPython version MicroPython v1. Let's take the 8x8 image show bellow for example If the bit 0 is leftmost one, the bytearray should be The following methods draw shapes onto the FrameBuffer. vline (x Several example programs. 3. to set all the two memory areas, the process is: SetFrameMemory --> DisplayFrame --> SetFrameMemory --> DisplayFrame, i. I'm quite new to (micro)python so I used this example. MicroPython driver for Nokia 5110 PCD8544 84x48 LCD modules - mcauser/micropython-pcd8544 The following methods draw shapes onto the FrameBuffer. It consists of two files: the micropython module, about 5 Kb (1. Target audience: All users and developers of MicroPython. SPI object as a generic Python method, querying for its write method, etc. If c is given, set the specified pixel to the given color. setvscroll(1, 1) # Wrapper object for FBConsole from The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. Oct 30, 2024 · The downside of this approach is that objects that span multiple tiles get drawn by the framebuffer code multiple times at different offsets, but most of the framebuffer routines scale linearly with the number of rows rendered and you don't pay a huge penalty for drawing things outside of the current framebuffer's drawable region. Sometimes you must follow your blit() operations with a show() to transfer the entire framebuffer to the display. The brightness, sleep, and volume buttons are not tied to hardware functions (they are implemented entirely in software) so can also be used for user functions if preferred. vline (x . When I write my application accordingly then it exits In the example above, first a UINT16 value will be extracted at offset 0 (this detail may be important when accessing hardware registers, where particular access size and alignment are required), and then bitfield whose rightmost bit is lsbit bit of this UINT16, and length is bitsize bits, will be extracted. vline (x The following methods draw shapes onto the FrameBuffer. The nano-gui library is display-only. Some examples require a tft_buttons. rect() method that takes the same arguments as write() and returns x,y,w,h values that can be passed to the framebuffer. A repository building on, and improving, Waveshare's MicroPython code source for the ESP32-S3-GEEK. Many LVGL examples are available also for MicroPython Aug 22, 2020 · Dear all, after having implemented the “evdev” module in the UNIX port for Raspberry Pi, I’ve now reached the next step which is to implement a proper event loop (for example, taken care of by the lvesp32 / lvstm32 modules). Does anybody know if it possible to save the FrameBuffer content to a file, eg as Bytearry or even as gr The class is derived from the framebuf. vline (x Aug 27, 2018 · This framebuffer format framebuf. Repo on Github here. This example is for a regular Raspberry Pi since I didn't find any for the Pico. Oct 27, 2020 · I'm following the Arduino example source code, it has been pretty easy so far. MicroPython recognises a small set of special characters known as escape characters. The framebuf module is a native module, and it only exposed some drawing functions. Egregious bugs will be fixed but I may not accept feature requests. vline (x Dec 1, 2022 · MicroPython FrameBuffer (Updated at 12/01/2022) Understanding the module framebuf. This might provide you with interesting examples. The approach I was describing would not involve including machine_spi. It is portable between a range of MicroPython hosts and display devices. Some samples are targeted at Pyboard variants. Returns true if the requested button is currently pressed. It shows lines, text and how to access the joystick and buttons. Jan 4, 2020 · This is just a test example but it's not hard to understand. Apr 19, 2024 · The MicroPython Framebuffer module In order to correctly work with the display, you need to know that its library uses the MicroPython Framebuffer module. The example says: buffer=bytearray(10 * 100 * 2) fbuf = framebuf. There are a set of constants in the GalacticUnicorn class that represent each of the buttons. A lightweight and minimal MicroPython GUI library for display drivers based on the FrameBuffer class. Since the images are going to be black and white, each pixel Class FrameBuffer¶ The framebuffer class provides a pixel buffer that can be drawn using pixels, lines, rectangles, text, and even other framebuffersFrameBuffer to draw. When an object is created or grows in size (for example where an item is appended to a list) the necessary RAM is allocated from a block known as the heap. This comprises a Python3 utility for converting industry standard font files to Python sourcecode. Oct 7, 2023 · The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. However, the SMBus library is not found. The example programs require a tft_config. tick_inc(1) lv. FrameBuffer. The following is a typical example for a Raspberry Pi Pico driving an ILI9341 display: Apr 26, 2021 · It depends largely on how the eInk display is configured in hardware. For example: See full list on thepihut. hline (x, y, w, c) ¶ FrameBuffer. py configuration examples are provided for: ESP32S3-BOX and BOX-Lite; LilyGo T Hello, I am running a SH1106 display on a Pico and would like to save the content to a file. vline (x Instead, tools and examples are provided to help you make a custom font pack with only the characters you need. CircuitPython is the Adafruit fork of MicroPython, and their SSD1306 driver differs from the MicroPython version. It is useful when generating output for displays. This defines the connections to the display, the display driver, and pins used for the pushbuttons. The following methods draw shapes onto the FrameBuffer. read(1) returns a bytes object with a single element (a bytes object is like bytearray, but is immutable). vline (x The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. Shujen Chen et al. FrameBuffer(buffer, 10, 100, framebuf. 32 - 126) The palette is a FrameBuffer instance whose format is that of the current FrameBuffer. Feb 28, 2022 · Framebuffer example crashes micropython #4. mpy/ - pre-compressed versions of libraries (mpy-cross v6. A field containing variable length text with a Feb 27, 2024 · In this article, you will learn how to use the I2C communication using MicroPython code. These are sequences of the bytes that will be sent in a blit operation. Otherwise, the image may not be displayed correctly. MONO_VLSB). # This example is for ESP32 + ST7735S TFT LCD from ST7735 import TFT from machine import SPI,Pin spi = SPI(2, baudrate=20000000, polarity=0, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) tft=TFT(spi,16,17,18) tft. py driver from the MicroPython github. Let's take a look at how these objects are created: class framebuf. e. rect() method to clean the written text. See also ST7920 Datasheet Jul 8, 2020 · Another problem with the framebuffer: The color data are stored in little-endian mode in the framebuffer while the display controller expects them in big endian. The unifont and efont Unicode font . - adafruit/micropython-adafruit-framebuf This is a complete example using MicroPython Framebuffer, filling the screen with squares of different sizes. ) I've provided a version of it below with a few additions. set and update twice. Displaying an image. 9inch Black/white/Red Paper display over an SPI bus. There is unofficial MicroPython support for arbitrary fonts here, via the Feb 28, 2017 · I’m trying to blit a MONO_VLSB framebuffer onto a GS4_HMSB framebuffer. 20. Default baud rate of 80Mhz was Apr 26, 2019 · Hello there, So I've been trying for a couple days to rotate this Waveshare 2. The large text, triangle and circle methods in the MicroPython FrameBuffer extension framebuf2 are supported, as are the ellipse and poly methods added to the FrameBuffer class in MicroPython version 1.