{"id":4241,"date":"2020-07-22T20:00:48","date_gmt":"2020-07-22T18:00:48","guid":{"rendered":"https:\/\/msalamon.pl\/?p=4241"},"modified":"2025-12-27T16:23:21","modified_gmt":"2025-12-27T15:23:21","slug":"grayscale-oled-with-ssd1327-part-1","status":"publish","type":"post","link":"https:\/\/msalamon.pl\/en\/grayscale-oled-with-ssd1327-part-1\/","title":{"rendered":"Grayscale OLED with SSD1327, Part 1"},"content":{"rendered":"\n<p>Recently on my social media I pointed out that for quite a long time no article about displays had appeared. In a poll I proposed two models that I have on hand and the winner was <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">an OLED with a controller that enables a 16-step grayscale.<\/a> Today I\u2019ll start the topic from the theoretical side, maybe even in a light column-like form \ud83d\ude42<\/p>\n\n\n\n<!--more-->\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=ssd1327\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"400\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/OLED-SSD1327-baner.jpg\" alt=\"\" class=\"wp-image-1606\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/OLED-SSD1327-baner.jpg 1200w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/OLED-SSD1327-baner-300x100.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/OLED-SSD1327-baner-1024x341.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/OLED-SSD1327-baner-768x256.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">You can buy such an OLED with grayscale from me.<\/a><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><span style=\"font-size: 24pt;\"><strong>Table of contents of the entire OLED on SSD1327 series:<\/strong><\/span><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-1\/\">OLED with grayscale on SSD1327 part 1<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-2\/\">OLED with grayscale on SSD1327 part 2<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/jak-przygotowac-obraz-dla-wyswietlacza-lcd-lub-tft\/\">How to prepare an image for an LCD or TFT display?<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-3\/\">OLED with grayscale on SSD1327 part 3<\/a><\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">OLED displays<\/h1>\n\n\n\n<p>These displays have enjoyed tremendous popularity for many years. Maybe not quite as much as <a href=\"https:\/\/sklep.msalamon.pl\/kategoria-produktu\/wyswietlacze\/lcd\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">the classic 16\u00d72<\/a>, but still a lot. <strong>Their huge advantage is contrast.<\/strong> What is it?<\/p>\n\n\n\n<p>Contrast, in short, is <strong>the difference in brightness between the darkest possible point and the brightest.<\/strong> In classic displays with backlight like LCD, TFT, or IPS, this contrast is not that impressive. This is because the backlight in such an LCD works on the entire matrix at once. If you want a black (dark) pixel, you simply block the flow of light from the backlight, which is not always a complete limitation of transmitted light.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">An OLED<\/a> has no backlight.<\/strong> Each of its pixels is a separate diode that emits its own light. <strong>What happens when a pixel is supposed to be black? It simply doesn\u2019t light up!<\/strong> Thanks to this, you can get nearly perfect black and it\u2019s quite clearly visible. You can especially see it when you have two screens using different technologies side by side.<\/p>\n\n\n\n<p>A place where you can notice this difference is, for example, any consumer electronics store. OLED TVs on display look insane. I\u2019m already ignoring the fact that they have special demo videos to bring out that contrast even more. It makes the image on such an OLED TV razor-sharp.<\/p>\n\n\n\n<p>In our slightly more <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">hobbyist OLEDs<\/a> it\u2019s similar. Maybe we won\u2019t get that \u201crazor\u201d because the resolution is too low, but the images displayed by these little guys are pretty enough.<\/p>\n\n\n\n<p><strong>A very important aspect of <a href=\"https:\/\/sklep.msalamon.pl\/kategoria-produktu\/wyswietlacze\/oled\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">OLED displays<\/a> is so-called \u201cburn-in\u201d.<\/strong> Organic diodes have the property that they lose brightness with time spent emitting light. <strong>It\u2019s worth checking in the documentation what this time is. Most often, it is given as the time until brightness drops by 50%.<\/strong> This varies depending on the color. Generally it is between 10 and 100 thousand hours.<\/p>\n\n\n\n<p><strong>How to deal with it?<\/strong> Unfortunately, you can\u2019t. However, there\u2019s a certain trick to fool the human eye. Namely, our eyes see RELATIVE differences. That means if you show someone first a display with a brightness of 300 nits and later 400 nits, they won\u2019t be able to tell which was brighter. Even more so if we\u2019re dealing with even higher brightness levels. If you show two such displays side by side\u2014the task immediately becomes simple.<\/p>\n\n\n\n<p>This eyesight \u201cflaw\u201d should be used when designing an application layout. <strong>You need, as much as possible, to use all pixels evenly.<\/strong> Then, despite decreasing brightness, differences between pixels won\u2019t be visible, and in fact we\u2019ll get the illusion of no burn-in.<\/p>\n\n\n\n<p>Hence <strong>various hardware graphics helpers appear in OLED controllers<\/strong> <strong>for example for scrolling \ud83d\ude42 <\/strong>Such shifting of pixels can be set as a screensaver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Grayscale<\/h2>\n\n\n\n<p>Right. <a href=\"https:\/\/sklep.msalamon.pl\/kategoria-produktu\/wyswietlacze\/oled\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">Simple OLEDs like those with the SSD1306 driver<\/a> can display only 2 colors: black and the pixel color (white, blue, yellow, etc.). You can adjust their brightness, but this adjustment is applied to the entire pixel matrix. Because of this, to show shadows in images you need to use weird graphic tricks and \u201cdithering\u201d.<\/p>\n\n\n\n<p>Enter the SSD1327 controller on a big white OLED-pixel horse. It\u2019s worth taking a look at its documentation, which I\u2019ll deal with now.<\/p>\n\n\n\n<p>The grayscale supported by this controller is nothing more than controlling pixel brightness, but not for the whole matrix\u2014rather, for each point individually.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SSD1327<\/h2>\n\n\n\n<p>When describing this controller I will refer to the well-known SSD1306 from <a href=\"https:\/\/sklep.msalamon.pl\/kategoria-produktu\/wyswietlacze\/oled\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">the most popular OLEDs<\/a>.<\/p>\n\n\n\n<p>Right from the start, this controller <strong>can handle larger matrices.<\/strong> <strong>Up to 128\u00d7128 pixels.<\/strong> In the SSD1306 it was max 128\u00d764 px. That\u2019s a matrix twice as large. Even the <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">test display<\/a> has a slightly higher resolution: 128\u00d796 px.<\/p>\n\n\n\n<p>The RAM that stores the currently displayed image is 128x128x4 bits. Ohoho <strong>what are those magical 4 bits?&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>It is nothing other than the pixel color.<\/strong> It is 4-bit, so we immediately have the information that <strong>each pixel can take 16 of these colors.<\/strong> These colors are nothing other than the grayscale levels.<\/p>\n\n\n\n<p>Interestingly, 4 bits have their own name in computer terminology! I recently made such a riddle on <a href=\"https:\/\/www.facebook.com\/msalamonpl\/\" target=\"_blank\" rel=\"noopener\">Facebook<\/a> and <a href=\"https:\/\/www.instagram.com\/msalamon_pl\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a>. It turns out you know this name. <strong>These 4 bits are professionally called a nibble in English. In Polish it is \u201ctetrada\u201d. <\/strong>However, I think \u201chalf-byte\u201d, as some people suggested, will also be an appropriate word. Kudos to everyone who answered correctly \ud83d\ude42<\/p>\n\n\n\n<p>Alright, since one pixel = 4 bits, is the RAM chopped up for 4-bit access? NO! It\u2019s classic RAM with 8-bit (byte) access. Simply <strong>one cell holds information about two neighboring pixels. <\/strong>You can see this in the RAM diagram.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1297\" height=\"485\" src=\"http:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map.jpg\" alt=\"\" class=\"wp-image-1602\" srcset=\"https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map.jpg 1297w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map-300x112.jpg 300w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map-1024x383.jpg 1024w, https:\/\/msalamon.pl\/wp-content\/uploads\/2020\/07\/ssd1327_ram_map-768x287.jpg 768w\" sizes=\"auto, (max-width: 1297px) 100vw, 1297px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Sounds nice, because the data is packed, which means a bit less transmission for each pixel. There\u2019s only one trap! <strong>How to change the color of one pixel while not touching the other one in the byte? You first need to read the selected byte from the display RAM, replace the correct pixel, and send the whole byte back.<\/strong> This adds quite a bit of work if we don\u2019t buffer the whole frame in the microcontroller\u2019s memory.<\/p>\n\n\n\n<p>As you can quickly calculate, <strong>to buffer a 128\u00d796 pixel display you need 128*96*4 bits = 4096 bytes of RAM<\/strong>. That\u2019s not much for an STM32. It should be doable.<\/p>\n\n\n\n<p>If, however, you would like not to use buffering, then you need to read data from the display RAM. The SSD1327 controller can work with several interfaces. Most commonly in circulation we can find ready-made PCB modules with I\u00b2C brought out. However, I once worked with this controller using SPI and there is a small trap here. <strong>With SPI there is no possibility to read data from the OLED controller.&nbsp;<\/strong>Then only buffering in the MCU RAM comes into play, or using the display in such a way that you don\u2019t write individual pixels.<\/p>\n\n\n\n<p>Among other differences compared to the SSD1306 you can notice that <strong>SSD1327 requires an external supply for the matrix.<\/strong> It does not have an internal charge pump, so you need to provide 8\u00f718 V to the appropriate pins. Interestingly, this supply affects brightness, so it also affects pixel burn-in. The external supply is handled on the <a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">OLED PCB<\/a> via a simple converter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Interface speeds<\/h2>\n\n\n\n<p>I will check specific speed values and timings as well as frames per second in the next posts once I have the library. However, I can try to calculate how it will look in theory.<\/p>\n\n\n\n<p><a href=\"https:\/\/sklep.msalamon.pl\/produkt\/wyswietlacz-oled-132-skala-szarosci-bialy\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=ssd1327&amp;utm_content=Text\">The display from my shop<\/a> has only an <strong>I\u00b2C interface<\/strong> brought out. The documentation says the clock on it can be up to 400 kHz. Not amazing, but better than 100 kHz. I bet it can be overclocked easily.<\/p>\n\n\n\n<p>Ignoring the times for preparing data and setting the pointer in the display RAM, using DMA to send it is 4096 bytes. With a 400 kHz clock, one byte is sent in 20 \u00b5s. So <strong>the whole frame will transfer in about 82 ms<\/strong>. A bit long, right?<\/p>\n\n\n\n<p>Sending full frames in a loop without restraint will give a bit over 12 Hz. A bit too little for smooth animation playback. I\u00b2C is poorly suited for that.<\/p>\n\n\n\n<p>What about SPI? The clock allows communication at 10 MHz. That\u2019s a much nicer frequency. 100 ns per bit, 800 ns per byte, so per frame it comes to 3.2 ms. That gives about 312 Hz, so the headroom for smooth animation at 25\u00f730 Hz is huge.<\/p>\n\n\n\n<p>It would be better to have SPI available for fast changes, but you can still show a lot on I\u00b2C. I\u2019ll show you that in the next article!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>I did a bit of theorizing about our hero. In the next posts I\u2019ll show the code and operation of this display. Shortly after writing this post I already ran the first version of a working library.<\/p>\n\n\n\n<p>If you liked the article, you can support me by buying something from me \ud83d\ude42 <a href=\"https:\/\/sklep.msalamon.pl\/?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=nrf24&amp;utm_content=Text\">https:\/\/sklep.msalamon.pl\/<\/a><\/p>\n\n\n\n<p><span>If you noticed an error, disagree with something, would like to add something important, or simply feel like discussing this topic, write a comment. Remember that the discussion should be polite and in accordance with the rules of the Polish language.<\/span><\/p>\n\n\n\n<p class=\"has-text-align-center\"><span style=\"font-size: 24pt;\"><strong>Table of contents of the entire OLED on SSD1327 series:<\/strong><\/span><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-1\/\">OLED with grayscale on SSD1327 part 1<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-2\/\">OLED with grayscale on SSD1327 part 2<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/jak-przygotowac-obraz-dla-wyswietlacza-lcd-lub-tft\/\">How to prepare an image for an LCD or TFT display?<\/a><br><\/strong><strong><a href=\"http:\/\/msalamon.pl\/oled-ze-skala-szarosci-na-ssd1327-cz-3\/\">OLED with grayscale on SSD1327 part 3<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contest results<\/h2>\n\n\n\n<p>Time for the long-awaited contest results! Jeeez, choosing as always is difficult and I have the impression that I\u2019m being unfair to the others who didn\u2019t win \ud83d\ude41 I like all the ideas and I will definitely implement them!<\/p>\n\n\n\n<p>But someone has to win. Here are the three winning comments:<\/p>\n\n\n\n<p><strong>1. Radee<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><span>AES128 communication encryption<\/span><\/p>\n<\/blockquote>\n\n\n\n<p>Great topic! I forgot that STMs have hardware RNG modules. Additionally, there is ST\u2019s crypto library, so we can test it.<\/p>\n\n\n\n<p><strong>2. Micro<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><span>I would really like to see an article about using external memory, e.g. FLASH \/ RAM, with the help of e.g. quad \/ dual SPI; it can be an interesting topic because sometimes you may run out of space for the program and data in cache, and besides that maybe something about built-in serial interfaces for displays, e.g. LCD parallel interface, 8080\/6800 modes; I think most microcontrollers, or at least I know F4 and H7, have such things and an interesting possibility is using hardware communication inside the microcontroller itself, because if it\u2019s there why not use it. Those are my ideas, maybe something will catch on? I\u2019m a beginner myself and I don\u2019t know much about them, which is why I think others might also be curious to learn something about it.<\/span><\/p>\n\n\n\n<p>Maybe it\u2019s already a bit too late, but could you do something about the interface (8- to 14-bit parallel camera interface) that can be found in stm32f4 (in my case stm32f446re) and stm32H7 (in my case stm32H745zi) using e.g. an OV7670 camera (8-bit). I know there are a few examples using it on arduino in software, but I don\u2019t know if there are any for stm32 using that interface.<\/p>\n<\/blockquote>\n\n\n\n<p>Hardware support for TFT or a camera is great. This is something Arduino doesn\u2019t have, and it\u2019s worth learning! It would be useful to have some Discovery boards in the shop along the way \ud83d\ude42<\/p>\n\n\n\n<p><strong>3. Marcin Wk<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><span>Mareusz! IoT is increasingly boldly entering everyday life. Therefore this is a serious argument to make a post or even a series of posts about Ethernet and STM32? True, IoT is rather associated with WiFi, so here\u2019s my second argument: I saw many Nucleo-144 boards with an Ethernet port, also in your shop, and there\u2019s little information about this interface on the internet, time to change that? Currently I\u2019m building\/programming automation for my future house, which I hope to move into by the end of the year. A controller based on STM32F4 and connectivity to the world using the well-known enc28j60. On nucleo 64 I\u2019m already starting to run out of gpio, so I\u2019m thinking about nucleo144 and using the built-in ethernet?<\/span><\/p>\n<\/blockquote>\n\n\n\n<p>I\u2019m curious why so few people describe their battles with Ethernet on STM32. I\u2019ll have to check it out! Both the external ones like W5500 and the ones built into Nucleo-144.<\/p>\n\n\n\n<p><strong>Congratulations to everyone for the great ideas!<\/strong><\/p>\n\n\n\n<p>I ask the winners to contact me, preferably by email: <a href=\"mailto:mateusz@msalamon.pl\">mateusz@msalamon.pl<\/a> to arrange shipping of the prizes.<\/p>\n\n\n\n<p>Next year I hope I\u2019ll manage to prepare really solid prizes \ud83d\ude09<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;4241&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;0&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Grayscale OLED with SSD1327, Part 1&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Recently on my social media I pointed out that for quite a long time no article about displays had appeared. In a poll I proposed two models that I have on hand and the winner was an OLED with a controller that enables a 16-step grayscale. Today I\u2019ll start the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3463,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[160],"tags":[176,174],"class_list":["post-4241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stm32","tag-programming","tag-stm32"],"_links":{"self":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/comments?post=4241"}],"version-history":[{"count":3,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4241\/revisions"}],"predecessor-version":[{"id":4244,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4241\/revisions\/4244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media\/3463"}],"wp:attachment":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media?parent=4241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/categories?post=4241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/tags?post=4241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}