<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Raspberry PI Pico and e-paper (e-ink) Display	</title>
	<atom:link href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/feed/" rel="self" type="application/rss+xml" />
	<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/</link>
	<description>Raspberry PI, Arduino and Electronics made simple</description>
	<lastBuildDate>Mon, 18 Nov 2024 01:41:08 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Vince		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-39884</link>

		<dc:creator><![CDATA[Vince]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 01:41:08 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-39884</guid>

					<description><![CDATA[fyi - the v2.3 universal driver board that comes with the 7.5 epaper now has &#039;two&#039; power related pins so your excellent blog is a little outdated re: wiring.  Here&#039;s what worked for me.

Colors below are the ones that are the 9-pin that came with the universal driver board so they differ from your diagram above.   These are in the order top-to-botton on the 9-pin connector markings on the board.

(hope the comments upload doesn&#039;t mess up the formatting...)

brown  PWR  to pin 39 VSYS

purple BUSY to pin 17 GP13

white  RST  to pin 16 GP12

green  DC   to pin 11 GP8

orange CS   to pin 12 GP9

yellow CLK  to pin 14 GP10

blue   DIN  to pin 15 GP11

black  GND  to pin 38 GND

red    VCC  to pin 36 3V3(OUT)]]></description>
			<content:encoded><![CDATA[<p>fyi &#8211; the v2.3 universal driver board that comes with the 7.5 epaper now has &#8216;two&#8217; power related pins so your excellent blog is a little outdated re: wiring.  Here&#8217;s what worked for me.</p>
<p>Colors below are the ones that are the 9-pin that came with the universal driver board so they differ from your diagram above.   These are in the order top-to-botton on the 9-pin connector markings on the board.</p>
<p>(hope the comments upload doesn&#8217;t mess up the formatting&#8230;)</p>
<p>brown  PWR  to pin 39 VSYS</p>
<p>purple BUSY to pin 17 GP13</p>
<p>white  RST  to pin 16 GP12</p>
<p>green  DC   to pin 11 GP8</p>
<p>orange CS   to pin 12 GP9</p>
<p>yellow CLK  to pin 14 GP10</p>
<p>blue   DIN  to pin 15 GP11</p>
<p>black  GND  to pin 38 GND</p>
<p>red    VCC  to pin 36 3V3(OUT)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: peppe8o		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-37477</link>

		<dc:creator><![CDATA[peppe8o]]></dc:creator>
		<pubDate>Mon, 14 Oct 2024 06:08:56 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-37477</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-37335&quot;&gt;rene&lt;/a&gt;.

Hi Rene,
thank you for sharing your code. If you want, you can also send pictures of your project at giuseppe@peppe8o.com to publish them in this page]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-37335">rene</a>.</p>
<p>Hi Rene,<br />
thank you for sharing your code. If you want, you can also send pictures of your project at <a href="mailto:giuseppe@peppe8o.com">giuseppe@peppe8o.com</a> to publish them in this page</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rene		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-37335</link>

		<dc:creator><![CDATA[rene]]></dc:creator>
		<pubDate>Sat, 12 Oct 2024 10:29:28 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-37335</guid>

					<description><![CDATA[Hi Peppe, Hi Peter

thanks for sharing your inputs here. I took the code of Peter and modified it a bit so it can display different size numbers and also the degree and percent signg. I admin the percent sign loos a bit odd. But I still like to share my code for you and other interested in it.
I use a Waveshare ePaper 2.13 inch black and white. The epaper driver can be found here https://github.com/waveshareteam/Pico_ePaper_Code/blob/main/python/Pico_ePaper-2.13_V4.py



from epaper2in13v4 import EPD_2in13_V4_Landscape
import re, array

epd = EPD_2in13_V4_Landscape()
epd.Clear()

# draws black decimal numbers in the 7 segment format 
# start_x and start_y are the coords for the upper left start point
# text ist the chars to display. only the chars &#039;0-9,°%&#039; are supported
# digit_width the width in pixels of one digit, the height is always twice the width
# line_width ist the thickness in pixel of the char lines
# space ist the amount of pixels inbetween the cahrs
def drawNumber(start_x, start_y, text, digit_width, line_width, space):

    for digit in text:
        if digit in [&#039;2&#039;,&#039;3&#039;,&#039;5&#039;,&#039;6&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;]:
            #horizontal top 
            epd.fill_rect(start_x, start_y, digit_width+line_width, line_width, 0x00)
        if digit in [&#039;-&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;8&#039;,&#039;9&#039;]:
            #horizontal middle 
            epd.fill_rect(start_x, start_y+digit_width, digit_width, line_width, 0x00)
        if digit in [&#039;2&#039;,&#039;3&#039;,&#039;5&#039;,&#039;6&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;]:
            #horizontal bottom 
            epd.fill_rect(start_x, start_y+digit_width*2, digit_width+line_width, line_width, 0x00)
        if digit in [&#039;1&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;]:
            #vertical left top
            epd.fill_rect(start_x, start_y, line_width, digit_width, 0x00)
        if digit in [&#039;1&#039;,&#039;2&#039;,&#039;6&#039;,&#039;8&#039;,&#039;0&#039;]:
            #vertical left bottom
            epd.fill_rect(start_x, start_y+digit_width, line_width, digit_width+line_width, 0x00)
        if digit in [&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;]:
            #vertical right top
            epd.fill_rect(start_x+digit_width, start_y, line_width, digit_width+line_width, 0x00)
        if digit in [&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;]:
            #vertical right bottom
            epd.fill_rect(start_x+digit_width, start_y+digit_width, line_width, digit_width+line_width, 0x00)
        if digit in [&#039;,&#039;, &#039;.&#039;]:
            epd.fill_rect(start_x, start_y + digit_width*2, line_width, line_width+line_width, 0x00)
        if digit in [&#039;°&#039;,&#039;%&#039;]:
            r1 = digit_width//2-line_width
            r2 = digit_width//2-line_width-line_width//2
            epd.ellipse(start_x+r1, start_y+r1, r1, r1, 0x00, True)
            epd.ellipse(start_x+r1, start_y+r1, r2, r2, 0xFF, True)
        if digit == &#039;%&#039;:
            epd.ellipse(start_x+digit_width, start_y+digit_width*2+line_width-r1, r1, r1, 0x00, True)
            epd.ellipse(start_x+digit_width, start_y+digit_width*2+line_width-r1, r2, r2, 0xFF, True)
            coords = array.array(&#039;I&#039;, [digit_width+line_width//2, 0, digit_width+line_width, 0, line_width, digit_width*2+line_width, line_width//2, digit_width*2+line_width])
#             print(&quot;Array: &quot;, coords)
            epd.poly(start_x, start_y, coords, 0x00, True)
                
        if digit in [&#039;1&#039;,&#039;,&#039;, &#039;.&#039;]:
            start_x += space
        else:
            start_x += digit_width+space
        
while True:
    epd.fill(0xff)
    
    drawNumber(10,10,&quot;78%&quot;,18,4,10)
    drawNumber(10,70,&quot;12,34°&quot;,18,4,10)

    epd.display(epd.buffer)
    epd.delay_ms(3000)
    
    epd.fill(0xff)

    drawNumber(10,10,&quot;12%&quot;,10,3,8)
    drawNumber(10,40,&quot;0,123456789°&quot;,10,3,8)
    drawNumber(10,70,&quot;0,123456789°&quot;,10,3,8)
    drawNumber(10,100,&quot;0,123456789°&quot;,10,3,8)

    epd.display(epd.buffer)
    epd.delay_ms(3000)]]></description>
			<content:encoded><![CDATA[<p>Hi Peppe, Hi Peter</p>
<p>thanks for sharing your inputs here. I took the code of Peter and modified it a bit so it can display different size numbers and also the degree and percent signg. I admin the percent sign loos a bit odd. But I still like to share my code for you and other interested in it.<br />
I use a Waveshare ePaper 2.13 inch black and white. The epaper driver can be found here <a href="https://github.com/waveshareteam/Pico_ePaper_Code/blob/main/python/Pico_ePaper-2.13_V4.py" rel="nofollow ugc">https://github.com/waveshareteam/Pico_ePaper_Code/blob/main/python/Pico_ePaper-2.13_V4.py</a></p>
<p>from epaper2in13v4 import EPD_2in13_V4_Landscape<br />
import re, array</p>
<p>epd = EPD_2in13_V4_Landscape()<br />
epd.Clear()</p>
<p># draws black decimal numbers in the 7 segment format<br />
# start_x and start_y are the coords for the upper left start point<br />
# text ist the chars to display. only the chars &#8216;0-9,°%&#8217; are supported<br />
# digit_width the width in pixels of one digit, the height is always twice the width<br />
# line_width ist the thickness in pixel of the char lines<br />
# space ist the amount of pixels inbetween the cahrs<br />
def drawNumber(start_x, start_y, text, digit_width, line_width, space):</p>
<p>    for digit in text:<br />
        if digit in [&#8216;2&#8242;,&#8217;3&#8242;,&#8217;5&#8242;,&#8217;6&#8242;,&#8217;7&#8242;,&#8217;8&#8242;,&#8217;9&#8242;,&#8217;0&#8217;]:<br />
            #horizontal top<br />
            epd.fill_rect(start_x, start_y, digit_width+line_width, line_width, 0x00)<br />
        if digit in [&#8216;-&#8216;,&#8217;2&#8242;,&#8217;3&#8242;,&#8217;4&#8242;,&#8217;5&#8242;,&#8217;6&#8242;,&#8217;8&#8242;,&#8217;9&#8217;]:<br />
            #horizontal middle<br />
            epd.fill_rect(start_x, start_y+digit_width, digit_width, line_width, 0x00)<br />
        if digit in [&#8216;2&#8242;,&#8217;3&#8242;,&#8217;5&#8242;,&#8217;6&#8242;,&#8217;8&#8242;,&#8217;9&#8242;,&#8217;0&#8217;]:<br />
            #horizontal bottom<br />
            epd.fill_rect(start_x, start_y+digit_width*2, digit_width+line_width, line_width, 0x00)<br />
        if digit in [&#8216;1&#8242;,&#8217;4&#8242;,&#8217;5&#8242;,&#8217;6&#8242;,&#8217;8&#8242;,&#8217;9&#8242;,&#8217;0&#8217;]:<br />
            #vertical left top<br />
            epd.fill_rect(start_x, start_y, line_width, digit_width, 0x00)<br />
        if digit in [&#8216;1&#8242;,&#8217;2&#8242;,&#8217;6&#8242;,&#8217;8&#8242;,&#8217;0&#8217;]:<br />
            #vertical left bottom<br />
            epd.fill_rect(start_x, start_y+digit_width, line_width, digit_width+line_width, 0x00)<br />
        if digit in [&#8216;2&#8242;,&#8217;3&#8242;,&#8217;4&#8242;,&#8217;7&#8242;,&#8217;8&#8242;,&#8217;9&#8242;,&#8217;0&#8217;]:<br />
            #vertical right top<br />
            epd.fill_rect(start_x+digit_width, start_y, line_width, digit_width+line_width, 0x00)<br />
        if digit in [&#8216;3&#8242;,&#8217;4&#8242;,&#8217;5&#8242;,&#8217;6&#8242;,&#8217;7&#8242;,&#8217;8&#8242;,&#8217;9&#8242;,&#8217;0&#8217;]:<br />
            #vertical right bottom<br />
            epd.fill_rect(start_x+digit_width, start_y+digit_width, line_width, digit_width+line_width, 0x00)<br />
        if digit in [&#8216;,&#8217;, &#8216;.&#8217;]:<br />
            epd.fill_rect(start_x, start_y + digit_width*2, line_width, line_width+line_width, 0x00)<br />
        if digit in [&#8216;°&#8217;,&#8217;%&#8217;]:<br />
            r1 = digit_width//2-line_width<br />
            r2 = digit_width//2-line_width-line_width//2<br />
            epd.ellipse(start_x+r1, start_y+r1, r1, r1, 0x00, True)<br />
            epd.ellipse(start_x+r1, start_y+r1, r2, r2, 0xFF, True)<br />
        if digit == &#8216;%&#8217;:<br />
            epd.ellipse(start_x+digit_width, start_y+digit_width*2+line_width-r1, r1, r1, 0x00, True)<br />
            epd.ellipse(start_x+digit_width, start_y+digit_width*2+line_width-r1, r2, r2, 0xFF, True)<br />
            coords = array.array(&#8216;I&#8217;, [digit_width+line_width//2, 0, digit_width+line_width, 0, line_width, digit_width*2+line_width, line_width//2, digit_width*2+line_width])<br />
#             print(&#8220;Array: &#8220;, coords)<br />
            epd.poly(start_x, start_y, coords, 0x00, True)</p>
<p>        if digit in [&#8216;1&#8242;,&#8217;,&#8217;, &#8216;.&#8217;]:<br />
            start_x += space<br />
        else:<br />
            start_x += digit_width+space</p>
<p>while True:<br />
    epd.fill(0xff)</p>
<p>    drawNumber(10,10,&#8221;78%&#8221;,18,4,10)<br />
    drawNumber(10,70,&#8221;12,34°&#8221;,18,4,10)</p>
<p>    epd.display(epd.buffer)<br />
    epd.delay_ms(3000)</p>
<p>    epd.fill(0xff)</p>
<p>    drawNumber(10,10,&#8221;12%&#8221;,10,3,8)<br />
    drawNumber(10,40,&#8221;0,123456789°&#8221;,10,3,8)<br />
    drawNumber(10,70,&#8221;0,123456789°&#8221;,10,3,8)<br />
    drawNumber(10,100,&#8221;0,123456789°&#8221;,10,3,8)</p>
<p>    epd.display(epd.buffer)<br />
    epd.delay_ms(3000)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: peppe8o		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-36740</link>

		<dc:creator><![CDATA[peppe8o]]></dc:creator>
		<pubDate>Sat, 05 Oct 2024 12:58:12 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-36740</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-36668&quot;&gt;D10v&lt;/a&gt;.

Hi D10v,
you have hawk eyes!!! The e-paper module can work both with 5V and 3.3V, so you can use both the VSYS or the 3V3 PIN from the Pico for the e-paper&#039;s VCC.
Thank you for your feedback!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-36668">D10v</a>.</p>
<p>Hi D10v,<br />
you have hawk eyes!!! The e-paper module can work both with 5V and 3.3V, so you can use both the VSYS or the 3V3 PIN from the Pico for the e-paper&#8217;s VCC.<br />
Thank you for your feedback!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: D10v		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-36668</link>

		<dc:creator><![CDATA[D10v]]></dc:creator>
		<pubDate>Fri, 04 Oct 2024 13:46:34 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-36668</guid>

					<description><![CDATA[Dear peppe80!
I like your post about Raspberry PI Pico and e-paper (e-ink) Display, it&#039;s very well done with details, photos and diagrams. However I have already once obliterated one pico by connecting AAA batteries to the wrong GPIOs causing it to send smoke signals and buzzing off to the afterlife <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f605.png" alt="😅" class="wp-smiley" style="height: 1em; max-height: 1em;" />

Anyway that&#039;s why I&#039;d like to ask if the photo you&#039;ve posted (https://peppe8o.com/wp-content/uploads/2023/04/raspberry-pi-pico-epaper-wiring-detailis-01.jpg) shows the cables going from VCC and GND of the e-ink to GPIO 38 GND and GPIO 36 3V3(OUT) whereas the diagram above the photo indicates GPIO 39 VSYS and GPIO 28 GND as the correct connection.

I&#039;d very much appreciate your reply.
Best, D10v]]></description>
			<content:encoded><![CDATA[<p>Dear peppe80!<br />
I like your post about Raspberry PI Pico and e-paper (e-ink) Display, it&#8217;s very well done with details, photos and diagrams. However I have already once obliterated one pico by connecting AAA batteries to the wrong GPIOs causing it to send smoke signals and buzzing off to the afterlife 😅</p>
<p>Anyway that&#8217;s why I&#8217;d like to ask if the photo you&#8217;ve posted (<a href="https://peppe8o.com/wp-content/uploads/2023/04/raspberry-pi-pico-epaper-wiring-detailis-01.jpg" rel="ugc">https://peppe8o.com/wp-content/uploads/2023/04/raspberry-pi-pico-epaper-wiring-detailis-01.jpg</a>) shows the cables going from VCC and GND of the e-ink to GPIO 38 GND and GPIO 36 3V3(OUT) whereas the diagram above the photo indicates GPIO 39 VSYS and GPIO 28 GND as the correct connection.</p>
<p>I&#8217;d very much appreciate your reply.<br />
Best, D10v</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: peppe8o		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-28294</link>

		<dc:creator><![CDATA[peppe8o]]></dc:creator>
		<pubDate>Fri, 03 May 2024 10:49:56 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-28294</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-28273&quot;&gt;Rick&lt;/a&gt;.

Hi Rick,
the blit() methond comes from micropython frambuf methods. It simply draws a specified area over an existing framebuffer object (ref. &lt;a href=&quot;https://docs.micropython.org/en/latest/library/framebuf.html&quot; target=&quot;_blank&quot; rel=&quot;noopener nofollow ugc&quot;&gt;https://docs.micropython.org/en/latest/library/framebuf.html&lt;/a&gt;)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-28273">Rick</a>.</p>
<p>Hi Rick,<br />
the blit() methond comes from micropython frambuf methods. It simply draws a specified area over an existing framebuffer object (ref. <a href="https://docs.micropython.org/en/latest/library/framebuf.html" target="_blank" rel="noopener nofollow ugc">https://docs.micropython.org/en/latest/library/framebuf.html</a>)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rick		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-28273</link>

		<dc:creator><![CDATA[Rick]]></dc:creator>
		<pubDate>Thu, 02 May 2024 20:28:24 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-28273</guid>

					<description><![CDATA[I am quite confused with the blit() function. I am not finding it anywhere. I am using Pico_ePaper-2.13-B_V4.py
Thanks.]]></description>
			<content:encoded><![CDATA[<p>I am quite confused with the blit() function. I am not finding it anywhere. I am using Pico_ePaper-2.13-B_V4.py<br />
Thanks.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter JK		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27684</link>

		<dc:creator><![CDATA[Peter JK]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 14:05:15 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-27684</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27672&quot;&gt;Peter JK&lt;/a&gt;.

I withdraw it, the distances are still there!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27672">Peter JK</a>.</p>
<p>I withdraw it, the distances are still there!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter JK		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27672</link>

		<dc:creator><![CDATA[Peter JK]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 09:49:25 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-27672</guid>

					<description><![CDATA[Unfortunately, all the spacing has been lost and the code is difficult to read. Perhaps we should communicate again separately by e-mail.]]></description>
			<content:encoded><![CDATA[<p>Unfortunately, all the spacing has been lost and the code is difficult to read. Perhaps we should communicate again separately by e-mail.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter JK		</title>
		<link>https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27671</link>

		<dc:creator><![CDATA[Peter JK]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 09:47:11 +0000</pubDate>
		<guid isPermaLink="false">https://peppe8o.com/?p=9607#comment-27671</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27458&quot;&gt;peppe8o&lt;/a&gt;.

Hello peppe8o,

No problem, everybody sometimes overlooks something.

First of all, I (unfortunately) use the Waveshare 19588 Pico-ePaper-2.13-B which can display red . Unfortunately because the refresh time is 15 seconds instead of 5 seconds for the black and white version. This is the disadvantage of the additional red color component I overlooked when I bought the ePaper. Well, I&#039;m sure my script can certainly be transferred to the black and white version. Here it is how I installed the 7-segment method:

The most important things are, first, to break down the two measured values (temperature, humidity) into five digits (temperature with one decimal place, humidity without decimal place, e.g. 20.7 and 56). Secondly, assigning the seven segment bars to the digits 0 to 9.

1) Break down measured values into digits
      sensor.measure()

# temperature
      temp = round(sensor.temperature(), 1)
 
      messziffern = str(temp)
# split for decimal place (messziffer3)
      int_messziffern, messziffer3 = messziffern.split(&#039;.&#039;)

# relative humidity
      hum = round(sensor.humidity(), 0)
      messziffern_hum = str(hum)

# break down data into digits, messziffer3 see above
      messziffer1 = int_messziffern[0:1]    
      messziffer2 = int_messziffern[1:2]     
      messziffer4 = messziffern_hum[0:1]
      messziffer5 = messziffern_hum[1:2]

2) Assign the seven segment bars to the digits 0 to 9

# note: German abbreviations
# v: vertical
# h: horizontal
# r: right
# l: left
# o: top (&quot;oben&quot;)
# u: bottom (&quot;unten&quot;)

      flags = {&#039;1&#039;: [&#039;vro&#039;, &#039;vru&#039;],
                   &#039;2&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vlu&#039;, &#039;vro&#039;],
                   &#039;3&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vro&#039;, &#039;vru&#039;],
                   &#039;4&#039;: [&#039;hm&#039;, &#039;vlo&#039;, &#039;vro&#039;, &#039;vru&#039;],
                   &#039;5&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vlo&#039;, &#039;vru&#039;],
                   &#039;6&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vlo&#039;, &#039;vlu&#039;, &#039;vru&#039;],
                   &#039;7&#039;: [&#039;ho&#039;, &#039;vro&#039;, &#039;vru&#039;],
                   &#039;8&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vlo&#039;, &#039;vlu&#039;, &#039;vro&#039;, &#039;vru&#039;],
                   &#039;9&#039;: [&#039;ho&#039;, &#039;hm&#039;, &#039;hu&#039;, &#039;vlo&#039;, &#039;vro&#039;, &#039;vru&#039;],
                   &#039;0&#039;: [&#039;ho&#039;, &#039;hu&#039;, &#039;vlo&#039;, &#039;vlu&#039;, &#039;vro&#039;, &#039;vru&#039;]
                   }
    
      for n in range(1,6,1):

          ho = False
          hm = False
          hu = False
          vlo = False
          vlu = False
          vro = False
          vru = False
          
          messz = globals()[prefix + str(n)]

          if messz in flags:
            for flag in flags[messz]:
              globals()[flag] = True

The display positions must then be defined on a pixel basis. For example, for ho (horizontal, top) the code is:
    epd.imagered.fill_rect(start_x, start_y, ziffer+strich, strich, 0x00)

I have defined 4 pixels as the line width (&quot;strich&quot;), for the digit width 26 pixels each plus individual  distance. The individual pixel positions for each digit can be defined using the variable messziffer+n:

          if n == 1:
          # startpx digit 1
              start_x = 13
              start_y = 13

          elif n == 2:      
          # startpx digit 2
          # ePaper border 13
          # digit
          # distance 13
              start_x = 13+ziffer+13
              start_y = 13

          elif n ==3
              ...
Maybe the code is not perfect, but it works :-))
I hope it helps. Maybe you can add this approach to your tutorial.

Kind regards,
Peter]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://peppe8o.com/raspberry-pi-pico-epaper-eink/#comment-27458">peppe8o</a>.</p>
<p>Hello peppe8o,</p>
<p>No problem, everybody sometimes overlooks something.</p>
<p>First of all, I (unfortunately) use the Waveshare 19588 Pico-ePaper-2.13-B which can display red . Unfortunately because the refresh time is 15 seconds instead of 5 seconds for the black and white version. This is the disadvantage of the additional red color component I overlooked when I bought the ePaper. Well, I&#8217;m sure my script can certainly be transferred to the black and white version. Here it is how I installed the 7-segment method:</p>
<p>The most important things are, first, to break down the two measured values (temperature, humidity) into five digits (temperature with one decimal place, humidity without decimal place, e.g. 20.7 and 56). Secondly, assigning the seven segment bars to the digits 0 to 9.</p>
<p>1) Break down measured values into digits<br />
      sensor.measure()</p>
<p># temperature<br />
      temp = round(sensor.temperature(), 1)</p>
<p>      messziffern = str(temp)<br />
# split for decimal place (messziffer3)<br />
      int_messziffern, messziffer3 = messziffern.split(&#8216;.&#8217;)</p>
<p># relative humidity<br />
      hum = round(sensor.humidity(), 0)<br />
      messziffern_hum = str(hum)</p>
<p># break down data into digits, messziffer3 see above<br />
      messziffer1 = int_messziffern[0:1]<br />
      messziffer2 = int_messziffern[1:2]<br />
      messziffer4 = messziffern_hum[0:1]<br />
      messziffer5 = messziffern_hum[1:2]</p>
<p>2) Assign the seven segment bars to the digits 0 to 9</p>
<p># note: German abbreviations<br />
# v: vertical<br />
# h: horizontal<br />
# r: right<br />
# l: left<br />
# o: top (&#8220;oben&#8221;)<br />
# u: bottom (&#8220;unten&#8221;)</p>
<p>      flags = {&#8216;1&#8217;: [&#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;2&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vlu&#8217;, &#8216;vro&#8217;],<br />
                   &#8216;3&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;4&#8217;: [&#8216;hm&#8217;, &#8216;vlo&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;5&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vlo&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;6&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vlo&#8217;, &#8216;vlu&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;7&#8217;: [&#8216;ho&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;8&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vlo&#8217;, &#8216;vlu&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;9&#8217;: [&#8216;ho&#8217;, &#8216;hm&#8217;, &#8216;hu&#8217;, &#8216;vlo&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;],<br />
                   &#8216;0&#8217;: [&#8216;ho&#8217;, &#8216;hu&#8217;, &#8216;vlo&#8217;, &#8216;vlu&#8217;, &#8216;vro&#8217;, &#8216;vru&#8217;]<br />
                   }</p>
<p>      for n in range(1,6,1):</p>
<p>          ho = False<br />
          hm = False<br />
          hu = False<br />
          vlo = False<br />
          vlu = False<br />
          vro = False<br />
          vru = False</p>
<p>          messz = globals()[prefix + str(n)]</p>
<p>          if messz in flags:<br />
            for flag in flags[messz]:<br />
              globals()[flag] = True</p>
<p>The display positions must then be defined on a pixel basis. For example, for ho (horizontal, top) the code is:<br />
    epd.imagered.fill_rect(start_x, start_y, ziffer+strich, strich, 0x00)</p>
<p>I have defined 4 pixels as the line width (&#8220;strich&#8221;), for the digit width 26 pixels each plus individual  distance. The individual pixel positions for each digit can be defined using the variable messziffer+n:</p>
<p>          if n == 1:<br />
          # startpx digit 1<br />
              start_x = 13<br />
              start_y = 13</p>
<p>          elif n == 2:<br />
          # startpx digit 2<br />
          # ePaper border 13<br />
          # digit<br />
          # distance 13<br />
              start_x = 13+ziffer+13<br />
              start_y = 13</p>
<p>          elif n ==3<br />
              &#8230;<br />
Maybe the code is not perfect, but it works :-))<br />
I hope it helps. Maybe you can add this approach to your tutorial.</p>
<p>Kind regards,<br />
Peter</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
