<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/110420/configuring-ssd1306-shield-with-64x32-pixel-display</link><description>I recently bought this display that is 64x32 pixels and uses the SSD1306 driver . When running the LVGL Basic Sample with the Zephyr ssd1306 _128x64 shield , the display works , but shows only the bottom center of what would show up on the 128x64 display</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 19 Jul 2024 19:35:52 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/110420/configuring-ssd1306-shield-with-64x32-pixel-display" /><item><title>RE: Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/thread/494890?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2024 19:35:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bbfc38f7-5c72-433c-bcbd-2e72f65cc986</guid><dc:creator>LampLighter</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t had any time to test it out recently so I will close this ticket for now.&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/thread/494776?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2024 11:32:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:044ee72c-7fb5-48fa-bb18-57bfd6a4651a</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Did you manage to resolve this issue, or do you need more help from us?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/thread/480312?ContentTypeID=1</link><pubDate>Wed, 24 Apr 2024 01:31:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6503b35-fe81-4b61-a0ae-747b315cfd80</guid><dc:creator>LampLighter</dc:creator><description>&lt;p&gt;HI&amp;nbsp;&lt;span&gt;J&amp;oslash;rgen,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Attached is the project folder. I am building with the nrf52dk_nrf52832 board. The breakpoint gets hit and there are multiple functions that are called before it. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also it turns out that my temporary &amp;quot;solution&amp;quot; only works for the text labels set in main(). Anything added afterwards shows up broken on the screen (similar to what it looked before the temp fix)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Project folder:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3302.lvgl.zip"&gt;devzone.nordicsemi.com/.../3302.lvgl.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In the attached solution I modified some lines in the ssd1306_write_default to be able to change the &amp;quot;x&amp;quot; value dynamically with &amp;quot;segment offset&amp;quot; in the devicetree.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/thread/480038?ContentTypeID=1</link><pubDate>Mon, 22 Apr 2024 14:42:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75d73092-1c99-4bbc-bf46-da902ddb2bf6</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Can you debug the application and set a breakpoint in&amp;nbsp;ssd1306_write_default() to see where it is being called from? I tried this with the default sample, but the breakpoint was never hit.&lt;/p&gt;
&lt;p&gt;Have you made any other modifications to the libraries or sources?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configuring SSD1306 shield with 64x32 pixel display.</title><link>https://devzone.nordicsemi.com/thread/479841?ContentTypeID=1</link><pubDate>Sun, 21 Apr 2024 21:43:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b11eb49-9d43-4726-9976-c1f937e00669</guid><dc:creator>LampLighter</dc:creator><description>&lt;p&gt;I have found a temporary solution. In zephyr/drivers/display/ssd1306.c, change these lines:&lt;pre class="ui-code" data-mode="c_cpp"&gt;static int ssd1306_write_default(const struct device *dev, const uint16_t x, const uint16_t y,
				 const struct display_buffer_descriptor *desc, const void *buf,
				 const size_t buf_len)
{
	uint8_t cmd_buf[] = {
		SSD1306_SET_MEM_ADDRESSING_MODE,
		SSD1306_ADDRESSING_MODE,
		SSD1306_SET_COLUMN_ADDRESS,
		x,
		(x + desc-&amp;gt;width - 1),
		SSD1306_SET_PAGE_ADDRESS,
		y/8,
		((y + desc-&amp;gt;height)/8 - 1)
	};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;to this:&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static int ssd1306_write_default(const struct device *dev, const uint16_t y,
				 const struct display_buffer_descriptor *desc, const void *buf,
				 const size_t buf_len)
{
	uint8_t cmd_buf[] = {
		SSD1306_SET_MEM_ADDRESSING_MODE,
		SSD1306_ADDRESSING_MODE,
		SSD1306_SET_COLUMN_ADDRESS,
		SSD1306_SET_LOWER_COL_ADDRESS,
		SSD1306_SET_HIGHER_COL_ADDRESS,
		SSD1306_SET_PAGE_ADDRESS,
		y/8,
		((y + desc-&amp;gt;height)/8 - 1)
	};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Where&lt;/p&gt;
&lt;p&gt;SSD1306_SET_LOWER_COL_ADDRESS = 0x20&lt;br /&gt;SSD1306_SET_HIGHER_COL_ADDRESS = 0x5f&lt;/p&gt;
&lt;p&gt;Also, the multiplex ratio in the device tree configuration should be set to height-1, so 31.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am not sure where I am supposed to be able to set the &amp;quot;x&amp;quot; value in the ssd1306_write_default() function. This would allow me to configure the display without needing to modify the zephyr source files.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>