<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Using Touch Screen with Omega2]]></title><description><![CDATA[<p dir="auto">Just wondering if anyone has had any experience using a touch screen with an omega project. I am trying to find a suitable touch screen if anyone has any recommendations? (specific links)</p>
<p dir="auto">I've noticed most are shields for the arduino and rely on arduino libraries, so if there is a workaround for that besides the dock please enlighten me.</p>
<p dir="auto">I would like to use the SPI capabilities of the omega to interact with the screen.</p>
<p dir="auto">Thanks</p>
]]></description><link>http://community.onion.io/topic/3436/using-touch-screen-with-omega2</link><generator>RSS for Node</generator><lastBuildDate>Tue, 16 Jun 2026 15:25:26 GMT</lastBuildDate><atom:link href="http://community.onion.io/topic/3436.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 Jan 2019 13:44:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Using Touch Screen with Omega2 on Thu, 31 Jan 2019 13:44:01 GMT]]></title><description><![CDATA[<p dir="auto">Just wondering if anyone has had any experience using a touch screen with an omega project. I am trying to find a suitable touch screen if anyone has any recommendations? (specific links)</p>
<p dir="auto">I've noticed most are shields for the arduino and rely on arduino libraries, so if there is a workaround for that besides the dock please enlighten me.</p>
<p dir="auto">I would like to use the SPI capabilities of the omega to interact with the screen.</p>
<p dir="auto">Thanks</p>
]]></description><link>http://community.onion.io/post/18779</link><guid isPermaLink="true">http://community.onion.io/post/18779</guid><dc:creator><![CDATA[Angus Ryan]]></dc:creator><pubDate>Thu, 31 Jan 2019 13:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Using Touch Screen with Omega2 on Thu, 31 Jan 2019 14:35:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/6248">@Angus-Ryan</a> I'm currently experimenting in this field. I want to use the existing linux' <a href="https://www.kernel.org/doc/Documentation/fb/framebuffer.txt" rel="nofollow">frame buffer</a> <code>fbtft</code> drivers as a solid abstraction layer to the display hardware and not directly talking to the controller chips.<br />
Drivers exist in the linux kernel tree for ILI93xx, SSD13xx and other popular chips used in small TFT and OLED displays.</p>
<p dir="auto">On top of the frame buffer device, I intend to use the <a href="https://littlevgl.com" rel="nofollow">LittlevGL</a> on top as the toolset to create GUIs.</p>
<p dir="auto">I have just started experimenting, but there are other users who already have worked with fbtft and have posted useful info <a href="https://community.onion.io/topic/3050/fb_ili9341-80fps-up-to-100fps-memcpy-387-fps-minimal" rel="nofollow">here</a> and <a href="http://community.onion.io/topic/3056/omega2-omega2plus-image-build-process-for-fbtft-frame-buffer-tftlcd-devices">here</a>.</p>
<p dir="auto">As far as I can see in Onion's <a href="https://github.com/OnionIoT/source" rel="nofollow">published fork of OpenWrt</a>, the <code>fbtft</code> kernel drivers are not yet included in the Omega builds.</p>
<p dir="auto">My goal is to create proper patch sets to enable TFT support in a clean openwrt tree, and provide the needed packages to build littlevGL in my own <a href="https://github.com/plan44/plan44-feed" rel="nofollow">openwrt feed</a></p>
<p dir="auto">I just started doing that, I'll keep you posted about progress.</p>
<p dir="auto">About specific links - I ordered <a href="https://www.aliexpress.com/item/2-4-inch-320-240-SPI-Serial-TFT-LCD-Module-Display-Screen-with-Touch-Panel-Driver/32913532478.html?spm=a2g0s.9042311.0.0.73bf4c4dndiRF4" rel="nofollow">this one</a> from ali express to start with - it uses the ILI9341 chip. Hasn't arrived yet, hope it'll work <img src="http://community.onion.io/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=ic093v0mjao" class="not-responsive emoji emoji-android emoji--wink" title=";-)" alt="😉" /></p>
]]></description><link>http://community.onion.io/post/18780</link><guid isPermaLink="true">http://community.onion.io/post/18780</guid><dc:creator><![CDATA[luz]]></dc:creator><pubDate>Thu, 31 Jan 2019 14:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Using Touch Screen with Omega2 on Fri, 01 Feb 2019 00:19:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/1033">@luz</a> Thanks that is a perfect response, please do keep me updated !</p>
]]></description><link>http://community.onion.io/post/18783</link><guid isPermaLink="true">http://community.onion.io/post/18783</guid><dc:creator><![CDATA[Angus Ryan]]></dc:creator><pubDate>Fri, 01 Feb 2019 00:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Using Touch Screen with Omega2 on Fri, 22 Feb 2019 15:47:09 GMT]]></title><description><![CDATA[<p dir="auto">A bit of progress:</p>
<p dir="auto">I have created a patch that can be applied to the openwrt 18.06.2 tree which makes fbtft and all fb_xxx chip drivers available in <code>make menuconfig</code>, under <em>Kernel Modules -&gt; Video Support -&gt; kmod-fbtft-support</em>.</p>
<p dir="auto">The main patch that adds these options is <a href="https://github.com/plan44/plan44-feed/blob/master/p44bandit-config/p44build/global-patches/230-fbtft-kernel-drivers-enable.diff" rel="nofollow">this one</a>.</p>
<p dir="auto">To make sure the build does not try to create a VGA console, I also added <a href="https://github.com/plan44/plan44-feed/blob/master/p44bandit-config/p44build/global-patches/240-mt76x8-no-vga-console.diff" rel="nofollow">another small patch</a>.</p>
<p dir="auto">Finally, if you do this on a fresh OpenWrt 18.06 tree (and not on the onion fork which already contains mt7688 SPI fixes), you also need:</p>
<ul>
<li><a href="https://github.com/plan44/plan44-feed/blob/master/p44bandit-config/p44build/global-patches/210-mt7621-spi-intelligent-halfduplex.diff" rel="nofollow">this one</a> for making MT7688 hardware SPI work at least in pseudo-fullduplex (real full duplex is broken in MT7688 hardware) and to allow SPI transfers &gt;16bytes.</li>
<li>and <a href="https://github.com/plan44/plan44-feed/blob/master/p44bandit-config/p44build/global-patches/211-mt7621-spi-buggy-dt-message-fix.diff" rel="nofollow">this one</a> is not technically needed but nice to have because it fixes the bogus error message at startup regarding SPI and DT.</li>
</ul>
<p dir="auto">With these patches in place, you can select fbtft and a suitable display driver in menuconfig (I use fb_ssd1306 with a <a href="https://www.aliexpress.com/item/0-96-Inch-SPI-OLED-Display-Module-White-blue-color-128X64-OLED-7Pin-Yellow-blue-color/32831561142.html" rel="nofollow">tiny 128x64 OLED</a> for now, because that's the only display I have right now, the bigger color LCDs I ordered haven't arrived yet). Then build the firmware and install.</p>
<p dir="auto"><code>fbtft</code> and all dependencies are autoloaded at startup, but the actual display must be instantiated as follows:</p>
<pre><code># load the chip driver
insmod fb_ssd1306
# parametrize it via the `fbtft_device` helper module
insmod fbtft_device custom name=fb_ssd1306 busnum=0 cs=1 speed=16000000 mode=0 fps=50 gpios=reset:0,dc:1 width=128 height=64 verbose=3
</code></pre>
<p dir="auto">After that, the linux framebuffer console automatically kicks in and the display shows a blinking cursor <img src="http://community.onion.io/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=ic093v0mjao" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" title=":-)" alt="🙂" /></p>
<pre><code>clear &gt;/dev/tty1
echo "Hello World!" &gt;/dev/tty1
echo "Hello Omega!" &gt;/dev/tty1
echo "Hello OLED!" &gt;/dev/tty1
# connect a USB keyboard and have a supertiny console:
login -f root &lt;/dev/tty &gt;/dev/tty1 2&gt;&amp;1
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1550848909993-omega2-oled-console-resized.jpg" alt="0_1550848792287_Omega2 OLED console.jpg" class="img-responsive img-markdown" /></p>
<p dir="auto">This type of display with so-called 4-wire SPI needs some extra signals (<em>dc, reset</em>, see <code>gpios</code> part in the <code>insmod fbtft_device</code> command). The complete wiring of what you see in the photo is:</p>
<ul>
<li>GND = GND</li>
<li>VCC = 3.3V</li>
<li>D0  = SCK -&gt; Omega SCK/GPIO7</li>
<li>D1  = MOSI -&gt; Omega MOSI/GPIO8 <em>(NOTE: Omega2 <strong>does not coldboot</strong> when this is connected to the SSD1306 OLED, probably need to add resistor into the line or remove pullup/down on the display itself)</em></li>
<li>RES = Reset -&gt; Omega GPIO0</li>
<li>DC  = Data/Command -&gt; Omega GPIO1</li>
<li>CS  = Chip Select -&gt; Omega CS1/GPIO6</li>
</ul>
<p dir="auto">Next step will be a sample app with <a href="https://blog.littlevgl.com/2018-01-03/linux_fb" rel="nofollow">LittlevGL</a> but probably I'll wait with that until I have a color display, will be more fun then <img src="http://community.onion.io/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=ic093v0mjao" class="not-responsive emoji emoji-android emoji--wink" title=";-)" alt="😉" /></p>
]]></description><link>http://community.onion.io/post/18965</link><guid isPermaLink="true">http://community.onion.io/post/18965</guid><dc:creator><![CDATA[luz]]></dc:creator><pubDate>Fri, 22 Feb 2019 15:47:09 GMT</pubDate></item></channel></rss>