<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nextion</title>
	<atom:link href="https://nextion.tech/feed/" rel="self" type="application/rss+xml" />
	<link>https://nextion.tech</link>
	<description>Ease of Use and Cost-effective HMI Solution</description>
	<lastBuildDate>Sun, 21 Jun 2026 22:14:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>The Nextion Web Serial Framework is alive &#8211; and online!</title>
		<link>https://nextion.tech/2026/06/22/the-nextion-web-serial-framework-is-alive-and-online/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 21 Jun 2026 22:14:53 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=461545</guid>

					<description><![CDATA[As promised in my last blog, here a first release of the Nextion Web Serial Framework! It allows to interact with all "classic" Nextion HMIs, be it the Basic, the Enhanced, the Intelligent, the Discovery, or the Edge series without having to install the Nextion Editor. A computer running Windows, macOS, or Linux and a web browser with Serial Api support. The current releases of Mozilla Firefox, Google Chrome, Microsoft Edge, and Opera will do the job. I understand that you can't wait to try it out, but please continue reading, first, I'll give you the URL of the live version and the GitHub repo below!]]></description>
										<content:encoded><![CDATA[<h2>The Nextion Web Serial Framework is alive &#8211; and online!</h2>
<p><img fetchpriority="high" decoding="async" class="alignnone size-fusion-600 wp-image-461546" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-1200x846.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-21.34.32-1536x1083.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>As promised <a href="https://bit.ly/nexblog260607">in my last blog</a>, here a first release of the Nextion Web Serial Framework! It allows to interact with all &#8220;classic&#8221; Nextion HMIs, be it the Basic, the Enhanced, the Intelligent, the Discovery, or the Edge series without having to install the Nextion Editor. A computer running Windows, macOS, or Linux and a <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API#browser_compatibility">web browser with Serial Api support</a>. The current releases of Mozilla Firefox, Google Chrome, Microsoft Edge, and Opera will do the job. I understand that you can&#8217;t wait to try it out, but please continue reading, first, I&#8217;ll give you the URL of the live version and the GitHub repo below!</p>
<p>The current version v.0.2 does not yet implement all the planned features, but it allows already to send commands to the Nextion, and it decodes everything which the Nextion sends back and displays it in the Nextion Output pane. I&#8217;ve made an effort to decode and to display everything in an easily human readable form instead of displaying just the raw bytes or ASCII characters as the Nextion Debugger does. And it saves you a lot of time because there is no more need to look up the Nextion return codes, everything is translated to the corresponding text from the Nextion Instruction Set. Nevertheless, you may at each moment check the &#8220;Debug&#8221; checkbox below the output panel to have the raw bytes appended to the display as in the lower part of the picture above.</p>
<p>On top of that, I allowed to give a different color to the different types of messages: &#8220;Normal&#8221; returns like strings and numbers are <span style="color: #0000ff;">blue</span>, status messages are <span style="color: #808080;">grey</span>, events are <span style="color: #008000;">green</span>, commands are <span style="color: #800000;">brown</span>, and errors are <strong><span style="color: #ff0000;">bold and red</span></strong>. At the beginning of each line, you&#8217;ll also find a &#8220;&gt;&#8221; for incoming messages or a &#8220;&lt;&#8221; for outgoing messages (commands).</p>
<h3>Light and shadow &#8211; your help is needed</h3>
<p>The German poet Johann Wolfgang von Goethe said once &#8220;Where there is much light, there is also much shadow&#8221;. I met the shadow when I clicked the &#8220;Connect new&#8221; button for the first time. Among others, it makes a dialog pop up to select the COM port which you want to use with your Nextion. This dialog is provided by the browser and its web serial API and by default, it lists tons of (virtual) USB and Bluetooth ports which makes it difficult to identify the port with the USB-to Serial adapter where your Nextion HMI is actually connected to. Thus I decided to use the <em>filters</em> option of the API&#8217;s <em>requestPort </em>function. It&#8217;s a kind of whitelist where the developer can add USB VID and PID pairs. Having nothing else at hands, the only whitelisted adapter is actually the <a href="https://itead.cc/product/nextion-foca-max-5v2a-output-usb-to-ttl-serial-converter-board/ref/35/">Nextion Foca Max Adapter</a> which is not only a USB to Serial converter based on the CP2102 chip, but which cares also about a stable and clean power supply for your Nextion HMI. Thus, if you don&#8217;t yet have one, it&#8217;s perhaps time to order one by <a href="https://itead.cc/product/nextion-foca-max-5v2a-output-usb-to-ttl-serial-converter-board/ref/35/">clicking here</a>.</p>
<p>Or, you send me an email with the VID and PID pair of your preferred and known working adapter and I&#8217;ll be happy to add it to the list which is by the way in the nxconfig.js file. My email address can be found in the last paragraph. Or you create directly a pull request on GitHub.</p>
<h3>Prepare your Nextion HMI for a first test</h3>
<p>Create a new .hmi project, select the Nextion model which you have at hands and its orientation, set the leave the program.s file as is. Add a font with 16px height. On the default page, change its background color to something pleasing, add a Number component which will by default be named <em>n0</em>, and a Text component <em>t0</em>. Set the <em>txt_maxl</em> attribute to 20 and its <em>txt</em> to &#8220;<strong>Some text</strong>&#8220;. Add a timer <em>tm0</em>, set its <em>en</em> attribute to <strong>0</strong> and its <em>tim</em> attribute to <strong>4000</strong>. Now to the event code panes: for the page itself, for the Text t0 and the Number n0, don&#8217;t put any code, but for each of these 3 items, check the &#8220;Send Component ID&#8221; in both places, the <em>Touch Press Event</em> and the <em>Touch Release Event&#8221;</em>. Finally, in the <em>Timer Event </em>code pane of timer tm0, add the following two lines:</p>
<pre>n0.val++
<span style="color: #ff0000;">get</span> n0.val</pre>
<p>At startup, this timer is disabled, but we will enable it later &#8220;by hand&#8221; over serial through the browser to produce a constant data flow for our test. Instead, you may download this .hmi file and adapt it in the Nextion Editor to your Nextion model: <a href="https://nextion.tech/wp-content/uploads/2026/06/frameworktest.HMI_.zip">frameworktest.HMI</a>. Compile this miniature project and upload it to your Nextion. Don&#8217;t forget to close the upload window to free the COM port!</p>
<h3>A word about the Code</h3>
<p>For a maximum of compatibility, I decided to create everything only using pure html/css and javascript. No third party libraries or tools, no jQuery. And to make it easily re-usable (in a later stage) for those among you who want to customise everything to deploy your specific variant to your customers, everything will be well encapsulated in javascript classes. Unfortunately, this is not yet fully accomplished in the currently published v.0.2 because I started with the nxComm class (to handle the serial stuff) and added the nxUI class (to handle everything visual) later. In the next version, the nxUI class will be in control of everything and the nxComm class its slave, but for the moment, it&#8217;s still partly the other way round which makes the code less undqerstable and customisable. Thus, please be patient, v.0.3 where everything will be cleaned up and more logical will come next Sunday. But if you are curious, you may already have a look onto the <a href="https://bit.ly/nextionweb-github">GitHub repository</a>.</p>
<h3>Finally, Action!</h3>
<p>Your Nextion HMI with the miniature test project running as described above should be connected to the Foca Max Adapter and the latter to your computer. For the moment, switch the Foca Max&#8217; power switch off. Now open <a href="https://bit.ly/nextionweb" target="_blank" rel="noopener">this link</a> and you&#8217;ll see the following in a new tab. Clicking the &#8220;Connect new&#8221; button brings the port selector up. Select the CP2102 USB to UART Bridge Controller (that&#8217;s the Foca Max Adapter) and click &#8220;Connect&#8221;. Then, the word &#8220;Disconnected&#8221; in the bottom left status bar section should show <em>Connected to {&#8220;usbProductId&#8221;:&#8221;0xea60&#8243;,&#8221;usbVendorId&#8221;:&#8221;0x10c4&#8243;}</em>.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461549" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-600x438.png" alt="" width="600" height="438" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-200x146.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-300x219.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-360x263.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-400x292.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-600x438.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-768x561.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-800x584.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-1024x748.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-1200x876.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.19.36-1536x1122.png 1536w" sizes="(max-width: 600px) 100vw, 600px" />  <img decoding="async" class="alignnone size-fusion-600 wp-image-461550" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-600x438.png" alt="" width="600" height="438" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-200x146.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-300x219.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-360x263.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-400x292.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-600x438.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-768x561.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-800x584.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-1024x748.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-1200x876.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.22.28-1536x1122.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, it&#8217;s time to action the power switch on the Foca Max Adapter and to observe the Nextion booting. Then, to get more verbose output, we enter <em>bkcmd=3</em> in the command line and click &#8220;Send&#8221;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461551" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-600x106.png" alt="" width="600" height="106" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-200x35.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-300x53.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-360x63.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-400x71.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-600x106.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-768x135.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-800x141.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01-1024x181.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.28.01.png 1134w" sizes="(max-width: 600px) 100vw, 600px" />  <img decoding="async" class="alignnone size-fusion-600 wp-image-461552" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-600x106.png" alt="" width="600" height="106" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-200x35.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-300x53.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-360x63.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-400x71.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-600x106.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-768x135.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-800x141.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47-1024x181.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.30.47.png 1134w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>The result is visible in the output pane.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461553" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-600x106.png" alt="" width="600" height="106" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-200x35.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-300x53.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-360x63.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-400x71.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-600x106.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-768x135.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-800x141.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17-1024x181.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.32.17.png 1134w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>On our Nextion, we should see &#8220;Some Text&#8221; in the Text component on the screen. Let&#8217;s modify it by sending <em>t0.txt=&#8221;It works!&#8221;</em>. Then, let&#8217;s modify the 0 in the Number component by sending <em>n0.val=-77</em>.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461556" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-600x160.png" alt="" width="600" height="160" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-200x53.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-300x80.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-360x96.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-400x107.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-600x160.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-768x205.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-800x213.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36-1024x273.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.42.36.png 1134w" sizes="(max-width: 600px) 100vw, 600px" />  <img decoding="async" class="alignnone size-fusion-600 wp-image-461557" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-600x160.png" alt="" width="600" height="160" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-200x53.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-300x80.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-360x96.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-400x107.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-600x160.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-768x205.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-800x213.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58-1024x273.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.46.58.png 1134w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, let&#8217;s read back the values to see how &#8220;normal&#8221; returns are displayed. Send <em>get t0.txt</em> and then <em>get n0.val</em> and look what happens. Afterwards touch the Number component and release it.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461558" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-600x348.png" alt="" width="600" height="348" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-200x116.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-300x174.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-360x209.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-400x232.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-600x348.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-768x446.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-800x464.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57-1024x594.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.50.57.png 1134w" sizes="(max-width: 600px) 100vw, 600px" />  <img decoding="async" class="alignnone size-fusion-600 wp-image-461559" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-600x348.png" alt="" width="600" height="348" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-200x116.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-300x174.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-360x209.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-400x232.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-600x348.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-768x446.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-800x464.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32-1024x594.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-21-a-23.52.32.png 1134w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>All Nextion events are decoded as javascript objects. This will allow us later to create additional callback functions and filters. Now, let&#8217;s check the &#8220;Debug&#8221; checkbox first, just for fun, to see also the raw bytes which represent the payload of the message. The preceding ident byte like 0x70 for strings or 0x71 for numbers are always suppressed. Then let&#8217;s enable the timer tm0 by sending <em>tm0.en=1</em>, wait a few seconds, and observe the output pane:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-461560" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-600x617.png" alt="" width="600" height="617" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-200x206.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-292x300.png 292w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-360x370.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-400x411.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-600x617.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-768x790.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-800x823.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57-996x1024.png 996w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-22-a-00.03.57.png 1134w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>I think that this is already a nice playground and for today, we&#8217;ll leave it at that. There are a few more features already halfway implemented, but I think that it&#8217;s better to show these next Sunday with the upcoming version v.0.3.</p>
<h3 class="fusion-responsive-typography-calculated" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p>&nbsp;</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F22%2Fthe-nextion-web-serial-framework-is-alive-and-online%2F&amp;linkname=The%20Nextion%20Web%20Serial%20Framework%20is%20alive%20%E2%80%93%20and%20online%21" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F22%2Fthe-nextion-web-serial-framework-is-alive-and-online%2F&amp;linkname=The%20Nextion%20Web%20Serial%20Framework%20is%20alive%20%E2%80%93%20and%20online%21" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F22%2Fthe-nextion-web-serial-framework-is-alive-and-online%2F&amp;linkname=The%20Nextion%20Web%20Serial%20Framework%20is%20alive%20%E2%80%93%20and%20online%21" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F22%2Fthe-nextion-web-serial-framework-is-alive-and-online%2F&#038;title=The%20Nextion%20Web%20Serial%20Framework%20is%20alive%20%E2%80%93%20and%20online%21" data-a2a-url="https://nextion.tech/2026/06/22/the-nextion-web-serial-framework-is-alive-and-online/" data-a2a-title="The Nextion Web Serial Framework is alive – and online!"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Control your Nextion HMI from (almost) any web browser</title>
		<link>https://nextion.tech/2026/06/08/control-your-nextion-hmi-from-almost-any-web-browser/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 07 Jun 2026 21:14:46 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=460857</guid>

					<description><![CDATA[In the beginning, there was an email from a reader who asked if there was a stand-alone version of the Nextion upload tool, which is normally integrated in the Nextion Editor. The reader had created a commercial project around a Nextion HMI, and sold several hundreds worldwide. The problem now is updates. Many of his customers are not really ok with installing the whole Nextion Editor just for flashing a new tft file. Thus his request, which we couldn't yet satisfy. But recently, I stumbled over an amazing thing which is in the world for some time. It's called the Web Serial API which allows to access local serial ports from a web page via Javascript. In the beginning, there was not much browser support, but now, there are Chrome, Edge, Opera, and Firefox which support it. And the initial security concerns (access local resources from the web???) are also solved: the user has to select and authorise the serial port access each time the page with the web serial application is loaded.]]></description>
										<content:encoded><![CDATA[<h2>Control your Nextion HMI from (almost) any web browser</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460858" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-1200x846.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-20.16.54-1536x1083.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>In the beginning, there was an email from a reader who asked if there was a stand-alone version of the Nextion upload tool, which is normally integrated in the Nextion Editor. The reader had created a commercial project around a Nextion HMI, and sold several hundreds worldwide. The problem now is updates. Many of his customers are not really ok with installing the whole Nextion Editor just for flashing a new tft file. Thus his request, which we couldn&#8217;t yet satisfy.</p>
<p>But recently, I stumbled over an amazing thing which is in the world for some time. It&#8217;s called the Web Serial API which allows to access local serial ports from a web page via Javascript. In the beginning, there was not much browser support, but now, there are Chrome, Edge, Opera, and Firefox which support it. And the initial security concerns (access local resources from the web???) are also solved: the user has to select and authorise the serial port access each time the page with the web serial application is loaded.</p>
<p>&#8220;Marvellous&#8221;, I thought and started diving into the documentation. One html file, some css styling and javascript code, and we are done. During the development phase, there is even no need for a web server. You can simply open the index.html file in the browser and everything will run file based in the local environment. So, I started and I discovered that there are some hurdles and a steep learning curve because the serial communication is based on stream objects, asynchronous calls, and (hopefully) resolved promises &#8211; things that were beyond my actual javascript knowledge. That looks like an interesting thing to explore and I&#8217;ll take you with me on this travel.</p>
<h3>What we want to achieve</h3>
<p>A compact javascript object with simple and easy to apply exported properties and methods to do about the same as the corresponding parts in the Nextion Editor:<br />
&#8211; &#8211; Everything needed to easily connect to the serial port<br />
&#8211; &#8211; Retrieving some system info from the connect string<br />
&#8211; &#8211; Function to initialise and set the RTC<br />
&#8211; &#8211; Command input and sendCommand() function<br />
&#8211; &#8211; Function(s) to read and write the Nextion&#8217;s EEPROM<br />
&#8211; &#8211; A firmware updater<br />
&#8211; &#8211; File transfer from and to the SD card and/or the local storage memory area (if configured)<br />
&#8211; &#8211; A listener, able to parse the return data from the Nextion HMI and to throw callback functions</p>
<p>That&#8217;s a long list, so we will advance step by step.</p>
<p>If you haven&#8217;t yet the famous Foca Max adapter which cares about the power supply for any Nextion HMI screen AND the USB-to-TTLserial conversion and which features an on-off switch and additional status LEDs, you may look at it and order by clicking here: <a href="https://itead.cc/product/nextion-foca-max-5v2a-output-usb-to-ttl-serial-converter-board/ref/35/">Nextion Foca Max Adapter</a>.</p>
<h3>What we have today</h3>
<p>The connection stuff is already working &#8211; phew! The code snippet below shows you that we check first if the browser supports the web serial API. Then we define a filter to prevent errors, so the the port selector list will only show any connected Nextion Foca Max boards. You may modify this if you use a different USB to TTL Serial adapter, but you should basically keep the filtering, so that you or your users will not get a long list of virtual com ports and bluetooth devices to select from. Finally, the requestPort() function is called which presents the user to select a port from the list (which shows ideally only the Foca Max adapter to prevent confusion, thanks to the filter) and to authorise the access to it.</p>
<pre>static selectPort() {
    if ("serial" in navigator) {
        let portFilter = { "usbProductId": 60000, "usbVendorId": 4292 }; <span style="color: #339966;">// Filter for Nextion Foca Max adapter, can be adjusted as needed</span>
        navigator.serial.requestPort({ filters: [portFilter] }).then((port) =&gt; {
            this.#nxPort = port;
	    console.log("Port selected:", port.getInfo());
	    document.getElementById("selectStatus").textContent = "✅";
	}).catch((error) =&gt; {
	    console.error("Error selecting port:", error);
	    document.getElementById("selectStatus").textContent = "❌";
	});
    } else {
	console.error("Web Serial API not supported in this browser.");
    }
}</pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460861" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.09.50.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /> <img decoding="async" class="alignnone size-fusion-600 wp-image-460865" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.18.20.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Once the port selected, we have the baud rate selector which on change calls a simple function so set the baud rate:</p>
<pre>static set baudRate(baud) {
    this.#nxBaud = baud;
    console.log("Baud rate set to:", this.#nxBaud);
}</pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460862" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.11.31.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>With a port and a baud rate, we can now logically connect to our Nextion screen:</p>
<pre>static openPort() {
    if (this.#nxPort &amp;&amp; this.#nxBaud &gt; 0) {
	this.#nxPort.open({ baudRate: this.#nxBaud }).then(() =&gt; {
	    console.log("Port opened with baud rate:", this.#nxBaud);
	    document.getElementById("connectStatus").textContent = "✅";
	    this.#initHMI();
	}).catch((error) =&gt; {
	    console.error("Error opening port:", error);
	    document.getElementById("connectStatus").textContent = "❌";
	});
    } else {
	console.error("Port not selected or baud rate not set.");
    }
}</pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460863" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.12.25.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>As you can see in the last code snippet, a private function #initHMI() is called after successfully connecting. It&#8217;s just a wrapper to set up the read and write stream objects which is not yet ready. On the other hand, the just opened port can naturally also be closed:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460864" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.15.01.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>&#8230; and the redirection from the javascript console to the better visible &#8220;Log Output&#8221; pane works already, too!</p>
<p>Actually, I&#8217;m working on the elementary functions to send and receive data and I hope to get these working until next weekend. Then, when the actual web interface and the functionality will be in sync, I&#8217;ll put the whole stuff on GitHub and you can better follow the evolutions. For the listener, I have already a rudimentary function which receives data from the Nextion and logs it to the console without further parsing. Here the result when the Nextion executes get sys0, sys0++ every second with the help of a timer:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460867" src="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-600x506.png" alt="" width="600" height="506" srcset="https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-200x169.png 200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-300x253.png 300w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-360x304.png 360w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-400x337.png 400w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-600x506.png 600w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-768x648.png 768w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-800x675.png 800w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-1024x864.png 1024w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58-1200x1012.png 1200w, https://nextion.tech/wp-content/uploads/2026/06/Capture-decran-2026-06-07-a-22.56.58.png 1316w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3 class="" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F08%2Fcontrol-your-nextion-hmi-from-almost-any-web-browser%2F&amp;linkname=Control%20your%20Nextion%20HMI%20from%20%28almost%29%20any%20web%20browser" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F08%2Fcontrol-your-nextion-hmi-from-almost-any-web-browser%2F&amp;linkname=Control%20your%20Nextion%20HMI%20from%20%28almost%29%20any%20web%20browser" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F08%2Fcontrol-your-nextion-hmi-from-almost-any-web-browser%2F&amp;linkname=Control%20your%20Nextion%20HMI%20from%20%28almost%29%20any%20web%20browser" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F06%2F08%2Fcontrol-your-nextion-hmi-from-almost-any-web-browser%2F&#038;title=Control%20your%20Nextion%20HMI%20from%20%28almost%29%20any%20web%20browser" data-a2a-url="https://nextion.tech/2026/06/08/control-your-nextion-hmi-from-almost-any-web-browser/" data-a2a-title="Control your Nextion HMI from (almost) any web browser"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to develop Open Nextion projects natively on Mac</title>
		<link>https://nextion.tech/2026/05/26/develop-open-nextion-projects-natively-on-mac/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Mon, 25 May 2026 20:10:08 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=460206</guid>

					<description><![CDATA[Most Nextion enthusiasts are used to developing with a comfy IDE, that's why I started blogging about the Genius series HMI and the underlying Open Nextion standard using the Arduino IDE and VS Code (part II here), using the corresponding plugins. The underlying framework, the ESP-IDF, provided by Espressif, the manufacturer of the ESP32s3, the heart of the Genius series HMI, is a huge collection of command line software, comprising libraries, compiler, linker and additional tools. Thus, the side behind the mirror for most of us. Nevertheless, I learned how to deal with it and wrote about my experience under Windows here. Afterwards, I found that it was less complicated as I had feared, and I decided to repeat the experience on one of my Macs.]]></description>
										<content:encoded><![CDATA[<h2>How to develop Open Nextion projects natively on Mac</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460204" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-300x211.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.51.21.png 1172w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Most Nextion enthusiasts are used to developing with a comfy IDE, that&#8217;s why I started blogging about the <a href="https://bit.ly/OpenNextionGenius">Genius series HMI</a> and the underlying Open Nextion standard using the <a href="https://bit.ly/nexblog260412">Arduino IDE</a> and <a href="https://bit.ly/nexblog260419">VS Code</a> (part II <a href="https://bit.ly/nexblog260426">here</a>), using the corresponding plugins. The underlying framework, the ESP-IDF, provided by Espressif, the manufacturer of the ESP32s3, the heart of the Genius series HMI, is a huge collection of command line software, comprising libraries, compiler, linker and additional tools. Thus, the side behind the mirror for most of us. Nevertheless, I learned how to deal with it and wrote about <a href="https://bit.ly/nexblog260510">my experience under Windows here</a>. Afterwards, I found that it was less complicated as I had feared, and I decided to repeat the experience on one of my Macs.</p>
<p>Mac users know that macOS is built on a fork of BSD Unix. That makes that many command-line tools can run in a terminal window on a Mac, and so does the ESP-IDF. So, the installation procedure on a Mac is basically very Linux-like. It&#8217;s just that macOS does not come with a Linux-like package manager. Fortunately, there are two free tools Homebrew and MacPorts. You should have one of both installed on your system.  We&#8217;ll go with my favourite, Homebrew, here.</p>
<h3>Step 1: Installing a package manager</h3>
<p>Open a Terminal window. This can be found under /Applications/Utils. Enter the following line and press Return.</p>
<pre>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460211" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-600x452.png" alt="" width="600" height="452" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-200x151.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-300x226.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-360x271.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-400x301.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-600x452.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-768x578.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-800x603.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-1024x771.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44-1200x904.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.02.44.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, the magic will happen and when the installation routine has finished, you&#8217;ll be required to execute three additional commands separately to add Homebrew to the system path, so that you can call it from everywhere as indicated on the screen under ==&gt; Next steps.</p>
<h3>Step 2: Installing dependencies</h3>
<p>The ESP-IDF requires some external tools which we install with the next command, using the just installed Homebrew:</p>
<pre id="codecell3"><span class="n">brew</span> <span class="n">install</span> <span class="n">cmake</span> <span class="n">ninja</span> <span class="n">dfu</span><span class="o">-</span><span class="n">util</span></pre>
<h3><img decoding="async" class="alignnone size-fusion-600 wp-image-460212" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-600x452.png" alt="" width="600" height="452" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-200x151.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-300x226.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-360x271.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-400x301.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-600x452.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-768x578.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-800x603.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-1024x771.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51-1200x904.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.03.51.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /><br />
Step 3: Checking your Python version</h3>
<p>Since the ESP-IDF is written in Python, you need to have Python 3 installed on your system. Up to macOS 10.15 (Catalina), Python 2.7 came with it. Newer versions of macOS don&#8217;t come with Python. Thus, lets check that out with</p>
<pre id="codecell10"><span class="n">python3</span> <span class="o">--</span><span class="n">version</span></pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460215" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-600x452.png" alt="" width="600" height="452" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-200x151.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-300x226.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-360x271.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-400x301.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-600x452.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-768x578.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-800x603.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-1024x771.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17-1200x904.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.11.17.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>If there is an error like in my screenshot, let&#8217;s install python3 with the following command</p>
<pre id="codecell11"><span class="n">brew</span> <span class="n">install</span> <span class="n">python3</span></pre>
<h3>Step 4: Download the ESP-IDF</h3>
<p>This is done with the <em>git clone</em> command as follows, we decide for the version 5.4.1 since it was used by my colleagues to develop the example projects for Open Nextion:</p>
<pre>mkdir -p ~/esp
cd ~/esp
git clone -b v5.4.1 --recursive https://github.com/espressif/esp-idf.git</pre>
<p>This will download the ESP-IDF into ~/esp/esp-idf. If you get an error instead, like <em>zsh: command not found: git</em>, you need to install the free developer tools from Apple with the following command:</p>
<pre>xcode-select --install</pre>
<p>Afterwards, run the two last of the three commands above, again.</p>
<h3>Step 5: Set up the toolchain</h3>
<p>This is needed to add the support files for the specific ESP hardware:</p>
<pre id="codecell14"><span class="nb">cd</span> ~/esp/esp-idf
./install.sh esp32s3</pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460216" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-600x452.png" alt="" width="600" height="452" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-200x151.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-300x226.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-360x271.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-400x301.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-600x452.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-768x578.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-800x603.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-1024x771.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11-1200x904.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-24-a-19.22.11.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Once this accomplished, we are almost done.</p>
<h3>Step 6: The environment helper</h3>
<p>The last thing is to set some environment variables, so that you can call the ESP-IDF from whatever source code directory which you want. There is explicitly NO permanent adding to the system path because you can theoretically have several different ESP-IDF versions installed on your system in parallel, and each one needs its own environment. Thus, let&#8217;s create a command alias and add it to our hidden <em>.zprofile</em> file:</p>
<pre>nano ~/.zprofile</pre>
<p>With that, you&#8217;ll see a text based text editor like in the screenshot below. Move to the last empty line with the cursor keys, the mouse won&#8217;t work here, and add the following:</p>
<pre id="codecell26"><span class="nb">alias</span> <span class="nv">get_idf</span><span class="o">=</span><span class="s1">'. $HOME/esp/esp-idf/export.sh'
<img decoding="async" class="alignnone size-fusion-600 wp-image-460219" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-600x416.png" alt="" width="600" height="416" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-200x139.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-300x208.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-360x249.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-400x277.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-600x416.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-768x532.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-800x554.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-1024x710.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11-1200x832.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.16.11.png 1394w" sizes="(max-width: 600px) 100vw, 600px" />
</span></pre>
<p>Then, press Ctrl+o to save and confirm with the Return key, and then Ctrl+x to quit the editor. Then, activate the helper with</p>
<pre>source ~/.zprofile</pre>
<p>and we are done. With this, we may move to whatever directory with source code, activate the IDF with <em>get_idf</em>, and then start building, configuring, and uploading our Open Nextion Projects. And the setup is finished.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460218" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-600x416.png" alt="" width="600" height="416" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-200x139.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-300x208.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-360x249.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-400x277.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-600x416.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-768x532.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-800x554.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-1024x710.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36-1200x832.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.28.36.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3>Step 7: Get the example project files</h3>
<p>Depending on which Genius series HMI you have, download the example files for either the <a href="https://nextion.tech/wp-content/uploads/2026/03/ONX2432G028(20260324).zip">ONX2432G028</a> or the <a href="https://nextion.tech/wp-content/uploads/2026/03/ONX3248G035(20260324).zip">ONX3248G035</a>. Then extract the .zip archive and move the whole folder with its 9 subdirectories into the <em>esp</em> folder in your user directory. This should then look like this:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460220" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-600x289.png" alt="" width="600" height="289" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-200x96.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-300x145.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-360x174.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-400x193.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-600x289.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-768x370.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-800x386.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-1024x494.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-1200x579.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.48.04-1536x741.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3>The last step(s): Building and uploading a project</h3>
<p>We&#8217;ll start with the <strong>01_touch_test</strong>. Right-click the folder, select <em><strong>Services</strong></em> in the menu, and then <em><strong>New terminal in the folder</strong></em>. In the new terminal window, enter <em>get_idf</em> and Return to activate the environment.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-460221" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-600x416.png" alt="" width="600" height="416" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-200x139.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-300x208.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-360x249.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-400x277.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-600x416.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-768x532.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-800x554.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-1024x710.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04-1200x832.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-25-a-20.54.04.png 1394w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, we are ready to build this project. The first step is to tell for which hardware we want to build. This is done with</p>
<pre>idf.py set-target esp32s3</pre>
<p>to check if all needed resources are present. This is not needed for the example programs which are already preconfigured. The next step is to configure the project with</p>
<pre>idf.py menuconfig</pre>
<p>but we do not use or modify it for the example programs. So, we start directly the build process with</p>
<pre>idf.py build</pre>
<p>This will take some time and issue probably a few warnings which you may ignore. If everything was done correctly, the build process will successfully come to an end. And finally, we may upload the compiled package with</p>
<pre>idf.py flash</pre>
<p>The IDF will normally detect the port automatically and a few seconds later, the project will run on your Genius!</p>
<h3 class="fusion-responsive-typography-calculated" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F26%2Fdevelop-open-nextion-projects-natively-on-mac%2F&amp;linkname=How%20to%20develop%20Open%20Nextion%20projects%20natively%20on%20Mac" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F26%2Fdevelop-open-nextion-projects-natively-on-mac%2F&amp;linkname=How%20to%20develop%20Open%20Nextion%20projects%20natively%20on%20Mac" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F26%2Fdevelop-open-nextion-projects-natively-on-mac%2F&amp;linkname=How%20to%20develop%20Open%20Nextion%20projects%20natively%20on%20Mac" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F26%2Fdevelop-open-nextion-projects-natively-on-mac%2F&#038;title=How%20to%20develop%20Open%20Nextion%20projects%20natively%20on%20Mac" data-a2a-url="https://nextion.tech/2026/05/26/develop-open-nextion-projects-natively-on-mac/" data-a2a-title="How to develop Open Nextion projects natively on Mac"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>&#8220;Bare Metal&#8221; coding for Open Nextion with the ESP-IDF</title>
		<link>https://nextion.tech/2026/05/11/bare-metal-coding-for-open-nextion-with-the-esp-idf/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 10 May 2026 22:02:10 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=459373</guid>

					<description><![CDATA[The new Open Nextion programming model and the new Genius series HMI have come to market a few weeks ago, and the user community doesn't stop asking questions... Again, Open Nextion and the Genius series HMI will NOT replace the other series and their easy and convenient developing with the Nextion editor. These will remain in production as promised by the long term availability guarantee. Open Nextion and Genius are an extension of the product range. If you are unsure what to choose, depending of your project specifications, read my blog from last Sunday!]]></description>
										<content:encoded><![CDATA[<h2>&#8220;Bare Metal&#8221; coding for Open Nextion with the ESP-IDF</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459375" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215921.png 1139w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>The new <a href="https://bit.ly/nexblog260322">Open Nextion programming model</a> and the new <a href="https://bit.ly/OpenNextionGenius">Genius series HMI</a> have come to market a few weeks ago, and the user community doesn&#8217;t stop asking questions&#8230; Again, Open Nextion and the Genius series HMI will NOT replace the other series and their easy and convenient developing with the Nextion editor. These will remain in production as promised by the long term availability guarantee. Open Nextion and Genius are an extension of the product range. If you are unsure what to choose, depending of your project specifications, read my <a href="https://bit.ly/nexblog260503">blog from last Sunday</a>, especially the huge paragraph &#8220;Conclusions&#8221; towards the end!</p>
<p>Developing for the Genius series (or any other upcoming HMI for the Open Nextion standard) is totally different. You&#8217;ll have to code everything by hand, the program code, the graphical interface, the touch handler, Wifi, Bluetooth, etc., etc. For people who are familiar with the Arduino IDE, <a href="https://bit.ly/nexblog260412">I showed here</a> how to extend it for the ESP32-S3, the heart of the Genius series. Other, perhaps more advanced developers might already be familiar with the VS Code IDE which can also be extended with an ESP-IDF plugin, so that you have your usual editor for your code but additional menu functions which make VS Code a remote control for the ESP-IDF which will handle the build, compile, and upload processes. But the setup and configuration is somewhat tricky and I experienced many hurdles before I got everything working. That made even two blogs, <a href="https://bit.ly/nexblog260419">here</a> and <a href="https://bit.ly/nexblog260426">here</a>.</p>
<p>Thus, I thought &#8211; even if I feared it &#8211; I&#8217;d give the bare ESP-IDF a try and take you with me on this travel. Before starting, let&#8217;s make one thing clear: The ESP-IDF is fully written in Python. So, to work with it, it allows you to open a Terminal (cmd or powershell) Window which is backed by a python runtime. There is no graphical interface, no build, compile and monitor buttons. Every function has to be invoked from the command line in the form idf.py &lt;function&gt; &lt;parameters&gt;. If that does not frighten you, continue reading&#8230;</p>
<h3>Installing the ESP-IDF</h3>
<p>Let&#8217;s learn from the past experience and thus, let&#8217;s not use the new Espressif Installation Manager. Whatever IDF version one chooses to install with it, some paths will not be compatible with projects created with earlier IDF versions, like the 9 Open Nextion demo projects. Thus, let&#8217;s do the same as my Chinese colleagues did and download the IDF 5.4.2 offline installer from <a href="https://github.com/espressif/idf-installer/releases/download/offline-5.4.2/esp-idf-tools-setup-offline-5.4.2.exe">here</a>. Once downloaded, launch it. The first question it will ask you  is your preferred language. I left it on the default setting, English.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459377" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-600x276.png" alt="" width="600" height="276" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-200x92.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-300x138.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-360x165.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-400x184.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851-600x276.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200851.png 718w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Next, you have to accept the licence agreement &#8211; don&#8217;t worry, they won&#8217;t sell you a tumble dryer, everything is free.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459378" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-200913.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Then, it checks your Windows environment. To me, it showed a warning as you can see. That&#8217;s why I clicked on &#8220;Apply Fixes&#8221;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459379" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201011.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>And I confirmed.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459380" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-600x227.png" alt="" width="600" height="227" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-200x76.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-300x114.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-360x136.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-400x152.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-600x227.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-768x291.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031-800x303.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201031.png 876w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>On my system (remember, it&#8217;s a virtual Win11 machine, running on a Mac&#8230;), I went with the default installation path&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459381" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201357.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Here, too, I decided to go with the default settings&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459382" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201427.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>And finally, we can click &#8220;Install&#8221;.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459383" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-201438.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, you have time to get a coffee or two, the installation will take a little more than a few minutes, but you&#8217;ll (hopefully) end up with the following screen and click finish:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459384" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-600x446.png" alt="" width="600" height="446" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-200x149.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-300x223.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-360x267.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-400x297.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-600x446.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-768x571.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-800x594.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736-1024x761.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-210736.png 1198w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3>Building the first project</h3>
<p>Although two terminal windows are now launched, the one presumably a powershell and the other a command prompt window, to me, both look very similar and I decided to do the following steps in the command prompt window which says itself that it is a powershell window, too&#8230; 🤨</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459385" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-600x313.png" alt="" width="600" height="313" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-200x104.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-300x157.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-360x188.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-400x209.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-600x313.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-768x401.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-800x417.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-1024x534.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-1200x626.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-212646-1536x801.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Time to load the first example project. You should create a working directory for yourself. So, make sure to have created a directory named &#8220;esp&#8221; in the root of your user profile directory, besides Desktop, Documents, Downloads, and so on. Then, move to this directory by entering</p>
<pre><strong><span class="ne-text">cd </span><span class="ne-text">%userprofile%</span><span class="ne-text">\esp</span></strong></pre>
<p>and hitting return. Normally, the prompt of the command line will now change to C:\Users\YourName\esp&gt;. From there, we import the hello world example which comes with the ESP-IDF by copying over to our local directory:</p>
<pre><strong>xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world</strong></pre>
<p>If this is achieved, we connect our Genius HMI and we check (for example in the Windows Device Manager) which virtual COM port has been attributed. In my case, it was COM4. Now, we may move to the local code directory with</p>
<pre><strong>cd %userprofile%\esp\hello_world</strong></pre>
<p>and tell the ESP-IDF that we want this project to be built for an ESP32-S3 with</p>
<pre><strong>idf.py set-target esp32s3</strong></pre>
<p>This corresponds to selecting a specific board in the Arduino IDE&#8217;s menu. But in opposite to the Arduino IDE, this will already compile and cache many internal ans system libraries for this CPU, when invoked for the first time. Then, if needed, we may set some options with</p>
<pre><strong>idf.py menuconfig</strong></pre>
<p>similar to the Tools menu in the Arduino IDE, but it&#8217;s text based&#8230; The demo project will run with the default settings, so, you may look at it and close it by pressing &#8220;Q&#8221;.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459387" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-600x313.png" alt="" width="600" height="313" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-200x104.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-300x157.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-360x188.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-400x209.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-600x313.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-768x401.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-800x417.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-1024x534.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-1200x626.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213333-1536x801.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, after all these settings, we may start the compile an build process with</p>
<pre><strong>idf.py build</strong></pre>
<p>If done for the first time, this process is rather lengthy, get another coffee or two, the build process has 1038 steps&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459388" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-600x313.png" alt="" width="600" height="313" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-200x104.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-300x157.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-360x188.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-400x209.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-600x313.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-768x401.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-800x417.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-1024x534.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-1200x626.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-213542-1536x801.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>&#8230; but it will eventually come to an end:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459389" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-600x313.png" alt="" width="600" height="313" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-200x104.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-300x157.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-360x188.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-400x209.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-600x313.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-768x401.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-800x417.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-1024x534.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-1200x626.png 1200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-214255-1536x801.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Finally, we can upload the compiled image to our Genius with</p>
<pre><strong>idf.py -p COM4 flash </strong><span style="color: #339966;">// replace COM4 with the COM port of your Genius HMI if different</span></pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459390" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-600x338.png" alt="" width="600" height="338" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-128x72.png 128w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-200x113.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-300x169.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-360x203.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-400x225.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-600x338.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-768x433.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-800x451.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248-1024x577.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215248.png 1115w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>It will then immediately run. Since the hello world example has no graphics output, we need to launch the serial monitor with</p>
<pre><strong>idf.py -p COM4 monitor </strong><span style="color: #339966;">// replace COM4 with the COM port of your Genius HMI if different</span></pre>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-459391" src="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-600x338.png" alt="" width="600" height="338" srcset="https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-128x72.png 128w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-200x113.png 200w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-300x169.png 300w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-360x203.png 360w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-400x225.png 400w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-600x338.png 600w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-768x433.png 768w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-800x451.png 800w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613-1024x577.png 1024w, https://nextion.tech/wp-content/uploads/2026/05/Capture-decran-2026-05-10-215613.png 1115w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>And here we are &#8211; It works! It wasn&#8217;t as complicated as I thought, before. So, we may be confident when trying to compile and upload the one or the other Open Nextion demo project, next time.</p>
<h3 class="" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F11%2Fbare-metal-coding-for-open-nextion-with-the-esp-idf%2F&amp;linkname=%E2%80%9CBare%20Metal%E2%80%9D%20coding%20for%20Open%20Nextion%20with%20the%20ESP-IDF" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F11%2Fbare-metal-coding-for-open-nextion-with-the-esp-idf%2F&amp;linkname=%E2%80%9CBare%20Metal%E2%80%9D%20coding%20for%20Open%20Nextion%20with%20the%20ESP-IDF" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F11%2Fbare-metal-coding-for-open-nextion-with-the-esp-idf%2F&amp;linkname=%E2%80%9CBare%20Metal%E2%80%9D%20coding%20for%20Open%20Nextion%20with%20the%20ESP-IDF" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F11%2Fbare-metal-coding-for-open-nextion-with-the-esp-idf%2F&#038;title=%E2%80%9CBare%20Metal%E2%80%9D%20coding%20for%20Open%20Nextion%20with%20the%20ESP-IDF" data-a2a-url="https://nextion.tech/2026/05/11/bare-metal-coding-for-open-nextion-with-the-esp-idf/" data-a2a-title="“Bare Metal” coding for Open Nextion with the ESP-IDF"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Your questions about Open Nextion &#8211; and my answers</title>
		<link>https://nextion.tech/2026/05/04/your-questions-about-open-nextion-and-my-answers/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 03 May 2026 18:36:20 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=458881</guid>

					<description><![CDATA[Since I started writing about Open Nextion and the new Genius series HMI, I got many emails from readers of this Nextion Sunday blog, all asking more or less similar questions. So, I allow today to publish this compilation of your questions and my answers. If you are unsure if you should move over from the classic Nextion HMI to Open Nextion, please read the conclusion towards the end of this article, after the questions and answers.]]></description>
										<content:encoded><![CDATA[<h2>Your questions about Open Nextion &#8211; and my answers</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458882" src="https://nextion.tech/wp-content/uploads/2026/05/2371511-600x423.jpg" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/05/2371511-200x141.jpg 200w, https://nextion.tech/wp-content/uploads/2026/05/2371511-300x211.jpg 300w, https://nextion.tech/wp-content/uploads/2026/05/2371511-360x254.jpg 360w, https://nextion.tech/wp-content/uploads/2026/05/2371511-400x282.jpg 400w, https://nextion.tech/wp-content/uploads/2026/05/2371511-600x423.jpg 600w, https://nextion.tech/wp-content/uploads/2026/05/2371511-768x541.jpg 768w, https://nextion.tech/wp-content/uploads/2026/05/2371511-800x564.jpg 800w, https://nextion.tech/wp-content/uploads/2026/05/2371511-1024x722.jpg 1024w, https://nextion.tech/wp-content/uploads/2026/05/2371511-1200x846.jpg 1200w, https://nextion.tech/wp-content/uploads/2026/05/2371511-1536x1083.jpg 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Since I started writing about Open Nextion and the new <a href="https://bit.ly/OpenNextionGenius">Genius series HMI</a>, I got many emails from readers of this Nextion Sunday blog, all asking more or less similar questions. So, I allow today to publish this compilation of your questions and my answers. If you are unsure if you should move over from the classic Nextion HMI to Open Nextion, please read the conclusion towards the end of this article, after the questions and answers.</p>
<h3>Q1: Is the &#8220;Intelligent&#8221; series going to be canceled? If so, when?</h3>
<p>The answer is <strong>NO</strong>. There is <a href="https://cdn.nextion.tech/wp-content/uploads/2025/07/LTA-Announcement_2025.pdf">Nextion&#8217;s LTA</a>, the <strong>L</strong>ong <strong>T</strong>erm <strong>A</strong>vailability guarantee, which states clearly: <em><br />
ITEAD Studio guarantees the availability of Nextion Series products for a minimum of 5 years. Unless you are specifically notified at the time of purchase, all Nextion series products will be available for purchase for 5 years at least. We understand the investment you make by using our products and we ensure long-term product availability. There are no quantity restrictions on the guarantee for the below parts.</em></p>
<p>Then, the following series are listed with a LTA from 2023-2027, including: The Basic, Discovery, Enhanced, and Intelligent series. But long-term Nextion customers understand that this does NOT mean that everything will disappear after 2027, this document contains the Basic and Enhanced series which are much longer in the market, and for which this is already the second LTA 5 years period. On top of that, there isn&#8217;t actually any new product at the horizon which could replace the Intelligent series in terms of screen size and functionality. The Edge series could technically do so in many cases, but it&#8217;s missing the bigger screen sizes. Thus, the Intelligent series is very likely to persist.</p>
<h3>Q2: In your blog, the screenshots of Open Nextion are very small, and I’ll admit I haven’t read everything, but VS Code intimidates me. I wouldn’t want to buy a screen only to have it sitting in a drawer in two weeks.</h3>
<p>If you feel intimidated by VS Code, you should know that VS Code is well known and one of the preferred IDEs among professional developers who want a highly modular and configurable IDE to work not only in Arduino-C with one series of embedded MCUs, but who write at the same time web apps in PHP or Node.js, or desktop and mobile applications in Python, for example, in a unified structure. But it remains one option among many. The Genius series is built on top of a ESP32-S3 MCU and every tool which allows to compile and build firmware for the ESP32-S3, like the Arduino IDE as <a href="https://bit.ly/nexblog260412">I showed here</a> or even the bare ESP-IDF which requires the developer to use python commands on the command line in a PIP environment to build and upload a project, will do the job.</p>
<h3>Q3: Is there a graphical user interface for Open Nextion like the one in the standard Nextion Editor?</h3>
<p>Since in Open Nextion, you are basically free to code the way you prefer, there is no standardised GUI. Whatever IDE you use, you&#8217;ll have to code everything by hand. You might use the free <a href="https://lvgl.io/docs/open/introduction">LVGL graphics library</a> (that&#8217;s what my Chinese colleagues used when creating the demo applications), but you&#8217;ll have still to write code in C to create and display a graphic element (widget) on the screen. There are third party tools which provide you with a GUI designer tool for LVGL to ease your work, but these are platform specific. The good old Ms Google might help you finding one which fits your needs.</p>
<h3>Q4: Can one add images, sounds, and fonts just as easily as with Nextion Editor?</h3>
<p>That depends on which libraries you use for your project. LVGL for example comes with a font converter and an image converter as helper tools, similar to the Nextion Editor. For audio, the integrated I2S module of the ESP32 requires a PCM format which can be generated from other audio formats like mp3 with the freeware command line tool ffmpeg. Overall, there remains some more work to do.</p>
<h3>Q5: Can one write code in a language other than Python? (Bascom Basic, Visual Basic?)</h3>
<p>The most common programming language for ESP32 MCUs is C/C++. The ESP-IDF expect you to code in C/C++, and so do the extension modules for the Arduino IDE and for VS Code. The ESP-IDF itself is written in Python and you&#8217;ll have to use python commands on the command line to compile, build, and upload your C/C++ code. The free and powerful LVGL graphics library comes also in C/C++. But you are naturally free to use whatever programming language you want, as long as you can find a compiler, a toolchain, and a building environment for the ESP32-S3 and libraries for its onboard peripherals, especially the ST7796S TFT display controller, and the the CST826 touch controller.</p>
<h3>Q6: Is there a debugger as great as the one in the Nextion Editor? Is it possible to test the commands?</h3>
<p>The Nextion Editor has no debugger in the technical sense, it has a simulator which can display error messages. On the other hand, the ESP-IDF (and thus the VS Code extension) come with a true debugger which means that you can execute your compiled assembly/machine code word by word, or from a predefined breakpoint to another, and inspect the binary content of the CPU registers at every moment. Thus, to test a function, you have to code it first in C/C++, compile, and upload before you can launch the debugger and check if the result corresponds to your expectations.</p>
<h3>Conclusions</h3>
<p>Don&#8217;t fall for a misconception! Nextion HMI and Open Nextion are completely different things. Open Nextion is NOT intended to replace the classic Nextion HMI. The <a href="https://bit.ly/OpenNextionGenius">Genius series HMI</a> and the new Open Nextion programming model are, as <a href="https://bit.ly/nexblog260322">I wrote already here</a>, a completely separate product line for power users who need additional functionalities like (among others) extended I/O, Bluetooth, and Wifi. The price which you pay for this additional functionality and liberty is a much more complex programming model where much more development work has to be done.</p>
<p>If you are comfortable with the classic Nextion HMI, combined with the all-in-one, very convenient and easy to learn Nextion Editor and optionally an easy to program external MCU, and if this setup fits your needs, there is absolutely no reason to switch to Open Nextion &#8211; please keep doing your good work with the Discovery, Intelligent, and Edge series with confidence, using the Nextion Editor!</p>
<p>But if you are a power developer who felt always limited by the Nextion Editor and its proprietary programming language, AND if your project requires a small and compact setup with for example Wifi, or Bluetooth without an external MCU, and if you don&#8217;t fear using professional development tools because you are already used to work with these, Open Nextion opens you a whole new world.</p>
<p>One more thing: Besides the email feedback by some of my readers, I (as a Nextion consultant and technical writer) have not much visibility on what my readers do and want. That&#8217;s why I suggest that you use always <a href="https://bit.ly/nextion_thierry">THIS LINK</a> when ordering Nextion HMI or Open Nextion and accessories. Not because of the few referral cents I&#8217;d earn with that, but to see what devices my readers do order, so that I can better adapt the content of my blog to your needs.</p>
<h3 class="fusion-responsive-typography-calculated" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p>&nbsp;</p>
<h3></h3>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F04%2Fyour-questions-about-open-nextion-and-my-answers%2F&amp;linkname=Your%20questions%20about%20Open%20Nextion%20%E2%80%93%20and%20my%20answers" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F04%2Fyour-questions-about-open-nextion-and-my-answers%2F&amp;linkname=Your%20questions%20about%20Open%20Nextion%20%E2%80%93%20and%20my%20answers" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F04%2Fyour-questions-about-open-nextion-and-my-answers%2F&amp;linkname=Your%20questions%20about%20Open%20Nextion%20%E2%80%93%20and%20my%20answers" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F05%2F04%2Fyour-questions-about-open-nextion-and-my-answers%2F&#038;title=Your%20questions%20about%20Open%20Nextion%20%E2%80%93%20and%20my%20answers" data-a2a-url="https://nextion.tech/2026/05/04/your-questions-about-open-nextion-and-my-answers/" data-a2a-title="Your questions about Open Nextion – and my answers"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Coding for Open Nextion on the next level: VS Code – Part II &#8211; getting ready!</title>
		<link>https://nextion.tech/2026/04/27/coding-for-open-nextion-on-the-next-level-vs-code-part-ii/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 22:38:20 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=458448</guid>

					<description><![CDATA[Coding for Open Nextion on the next level: VS Code – Part II - getting ready! In last week's blog, we started installing the free VS Code IDE and to add the ESP IDF extensions. It's a long process at the beginning, but almost everybody who moved from the Arduino IDE to VS Code feels]]></description>
										<content:encoded><![CDATA[<h2>Coding for Open Nextion on the next level: VS Code – Part II &#8211; getting ready!</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458480" src="https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342.png 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><a href="https://bit.ly/nexblog260419">In last week&#8217;s blog</a>, we started installing the free VS Code IDE and to add the ESP IDF extensions. It&#8217;s a long process at the beginning, but almost everybody who moved from the Arduino IDE to VS Code feels that the latter is more mature, flexible, and powerful. So, we too, we want to benefit from it to get the maximum out of the new <a href="https://bit.ly/OpenNextionGenius">Open Nextion Genius series</a> and we complete everything, today!</p>
<h3>The first startup of VS Code after installing the ESP IDF extension</h3>
<p>After we installed the ESP IDF extension, we are invited to select the current ESP IDF version.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458449" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160401-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>&#8230; but clicking on the corresponding button gives us an error message:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458450" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-600x116.png" alt="" width="600" height="116" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-200x39.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-300x58.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-360x70.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-400x78.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-600x116.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-768x149.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713-800x155.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-160713.png 897w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>This helps us understanding an important thing: The ESP IDF extension in VS Code allows us to adjust the needed or required ESP IDF version project-wise or folder-wise, which will allow us in the future to handle multiple projects with different ESP IDF version to maintain a maximum of compatibility. That&#8217;s amazing! We could now create and open an empty project folder, just to see how to configure the ESP IDF version but that&#8217;s slightly out of scope of this blog. Let&#8217;s rather download the Open Nextion example projects for the <a href="https://itead.cc/product/open-nextion-3-5-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">ONX4832G035</a> (that&#8217;s the one I have actually at hands) from <a href="https://nextion.tech/wp-content/uploads/2026/03/ONX3248G035(20260324).zip">here</a>. The example programs for the <a href="https://itead.cc/product/open-nextion-2-8-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">ONX2432G028</a> can be downloaded <a href="https://nextion.tech/wp-content/uploads/2026/03/ONX2432G028(20260324).zip">here</a>.</p>
<h3>Order the Open Nextion Genius series at an incredible introductory price</h3>
<p>Before I&#8217;ll forget it at the end, let me mention that actually, there is a 35% introductory discount: The <a href="https://itead.cc/product/open-nextion-2-8-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">ONX2432G028</a> is <strong>only $19.44</strong> instead of $29.90 and the <a href="https://itead.cc/product/open-nextion-3-5-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">ONX4832G035</a> <strong>only $22.69</strong> instead of $34.90. Once you have started your order by using one of the product links provided in this blog, you may afterwards add the coupon code <strong>THIERRYFRSONOFF</strong> to get an <strong>additional 10% discount</strong>! Don&#8217;t thank me, just click to order&#8230; 😉</p>
<h3>Now that we have downloaded the example code .zip file&#8230;</h3>
<p>&#8230; let&#8217;s extract it in an appropriate place. For example, in your &#8220;Documents&#8221; folder, create a sub-folder named &#8220;Open Nextion&#8221; and move the downloaded .zip file there. Extract it as in the following picture.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458454" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-600x494.png" alt="" width="600" height="494" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-200x165.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-300x247.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-360x297.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-400x330.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-600x494.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-768x633.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-800x659.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333-1024x844.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164333.png 1148w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>When done, you should see the 9 demo projects as follows:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458455" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-600x338.png" alt="" width="600" height="338" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-128x72.png 128w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-200x113.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-300x169.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-360x203.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-400x225.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-600x338.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-768x433.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-800x451.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-1024x577.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-1200x676.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-164513-1536x865.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, let&#8217;s switch back to VS Code and let&#8217;s open the 01_touch_test folder with &#8220;File&#8221; -&gt; &#8220;Open folder&#8221; and navigate there and confirm with the &#8220;Select folder&#8221; button. We&#8217;ll be greeted with a security warning about trusting the actors of the files in the folder. Check the &#8220;Trust the authors of all files in the parent folder &#8216;ONX3248G035&#8242;&#8221; and confirm by clicking the &#8220;Yes, I trust the authors&#8221; button.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458456" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-165254-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now that the folder is open, we see that there is already a <em><strong>sdkconfig</strong></em> file, thus, there should be no need to do additional configuration steps and we will try to build the project directly by clicking the wrench icon in the (bottom) status bar.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458457" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170258-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now, we take a break while the compiler and linker do their work:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458458" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-170455-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Since it&#8217;s the first time we compile a ESP IDF project, a huge number of dependencies have to be processed and many firmware modules have to be precompiled &#8211; time to get a coffee&#8230; Meanwhile, I saw a few warnings to fly through the Terminal tab but I decided to ignore them for the moment&#8230; ok&#8230; finally, the build failed with 6 &#8220;problems&#8221;. Two of them are warnings which we might ignore for the moment but there remain 4. Two of them, the missing i2c_master.h and the first error in the esp_lcd_st7796u library seem to be true problems, the other two only following. Perhaps, we should have read the readme file before&#8230; 🤔</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458463" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-600x172.png" alt="" width="600" height="172" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-200x57.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-300x86.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-360x103.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-400x115.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-600x172.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-768x221.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-800x230.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-1024x294.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-1200x345.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641-1536x441.png 1536w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-174641.png 1706w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>And, in fact, the README file tells us the following:</p>
<pre># ESP32S3-NEXTION-EXAMPLE

This directory contains example projects for the ESP32-S3 development board (ONX3248G035), 
covering peripherals such as LCD touch, camera, audio, SD card, Wi-Fi, and battery. For details of each example, 
see the README in the corresponding example folder.</pre>
<pre>&gt; Note: This project was developed with ESP-IDF 5.4.1. It is recommended to use ESP-IDF version &gt;= 5.4.0</pre>
<p>What we did install by default was ESP-IDF 6.0.0. Sure it&#8217;s &gt;= 5.4.0, but it&#8217;s a major version jump where system libraries might have been modified (which would explain the library errors). Thus, let&#8217;s go back to the installation manager and let&#8217;s add ESP-IDF 5.4.4&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458464" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-600x514.png" alt="" width="600" height="514" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-200x171.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-300x257.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-360x308.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-400x343.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-600x514.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-768x658.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-800x686.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-1024x877.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-1200x1028.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-184351-1536x1316.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Once done, we may switch the ESP IDF version to 5.4.4 in VS Code&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458466" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191155-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>&#8230; and launch the build process again:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458467" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-1024x682.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-1200x800.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-191422-1536x1024.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Well, this time, the build did work!</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458468" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-600x440.png" alt="" width="600" height="440" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-200x147.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-300x220.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-360x264.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-400x293.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-600x440.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-768x563.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-800x586.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-1024x751.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425-1200x879.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-26-194425.png 1419w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Thus, we check (also in the bottom status bar) if the correct com port and the upload method (UART) is set. You may also click on the ESP IDF icon in the left sidebar and then on the corresponding function in the menu. Then, let&#8217;s flash, and -suspense &#8211; it works!</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-458480" src="https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/IMG_1342.png 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Phew, that was long&#8230; but it was worth it! Now, we are already familiar with most struggles which can happen. And the next project will already go easy-peasy. Next week, we&#8217;ll look at some of the other demo programs &#8211; stay tuned!</p>
<h3 class="" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F27%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-ii%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20II%20%E2%80%93%20getting%20ready%21" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F27%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-ii%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20II%20%E2%80%93%20getting%20ready%21" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F27%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-ii%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20II%20%E2%80%93%20getting%20ready%21" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F27%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-ii%2F&#038;title=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20II%20%E2%80%93%20getting%20ready%21" data-a2a-url="https://nextion.tech/2026/04/27/coding-for-open-nextion-on-the-next-level-vs-code-part-ii/" data-a2a-title="Coding for Open Nextion on the next level: VS Code – Part II – getting ready!"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Coding for Open Nextion on the next level: VS Code &#8211; Part I</title>
		<link>https://nextion.tech/2026/04/20/coding-for-open-nextion-on-the-next-level-vs-code-part-1/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 17:58:24 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=457907</guid>

					<description><![CDATA[In last week's blog, I walked you through all the necessary steps to develop simple projects with Open Nextion for the new Genius Series HMIs with the Arduino IDE. While the Arduino IDE is a great tool for beginners, has well improved over the last years, and is very easy to start with, it's far from being "grown up", having weaknesses when it comes to handle large projects and re-using your own custom code and libraries. And using it with Espressif's ESP32 sets another hurdle, here: When you add the ESP32 support via Arduino's Board manager, it conveniently installs and maintains (in the background) the required toolchain and hardware support, but, although provided by Espressif, it remains a subset and might sometimes be behind Espressif's own tool, the ESP IDF. So, why wouldn't we simply use the latter directly? We could, but most of us are not the hardcore "bare metal" style embedded developers, writing code and header files in a simple text editor and moving them into the (hopefully) right directories, able to interpret cryptic compiler errors correctly and fixing our stuff accordingly, but we like a cosy IDE, and preferably one which covers all our needs, be it embedded development for different MCUs, or, for example web development. And we want nevertheless access to the full power of Espressif's framework! That's where the free VS Code, an abbreviation for Visual Studio Code, IDE comes in. Its modular structure allowing plugins for tens of different programming languages and for hundreds of different CPU technologies and toolchains makes it the preferred tool for many advanced hobbyists and a huge part of professional developers (at least those who don't use Eclipse...). Even developing projects for the good old Arduino AVR 8bit MCUs is raised to a new level by installing the PlatformIO plugin. But today, we'll see how to install and setup VS Code as a convenience layer and remote control for the ESP IDF. ]]></description>
										<content:encoded><![CDATA[<h2>Coding with Open Nextion on the next level: VS Code &#8211; Part I</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457908" src="https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-600x423.jpg" alt="© Freepik" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-200x141.jpg 200w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-300x212.jpg 300w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-360x254.jpg 360w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-400x282.jpg 400w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-600x423.jpg 600w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-768x541.jpg 768w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-800x564.jpg 800w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js-1024x722.jpg 1024w, https://nextion.tech/wp-content/uploads/2026/04/side-shot-code-editor-using-react-js.jpg 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>In <a href="https://bit.ly/nexblog260412">last week&#8217;s blog</a>, I walked you through all the necessary steps to develop simple projects with <a href="https://bit.ly/OpenNextionGenius">Open Nextion for the new Genius Series HMIs</a> with the Arduino IDE. While the Arduino IDE is a great tool for beginners, has well improved over the last years, and is very easy to start with, it&#8217;s far from being &#8220;grown up&#8221;, having weaknesses when it comes to handle large projects and re-using your own custom code and libraries. And using it with Espressif&#8217;s ESP32 sets another hurdle, here: When you add the ESP32 support via Arduino&#8217;s Board manager, it conveniently installs and maintains (in the background) the required toolchain and hardware support, but, although provided by Espressif, it remains a subset and might sometimes be behind Espressif&#8217;s own tool, the ESP IDF. So, why wouldn&#8217;t we simply use the latter directly? We could, but most of us are not the hardcore &#8220;bare metal&#8221; style embedded developers, writing code and header files in a simple text editor and moving them into the (hopefully) right directories, able to interpret cryptic compiler errors correctly and fixing our stuff accordingly, but we like a cosy IDE, and preferably one which covers all our needs, be it embedded development for different MCUs, or, for example web development. And we want nevertheless access to the full power of Espressif&#8217;s framework! That&#8217;s where the free VS Code, an abbreviation for Visual Studio Code, IDE comes in. Its modular structure allowing plugins for tens of different programming languages and for hundreds of different CPU technologies and toolchains makes it the preferred tool for many advanced hobbyists and a huge part of professional developers (at least those who don&#8217;t use Eclipse&#8230;). Even developing projects for the good old Arduino AVR 8bit MCUs is raised to a new level by installing the PlatformIO plugin. But today, we&#8217;ll see how to install and setup VS Code as a convenience layer and remote control for the ESP IDF.</p>
<h3>Step 1: Install VS Code (if you haven&#8217;t yet)</h3>
<p>You may download VS Code for free from <a href="https://code.visualstudio.com/Download">https://code.visualstudio.com/Download</a>, just select your operating system (Windows, Linux, or Mac). After downloading, start the installer and go through the usual installation steps with &#8220;OK&#8221;, &#8220;Next&#8221;, etc. installing it with the default configuration options.</p>
<p><img decoding="async" class="alignnone size-fusion-400 wp-image-457915" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349-400x310.png" alt="" width="400" height="310" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349-200x155.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349-360x279.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349-400x310.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175349.png 598w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone wp-image-457916 size-fusion-400" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407-400x310.png" alt="" width="400" height="310" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407-200x155.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407-360x279.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407-400x310.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175407.png 598w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone wp-image-457917 size-fusion-400" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432-400x310.png" alt="" width="400" height="310" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432-200x155.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432-360x279.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432-400x310.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-175432.png 598w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone wp-image-457918 size-fusion-400" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631-400x310.png" alt="" width="400" height="310" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631-200x155.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631-360x279.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631-400x310.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-181631.png 598w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone size-fusion-400 wp-image-457919" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049-400x310.png" alt="" width="400" height="310" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049-200x155.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049-360x279.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049-400x310.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182049.png 598w" sizes="(max-width: 400px) 100vw, 400px" /></p>
<p>And now, it&#8217;s the big moment to launch it for the first time! Since in a first step, we won&#8217;t use AI (still relying on our natural intelligence 😉), we select &#8220;Continue without signing in&#8221;, then we select a theme (to taste, but &#8220;Dark 2026&#8221; looks very nice). In the next window, we won&#8217;t install any Extensions for the moment, so, it&#8217;s simply &#8220;Continue&#8221;. And &#8220;Get started&#8221; in the last window.</p>
<p><img decoding="async" class="alignnone size-fusion-400 wp-image-457920" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-400x267.png" alt="" width="400" height="267" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182508.png 1200w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone size-fusion-400 wp-image-457921" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-400x267.png" alt="" width="400" height="267" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182649.png 1200w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone size-fusion-400 wp-image-457922" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-400x267.png" alt="" width="400" height="267" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182726.png 1200w" sizes="(max-width: 400px) 100vw, 400px" /> <img decoding="async" class="alignnone size-fusion-400 wp-image-457923" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-400x267.png" alt="" width="400" height="267" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-182921.png 1200w" sizes="(max-width: 400px) 100vw, 400px" /></p>
<p>Finally &#8211; tadaa &#8211; we have VS Code up and running, the first step is accomplished:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457924" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-183232.png 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3>Step 2: Add the ESP IDF support</h3>
<p>Now, we&#8217;ll have to install the ESP IDF extension for VS Code. For Mac and Linux, there are additional prerequisites like installing <em>libgcrypt, glib, pixman, sdl2, libslirp, dfu-util, cmake, </em>and<em> python </em>in MacOS using <em>homebrew</em>, and a much longer list of system libraries, depending on the Linux bistro. Please find all the details by clicking <a href="https://docs.espressif.com/projects/idf-im-ui/en/latest/prerequisites.html#linux">here</a>. We&#8217;ll move on for now with Windows, which does not require any prerequisites. It&#8217;s time to open the extension manager in VS Code which is in the left sidebar by clicking the icon with the 4 boxes. In the search field on top of the just opened extension sidebar, enter &#8220;ESP-IDF&#8221; and wait a few seconds. The first search result should be &#8220;ESP-IDF by Espressif Systems&#8221; and clicking on it should reveal all details as shown here:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457925" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-185557.png 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Now click on &#8220;Install&#8221; and confirm in the next dialog that you trust the publisher. Once the extension active, it&#8217;s time to follow the two simple steps to install the ESP-IDF itself and to configure it as shown on the screen:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457926" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-600x400.png" alt="" width="600" height="400" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-300x200.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-360x240.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-400x267.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-600x400.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-768x512.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-800x533.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222-1024x683.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-190222.png 1200w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>First, we launch the ESP-IDF Installation Manager with the corresponding button. If you get an error message telling you that the executable could not be found, select &#8220;GitHub&#8221; in the top menu which just popped up. Afterwards, the installation of the installation manager will be almost automatic and it will open in a new window:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457927" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-600x515.png" alt="" width="600" height="515" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-200x172.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-300x258.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-360x309.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-400x343.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-600x515.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-768x659.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-800x687.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-1024x879.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019-1200x1030.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191019.png 1202w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>And, in opposite to what they said in the doc, there is a prerequisite missing, even in Windows: Git&#8230; But that&#8217;s not a problem, we simply click on &#8220;Install Prerequisites automatically&#8221;:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457928" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-600x515.png" alt="" width="600" height="515" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-200x172.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-300x258.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-360x309.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-400x343.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-600x515.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-768x659.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-800x687.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-1024x879.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620-1200x1030.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-191620.png 1202w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>This accomplished, we click &#8220;Start Easy Installation&#8221; and then &#8220;Start Installation&#8221;:</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457931" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-600x515.png" alt="" width="600" height="515" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-200x172.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-300x258.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-360x309.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-400x343.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-600x515.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-768x659.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-800x687.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-1024x879.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850-1200x1030.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-19-192850.png 1202w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>This will take some (much long) time and we&#8217;ll leave it at it for today. Next week, when everything will be installed, we move on and load our first demo project!</p>
<h3 class="fusion-responsive-typography-calculated" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F20%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-1%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20I" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F20%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-1%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20I" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F20%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-1%2F&amp;linkname=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20I" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F20%2Fcoding-for-open-nextion-on-the-next-level-vs-code-part-1%2F&#038;title=Coding%20for%20Open%20Nextion%20on%20the%20next%20level%3A%20VS%20Code%20%E2%80%93%20Part%20I" data-a2a-url="https://nextion.tech/2026/04/20/coding-for-open-nextion-on-the-next-level-vs-code-part-1/" data-a2a-title="Coding for Open Nextion on the next level: VS Code – Part I"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Start developing your Open Nextion projects with the Arduino IDE</title>
		<link>https://nextion.tech/2026/04/13/start-developing-your-open-nextion-projects-with-the-arduino-ide/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 19:58:27 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=457515</guid>

					<description><![CDATA[Welcome to the new world of Open Nextion - a new and powerful generation of HMI screens by Nextion with more features on one side and a new programming model on the other side. In this blog, I have already shown the most important new features, but your feedback showed me that there are two specific points to address. First, no, Open Nextion will NOT replace the classic Nextion HMI screens! It's an extension of the product range. While the classic Nextion HMI with the WYSIWYG Nextion Editor and the simple and hardware independent ASCII-based wired serial protocol will continue to cover a multitude of industrial, automotive,  and automatisation applications, the Open Nextion environment with the Genius series HMI adds new application fields, especially thanks to its wireless connectivity. The price which we have to pay for that is a new more hardware-oriented programming model since the new faculties exceed the convenience of the Nextion Editor. Second point to retain from your valued feedback is that despite the creation of an excellent Wiki by my colleagues, some of you reported struggling with setting up the new Open Nextion development environment. That's why I decided to walk through that Wiki, especially the Arduino variant, and to take you with me on this travel.]]></description>
										<content:encoded><![CDATA[<h2>Start developing your Open Nextion projects with the Arduino IDE</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-443533" src="https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-600x422.jpg" alt="" width="600" height="422" srcset="https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-200x141.jpg 200w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-300x211.jpg 300w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-360x253.jpg 360w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-400x282.jpg 400w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-600x422.jpg 600w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-768x541.jpg 768w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-800x563.jpg 800w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-1024x721.jpg 1024w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-1200x845.jpg 1200w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671-1536x1081.jpg 1536w, https://nextion.tech/wp-content/uploads/2025/11/摄像头-e1775990999671.jpg 1800w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Welcome to the new world of Open Nextion &#8211; a new and powerful generation of HMI screens by Nextion with more features on one side and a new programming model on the other side. In <a href="https://bit.ly/nexblog260322">this blog</a>, I have already shown the most important new features, but your feedback showed me that there are two specific points to address. First, no, Open Nextion will NOT replace the classic Nextion HMI screens! It&#8217;s an extension of the product range. While the classic Nextion HMI with the WYSIWYG Nextion Editor and the simple and hardware independent ASCII-based wired serial protocol will continue to cover a multitude of industrial, automotive,  and automatisation applications, the Open Nextion environment with the <a href="https://bit.ly/OpenNextionGenius">Genius series HMI</a> adds new application fields, especially thanks to its wireless connectivity. The price which we have to pay for that is a new more hardware-oriented programming model since the new faculties exceed the convenience of the Nextion Editor. Second point to retain from your valued feedback is that despite the creation of an excellent Wiki by my colleagues, some of you reported struggling with setting up the new Open Nextion development environment. That&#8217;s why I decided to walk through that Wiki, especially the Arduino variant, and to take you with me on this travel.</p>
<h3>Step 1 &#8211; Downloading and installing the Arduino IDE</h3>
<p>This should be pretty straightforward, since installing the Arduino IDE on whatever platform (Windows, Mac, Linux) has become a common task among developers for more than 10 years, thus, let&#8217;s make it short: Go to the <a href="https://www.arduino.cc/en/software/">Arduino download page</a> and download the most recent version for your operating system.<br />
<img decoding="async" class="alignnone size-fusion-600 wp-image-457518" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-600x417.png" alt="" width="600" height="417" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-200x139.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-300x208.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-360x250.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-400x278.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-600x417.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-768x533.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-800x555.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-1024x711.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128-1200x833.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-132128.png 1377w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>After downloading the installer file, open it to launch the installation of the Arduino IDE.</p>
<p><img decoding="async" class="alignnone size-full wp-image-457519" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047.png" alt="" width="499" height="388" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047-200x156.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047-360x280.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047-400x311.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133047.png 499w" sizes="(max-width: 499px) 100vw, 499px" /></p>
<p>At the end of the installation process, launch the Arduino IDE and you have already accomplished the first step. It might ask you for some patience, since the Arduino IDE will auto-update some of its libraries, modules and additional tools and drivers at the first launch. When dialog boxes pop up, asking you for network access and consent for the installation of add-ons, just click &#8220;yes&#8221;.</p>
<p><img decoding="async" class="alignnone size-full wp-image-457520" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605.png" alt="" width="499" height="388" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605-200x156.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605-300x233.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605-360x280.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605-400x311.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-133605.png 499w" sizes="(max-width: 499px) 100vw, 499px" /></p>
<h3>Step 2 &#8211; Making the Arduino IDE ready for ESP32</h3>
<p>The ESP32 MCU, used in the Genius Series, is not a genuine Arduino. Thus, we&#8217;ll have to add an extension to the Arduino IDE to make it compatible with this processor. For this, we do to the File menu and select &#8220;Preferences&#8221;. Under &#8220;Additional board manager URLs&#8221;, add https://espressif.github.io/arduino-esp32/package_esp32_index.json and click &#8220;OK&#8221;.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457521" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-600x411.png" alt="" width="600" height="411" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-200x137.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-300x206.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-360x247.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-400x274.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-600x411.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-768x526.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-800x548.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-1024x702.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134-1200x822.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-135134.png 1265w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Next, go to &#8220;Tools&#8221; -&gt; &#8220;Boards&#8221; -&gt; &#8220;Boards manager&#8221;, enter &#8220;esp32&#8221; in the search field, locate &#8220;esp32 by Espressif Systems&#8221; in the results and click &#8220;install&#8221;. Be prepared to taking this some time, it&#8217;s a huge package.</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457522" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-600x411.png" alt="" width="600" height="411" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-200x137.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-300x206.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-360x247.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-400x274.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-600x411.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-768x526.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-800x548.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-1024x702.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502-1200x822.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-141502.png 1265w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>After accomplishing this step, we are almost up and running.</p>
<h3>Step 3 &#8211; Establish the communication</h3>
<p>The Genius series use a CH340K USB to serial adapter chip. Thus, the Arduino IDE might not see your Genius when you connect it via USB. In that case, simply install the driver <a href="https://nextion.tech/wp-content/uploads/2025/11/CH340K-USB-to-UART-Driver.zip">from here</a>, restart Windows and launch the Arduino IDE again.</p>
<h3>Step4 &#8211; Write and upload your first ESP32 program</h3>
<p>For the moment, and for the first test, we&#8217;ll leave the LCD and touch part aside. We&#8217;ll just write a simple &#8220;hello world&#8221; style sketch like this one:</p>
<pre><span style="color: #008080;">uint32_t</span> i=<span style="color: #33cccc;">0</span>;

<span style="color: #008080;">void</span> <span style="color: #ff6600;">setup</span>() {
  <span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">begin</span>(<span style="color: #33cccc;">57600</span>);
}

<span style="color: #008080;">void</span> <span style="color: #ff6600;">loop</span>() {
  <span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">print</span>(i++);
  <span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">println</span>(<span style="color: #33cccc;">": Hello, Open Nextion world!"</span>);
  <span style="color: #ff6600;">delay</span>(<span style="color: #33cccc;">1000</span>);
}
</pre>
<p>Now, select &#8220;ESP32S3 Dev Module&#8221; as your board and the corresponding COM port as you would for each other Arduino, compile and upload the sketch, leaving all other settings in the &#8220;Tools&#8221; menu at their default values (only for the moment!).</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-457527" src="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-600x411.png" alt="" width="600" height="411" srcset="https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-200x137.png 200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-300x206.png 300w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-360x247.png 360w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-400x274.png 400w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-600x411.png 600w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-768x526.png 768w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-800x548.png 800w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-1024x702.png 1024w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845-1200x822.png 1200w, https://nextion.tech/wp-content/uploads/2026/04/Capture-decran-2026-04-12-155845.png 1265w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Finally, you should open the serial monitor to check if every second, a new line with an increasing number and the text &#8220;Hello, Open Nextion world&#8221; appears. If this is accomplished, your hardware and system setup is done successfully.</p>
<h3>// ToDo&#8230;</h3>
<p>To make full HMI projects and to use not only the LCD and the Touch controller, but also Wifi, Bluetooth, etc., we&#8217;ll need to install and to include more libraries. The next steps for users of the Arduino IDE are thus defined and I will continue to blog about these topics, step by step. On the other side, we won&#8217;t neglect users who prefer the ESP-IDF or VS Code as their development environment and there will be similar blogs for these. So, everybody, stay tuned, please !</p>
<h3 class="" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p>&nbsp;</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F13%2Fstart-developing-your-open-nextion-projects-with-the-arduino-ide%2F&amp;linkname=Start%20developing%20your%20Open%20Nextion%20projects%20with%20the%20Arduino%20IDE" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F13%2Fstart-developing-your-open-nextion-projects-with-the-arduino-ide%2F&amp;linkname=Start%20developing%20your%20Open%20Nextion%20projects%20with%20the%20Arduino%20IDE" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F13%2Fstart-developing-your-open-nextion-projects-with-the-arduino-ide%2F&amp;linkname=Start%20developing%20your%20Open%20Nextion%20projects%20with%20the%20Arduino%20IDE" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F04%2F13%2Fstart-developing-your-open-nextion-projects-with-the-arduino-ide%2F&#038;title=Start%20developing%20your%20Open%20Nextion%20projects%20with%20the%20Arduino%20IDE" data-a2a-url="https://nextion.tech/2026/04/13/start-developing-your-open-nextion-projects-with-the-arduino-ide/" data-a2a-title="Start developing your Open Nextion projects with the Arduino IDE"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Working with the Nextion Editor on Mac and/or remote</title>
		<link>https://nextion.tech/2026/03/30/working-with-the-nextion-editor-on-mac-and-or-remote-part-i/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 20:04:14 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=456831</guid>

					<description><![CDATA[As we saw in last week's blog that the new Open Nextion GENIUS series HMI had a different programming model, not longer relying on the Nextion Editor but on your favourite development environment on Windows, Linux, or Mac, I promised, too, to not to drop my support for the vast majority of users, working happily with the Nextion Editor. Long-term readers (yes, this is my 200th Nextion Sunday Blog 🎂 🥳 ) have seen some of my screenshots over the years, clearly indicating that I've been always working on a Mac. Moreover, as I do not only and exclusively work for Itead/Nextion, I'm not always on my lab desk when I need to access my Nextion Editor, for example if a reader sends me an email and I need to check quickly their code for bugs. Thus, today is the moment to share my years long experience with running the Nextion Editor on a Mac and even on accessing it remote.]]></description>
										<content:encoded><![CDATA[<h2>Working with the Nextion Editor on Mac and/or remote</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-456832" src="https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-600x423.png" alt="" width="600" height="423" srcset="https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-200x141.png 200w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-300x212.png 300w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-360x254.png 360w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-400x282.png 400w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-600x423.png 600w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-768x541.png 768w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-800x564.png 800w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-1024x722.png 1024w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-1200x846.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1266-1536x1083.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>As we saw in <a href="https://bit.ly/nexblog260322">last week&#8217;s blog</a> that the new <a href="https://bit.ly/OpenNextionGenius">Open Nextion GENIUS series HMI</a> had a different programming model, not longer relying on the Nextion Editor but on your favourite development environment on Windows, Linux, or Mac, I promised, too, to not to drop my support for the vast majority of users, working happily with the Nextion Editor. Long-term readers (yes, this is my 200th Nextion Sunday Blog 🎂 🥳 ) have seen some of my screenshots over the years, clearly indicating that I&#8217;ve been always working on a Mac. Moreover, as I do not only and exclusively work for Itead/Nextion, I&#8217;m not always on my lab desk when I need to access my Nextion Editor, for example if a reader sends me an email and I need to check quickly their code for bugs. Thus, today is the moment to share my years long experience with running the Nextion Editor on a Mac and even on accessing it remote.</p>
<h3>First, a few basics</h3>
<p>All modern operating systems have one thing in common: They make partly abstraction of the hardware, so that a user program does most times not longer interact directly with the peripherals of the CPU, like the hard drive, the graphics and sound card, or the USB ports, but addresses them through APIs and drivers provided by the respective OS. Moreover, the operating system provides many resources which are common to most programs like resizeable windows, dialogs, menus, and much more, so that the developers of a program do not to have to reinvent the wheel each time, but they pick these from the integrated libraries and frameworks. Sometimes, to realise more complex functionalities, additional libraries and frameworks may be user for a program, that&#8217;s the moment where it cannot longer be distributed as a single executable file, but it needs a complex setup routine to install and register these additional tools in the right place.</p>
<p>So, a program written and compiled for Windows (.exe file) depends strongly on the presence of a Windows OS to be able to interact with your CPU, your screen, your mouse, your keyboard, etc. For other functionalities, additional libraries (.dll files) have to accompany it. I the same way, programs for Linux or MacOS (which is based on BSD Unix) come as executable .bin (binary) files and are are accompanied by static library files (.lib) and dynamic libraries (.dylib), the equivalent of a .dll in Windows. You can imagine a modern computer system built from Hardware, peripherals and software as a gear box or a clock movement where all gears have to have the correct size and place to make the thing turn round without blocking. And that&#8217;s the reason why you can&#8217;t simply launch an .exe file on a Mac or a Linux computer, and why a Windows machine can&#8217;t start a .bin file. It&#8217;s all about form and dependencies.</p>
<h3>Why the simplest and totally free way which does not longer work</h3>
<p>With older and simpler versions of the Nextion Editor, before the Intelligent series HMI and the accompanying multimedia functions were introduced, things were still relatively simple: You could install the free and open source WineHQ on your MacOS or Linux machine with an Intel CPU. WineHQ is a compatibility layer, basically consisting of hundreds of .dll files which translate all elementary Windows system calls by a Windows executable into the corresponding system calls of the underlying POSIX based OS (Linux, macOS and BSD). But that alone was already not sufficient since the Nextion Editor uses also the .NET framework 3.5 which goes far beyond elementary Windows functionality. So, you had also to install the Mono framework to emulate these functions. Add a registry hack to re-route the serial port and you were done.</p>
<p>Naturally, this just-in-time emulation ran a bit slower than on a native Windows system, because every command had to be translated but one could work well with it. This only came to an end when the Nextion editor was extended with all the multimedia functions, and the additional video tools. All these rely on Windows&#8217; integrated DirectX 9 library/framework which could not be added as a complementary module because parts of it were buried deeply in the Internet Explorer. Neither DirectX nor the Internet Explorer were open source, that&#8217;s why up to today, there is no fully working emulator for these available. So, this path is cut for some years, already.</p>
<p>You might ask, why does the Nextion editor still rely on older technologies like .NET 3.5 and DirectX 9 ? The answer is simple: Nextion wants its editor to be useable in the whole world, even in regions where many users are still using Windows XP or 7. And since, on the other side, all the required components come still with Windows 11 although the Internet Explorer has been replaced by Edge, everything is kept for the moment to provide a maximum of backwards and forwards compatibility.</p>
<h3>From Windows emulation to virtualisation</h3>
<p>Instead of adding an additional emulation layer between Linux/MacOS and a Windows application like WineHQ does, virtualisation uses functionalities of modern CPUs to push the currently running Linux or MacOS a bit aside to allow the hypervisor partly direct access to the hardware. This allows to share the graphics card, the mouse, the keyboard between multiple operating systems at the same time, and to re-distribute dynamically the overall number of CPU cores and the available RAM. There are just a few hurdles:</p>
<p>1.) The price. Professional virtualisation solutions like Parallels ® , or VMware ® are incredibly powerful and allow to do many things cross-platform and cross-OS. But they are expensive, far beyond the budget of a hobbyist (or a freelance blogger). The free and open source VirtualBox is complicated to install and to set up and still too complex for occasional use. Then, there is the free and also open source qemu. Although its name seems to point towards an emulator, it has grown up to a virtualisation solution with optional hardware emulation. But it&#8217;s almost impossible to set up without much hassle, there are more than 60 command line options&#8230; But continue reading, please, things will get very easy.</p>
<p>2.) It&#8217;s still about money, because whatever virtualisation solution you take, you&#8217;ll need a Windows licence. But these are easy and cheap to get. I bought an official and legal OEM licence code for Windows 10 professional for 4$ and in the meantime, I was able to do a free upgrade to Windows 11 v25H2 without licence problems. The only thing is that when you buy a licence code only, you&#8217;ll have to download the full Windows installer ISO which is around 5GB. Hint: Start always with Win10 since even if you have a Mac with an Intel Core i3, i5, or i7 CPU and 16GB of RAM, it&#8217;s not always guaranteed that your Mac hardware meets the hardware requirements by Microsoft for installing Win11. There are naturally ways around this, as there are ways to run the recent macOS Sequoia on my iMac from 2015, but this goes beyond the scope of this blog&#8230;</p>
<p>3.) For the moment, this is known to be working if you have a Mac with an Intel CPU. Newer Macs with Apple Silicon (M1 to M5) CPUs require an additional emulation layer, although Windows 10 and Windows 11 versions for ARM CPUs do exist. But these, since they were not created to be so backwards compatible, they lack the required DirectX support for the Nextion Editor, so, you&#8217;ll have to stay with a Windows version for the x64 Intel/AMD CPUs.</p>
<h3>The free and open source UTM app solves most problems</h3>
<p>Mac users do not want to fiddle around with command line parameters. In Mac OS the command line interface is even almost hidden in the seldom used Applications&gt;Utilities folder. Mac users want a graphical user interface where they can handle everything with a few mouse clicks. And they get it with the UTM app which can be installed in 2 ways. The first is the free download of the .dmg installer when you go on <a href="https://mac.getutm.app">https://mac.getutm.app/</a> and click on &#8220;Download&#8221;. It&#8217;s free but you have to check periodically for updates. The other version (which is exactly the same) redirects you towards the App Store where you can get it for $10 (to support the project) and which will automatically update, thanks to the App Store, as soon as a new version is released.</p>
<p>Whatever option you choose, installation of UTM is as usual. Then launch it, click on &#8220;virtualize&#8221; since you are on an Intel Mac and want to install the Intel version of Win 10. Then, select &#8220;Windows&#8221;, set the virtual machine up for at least 4GB RAM (it&#8217;s more fluid with 6) and 2 cores which is perfectly fine for the Nextion Editor, and finally, click on &#8220;Browse&#8230;&#8221; and select the previously downloaded Win10 .iso file, let all the other settings by default as in the screenshot below, followed by &#8220;Continue&#8221; and let the magic happen!</p>
<p><img decoding="async" class="alignleft wp-image-456846 size-medium" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-289x300.png" alt="" width="289" height="300" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-200x207.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-289x300.png 289w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-360x373.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-400x415.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-600x622.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-768x796.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-800x830.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-988x1024.png 988w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-1200x1244.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.19.12-1481x1536.png 1481w" sizes="(max-width: 289px) 100vw, 289px" /> <img decoding="async" class="alignleft wp-image-456845 size-medium" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-289x300.png" alt="" width="289" height="300" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-200x207.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-289x300.png 289w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-360x373.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-400x415.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-600x622.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-768x796.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-800x830.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-988x1024.png 988w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-1200x1244.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.31-1481x1536.png 1481w" sizes="(max-width: 289px) 100vw, 289px" /> <img decoding="async" class="alignleft wp-image-456844 size-medium" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-289x300.png" alt="" width="289" height="300" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-200x207.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-289x300.png 289w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-360x373.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-400x415.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-600x622.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-768x796.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-800x830.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-988x1024.png 988w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-1200x1244.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.20.52-1481x1536.png 1481w" sizes="(max-width: 289px) 100vw, 289px" /> <img decoding="async" class="size-medium wp-image-456843 alignleft" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-289x300.png" alt="" width="289" height="300" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-200x207.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-289x300.png 289w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-360x373.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-400x415.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-600x622.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-768x796.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-800x830.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-988x1024.png 988w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-1200x1244.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.21.20-1481x1536.png 1481w" sizes="(max-width: 289px) 100vw, 289px" /></p>
<p>After a few minutes and some reboots of the new virtual machine (not the Mac!), you are done and have a working Win10 (or 11) subsystem, either fullscreen or windowed on your Mac:</p>
<p>Next, inside the new Windows machine, download and install the Nextion Editor and you are ready to work:</p>
<p><img decoding="async" class="alignnone size-fusion-400 wp-image-456847" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-400x266.png" alt="" width="400" height="266" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-300x199.png 300w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-360x239.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-400x266.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-600x399.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-768x510.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-800x532.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-1024x680.png 1024w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-1200x797.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.40.24-1536x1021.png 1536w" sizes="(max-width: 400px) 100vw, 400px" /><img decoding="async" class="alignnone size-fusion-400 wp-image-456848" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-400x266.png" alt="" width="400" height="266" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-300x199.png 300w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-360x239.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-400x266.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-600x399.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-768x510.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-800x532.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-1024x680.png 1024w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-1200x797.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.22-1536x1021.png 1536w" sizes="(max-width: 400px) 100vw, 400px" /><img decoding="async" class="alignnone size-fusion-400 wp-image-456849" src="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-400x266.png" alt="" width="400" height="266" srcset="https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-200x133.png 200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-300x199.png 300w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-360x239.png 360w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-400x266.png 400w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-600x399.png 600w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-768x510.png 768w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-800x532.png 800w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-1024x680.png 1024w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-1200x797.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/Capture-decran-2026-03-29-a-21.43.51-1536x1021.png 1536w" sizes="(max-width: 400px) 100vw, 400px" /></p>
<p>&nbsp;</p>
<h3>And now, working remote</h3>
<p>To access the virtual Windows machine on your Mac &#8220;from outside&#8221;, the Mac has naturally to be always on and is not allowed to enter sleep mode. The virtual Windows machine has to be started but might be minimised. Please, for security reasons, don&#8217;t rely on tools like TeamViewer or AnyDesk. Create rather a free and open source software VPN using Tailscale and install it in your virtual Windows machine and on all devices from which you want to access it. In Windows, enable the Remote Desktop access, and on the other devices install the free RDP app from Microsoft which is called &#8220;Windows App&#8221; and exists for iPadOS and macOS. Now, you can work with the Nextion Editor even from your iPad (fullscreen or windowed) when you are spending your holidays abroad&#8230;</p>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-456850" src="https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-600x450.png" alt="" width="600" height="450" srcset="https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-200x150.png 200w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-300x225.png 300w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-360x270.png 360w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-400x300.png 400w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-600x450.png 600w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-768x576.png 768w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-800x600.png 800w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-1024x768.png 1024w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-1200x900.png 1200w, https://nextion.tech/wp-content/uploads/2026/03/IMG_1866-1536x1152.png 1536w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3 class="fusion-responsive-typography-calculated" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F30%2Fworking-with-the-nextion-editor-on-mac-and-or-remote-part-i%2F&amp;linkname=Working%20with%20the%20Nextion%20Editor%20on%20Mac%20and%2For%20remote" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F30%2Fworking-with-the-nextion-editor-on-mac-and-or-remote-part-i%2F&amp;linkname=Working%20with%20the%20Nextion%20Editor%20on%20Mac%20and%2For%20remote" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F30%2Fworking-with-the-nextion-editor-on-mac-and-or-remote-part-i%2F&amp;linkname=Working%20with%20the%20Nextion%20Editor%20on%20Mac%20and%2For%20remote" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F30%2Fworking-with-the-nextion-editor-on-mac-and-or-remote-part-i%2F&#038;title=Working%20with%20the%20Nextion%20Editor%20on%20Mac%20and%2For%20remote" data-a2a-url="https://nextion.tech/2026/03/30/working-with-the-nextion-editor-on-mac-and-or-remote-part-i/" data-a2a-title="Working with the Nextion Editor on Mac and/or remote"></a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The new GENIUS Series: The Next (and open) Generation!</title>
		<link>https://nextion.tech/2026/03/23/the-new-genius-series-the-next-and-open-generation/</link>
		
		<dc:creator><![CDATA[蒂耶里 (Thierry)]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 17:40:59 +0000</pubDate>
				<category><![CDATA[The Sunday Blog]]></category>
		<guid isPermaLink="false">https://nextion.tech/?p=453803</guid>

					<description><![CDATA[As a moderator in the Nextion user forums for more than 8 years and as your preferred author of the Nextion Sunday Blog for almost 6 years, I've heard many user voices: The ones who love Nextion HMI for its simplicity and robustness with the industry-standard ASCII based serial protocol, the easy to learn and event-driven programming language, and the really all-in-one Nextion Editor/Simulator/Debugger. The others who were not always satisfied because they felt limited by almost the same aspects. So, my dear colleagues, the Nextion engineers in Shenzhen/China have also heard the voices of the "power users" who want an all-in-one hardware solution, which means a highly versatile graphic touch screen with a more powerful internal MCU and, the most important, more access to the functionalities of the latter. Thus, the new Nextion GENIUS series was created and brings you things like builtin Wifi, Bluetooth, USB-C, 2 UARTs, 14 GPIOs, I2C, digital microphone, speaker and camera interfaces, and much more. Please continue reading!]]></description>
										<content:encoded><![CDATA[<h2>The new GENIUS Series: The Next (and open) Generation!</h2>
<p><img decoding="async" class="alignnone size-fusion-600 wp-image-442341" src="https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-600x384.png" alt="" width="600" height="384" data-wp-editing="1" srcset="https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-200x128.png 200w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-300x192.png 300w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-400x256.png 400w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-460x295.png 460w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-600x384.png 600w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-768x491.png 768w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-800x511.png 800w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES-1024x655.png 1024w, https://nextion.tech/wp-content/uploads/2025/11/GENIUS-SERIES-FEATURES.png 1123w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>As a moderator in the Nextion user forums for more than 8 years and as your preferred author of the Nextion Sunday Blog for almost 6 years, I&#8217;ve heard many user voices: The ones who love Nextion HMI for its simplicity and robustness with the industry-standard ASCII based serial protocol, the easy to learn and event-driven programming language, and the really all-in-one Nextion Editor/Simulator/Debugger. The others who were not always satisfied because they felt limited by almost the same aspects.</p>
<p>Over the years, with 199 Nextion Sunday Blogs (including today), I&#8217;ve often shown how one can push the limits, building for example extended mathematical functions, bringing swipe gestures to the &#8220;smaller and simpler&#8221; series, showing optimised drawing routines, and much more, all with the &#8220;onboard tools&#8221; and the Nextion programming language, most times without the need for an external MCU. Not only in theory, but with sharing demo projects and code to learn from and to integrate all these jewels into your own projects. Don&#8217;t worry, all this will naturally continue beyond the 200th blog article!</p>
<p>So, my dear colleagues, the Nextion engineers in Shenzhen/China have also heard the voices of the &#8220;power users&#8221; who want an all-in-one hardware solution, which means a highly versatile graphic touch screen with a more powerful internal MCU and, the most important, more access to the functionalities of the latter. Thus, the new <a href="https://itead.cc/product-category/genius-series/ref/35/">Nextion GENIUS series</a> was created and brings you things like builtin Wifi, Bluetooth, USB-C, 2 UARTs, 14 GPIOs, I2C, digital microphone, speaker and camera interfaces, and much more. Please continue reading!</p>
<h3>No worries!</h3>
<p>Although the new GENIUS series has a different programming model (see below), all the other things which you like with Nextion remain unchanged:</p>
<p><em><strong>Price tag: </strong></em>With all the new features, the abundance of RAM, PSRAM, ROM, and Flash memory, 4 times more colors, and the extended connectivity, paired with a dual core ESP32-S3 MCU, the retail price of the GENIUS series is actually <em><strong>below </strong></em>the entry-level Discovery series.</p>
<p><em><strong>Availability:</strong></em> As for Nextion&#8217;s &#8220;classics&#8221;, there is a 5 Year availability guarantee &#8211; we won&#8217;t stop production or support in the near future. Reminder: The LTA for the BASIC, ENHANCED, DISCOVERY, and INTELLIGENT series runs still until 2027, for the EDGE series until 2029, and for the GENIUS series at least until 2030.</p>
<p><em><strong>Support:</strong></em> The support remains equally active in parallel for the existing Nextion and the new Open Nextion series. Why &#8220;open&#8221;? &#8211; continue reading! BTW: This blog will from now on deal with one more product family without dropping the others.</p>
<h3>A new programming model</h3>
<p>You&#8217;ve probably already guessed it: All this new complexity can not longer be handled by the good old Nextion Editor. That means that the GENIUS series will have to be programmed in a different way. The advantage and the new freedom is that you do not longer depend on whatever proprietary firmware and protected intellectual property. Because the GENIUS series is completely <em><strong>open!</strong></em></p>
<p>While still relying on the excellent Nextion hardware, you are free to use the development environment (IDE) of your choice, be it the ESP-IDF, the Arduino IDE, Eclipse, or VS-Code (with the required plugins), to taste. For the graphic side, you may rely on the mighty and open-source LVGL library for which nice WYSIWYG editors like LVGL Pro or SquareLine Studio exist. And, you are not longer limited to Windows. From now on, you can also do your Open Nextion development on MacOS and Linux!</p>
<p>Comprehensive <em><strong>Wikis</strong></em> for the new <a href="https://nextion.tech/wiki/onx2432g028/">ONX2432G028</a> and the <a href="https://nextion.tech/wiki/onx3248g035/">ONX 3248G035</a> help you through every step and come with links to demo applications.</p>
<p>Nevertheless, there will be a learning curve. And, more features requiring more complexity, users who are happy with the Nextion Editor and the BASIC, ENHANCED, DISCOVERY, INTELLIGENT, and EDGE series, may stay with these without problems. The GENIUS series has not come to replace things, it&#8217;s an extension to the existing product portfolio!</p>
<h3>The Feature overview</h3>
<p>As mentionned above, the features and the connectivity of the GENIUS series are outstanding! Here is an overview:</p>
<table style="width: 600px; min-width: 600px; text-align: center; font-size: 14px; color: #4b4b4b; height: 721px; border-collapse: collapse;">
<thead style="border: none;">
<tr style="background-color: #d4d5d4; height: 60px; line-height: 60px; color: #fff; font-size: 16px;">
<th style="font-weight: normal; color: #000000; height: 60px;">Model Name</th>
<th style="font-weight: normal; color: #000000; text-align: center; height: 60px;">ONX2432G028</th>
<th style="font-weight: normal; color: #000000; text-align: center; height: 60px;">ONX3248G035</th>
</tr>
</thead>
<tbody>
<tr style="height: 40px;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">Size</td>
<td style="height: 36px;">2.8″</td>
<td style="height: 36px;">3.5″</td>
</tr>
<tr style="height: 40px; background-color: #fff;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">Resolution</td>
<td style="height: 36px;">240×320</td>
<td style="height: 36px;">320×480</td>
</tr>
<tr style="height: 40px;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">Touch</td>
<td style="height: 36px;">CTP</td>
<td style="height: 36px;">CTP</td>
</tr>
<tr style="height: 40px; background-color: #fff;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">MCU</td>
<td style="height: 36px;">ESP32-S3R8</td>
<td style="height: 36px;">ESP32-S3R8</td>
</tr>
<tr style="height: 40px;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">Flash</td>
<td style="height: 36px;">16 MB</td>
<td style="height: 36px;">16 MB</td>
</tr>
<tr style="height: 40px; background-color: #fff;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">ROM</td>
<td style="height: 36px;">384KB</td>
<td style="height: 36px;">384KB</td>
</tr>
<tr>
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px;">SRAM</td>
<td>512KB</td>
<td>512KB</td>
</tr>
<tr style="height: 40px; background-color: #fff;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">PSRAM</td>
<td style="height: 36px;">8 MB</td>
<td style="height: 36px;">8 MB</td>
</tr>
<tr style="height: 40px;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">Interfaces</td>
<td style="height: 36px;">USB-C(USB to UART)</td>
<td style="height: 36px;">USB-C(USB to UART)</td>
</tr>
<tr style="height: 40px;">
<td style="height: 189px;"></td>
<td style="height: 189px;">
<p class="para" style="margin-bottom: 10px;">UART0</p>
<p class="para" style="margin-bottom: 10px;">UART1</p>
<p class="para" style="margin-bottom: 10px;">I2C</p>
<p class="para" style="margin-bottom: 10px;">14 GPIO</p>
<p class="para" style="margin-bottom: 10px;">Camera</p>
<p class="para" style="margin-bottom: 10px;">Microphone</p>
<p class="para" style="margin-bottom: 10px;">Battery</p>
<p class="para" style="margin-bottom: 10px;">RTC Battery</p>
<p class="para" style="margin-bottom: 10px;">SPK</p>
</td>
<td style="height: 189px;">
<p class="para" style="margin-bottom: 10px;">UART0</p>
<p class="para" style="margin-bottom: 10px;">UART1</p>
<p class="para" style="margin-bottom: 10px;">I2C</p>
<p class="para" style="margin-bottom: 10px;">14 GPIO</p>
<p class="para" style="margin-bottom: 10px;">Camera</p>
<p class="para" style="margin-bottom: 10px;">Microphone</p>
<p class="para" style="margin-bottom: 10px;">Battery</p>
<p class="para" style="margin-bottom: 10px;">RTC Battery</p>
<p class="para" style="margin-bottom: 10px;">SPK</p>
</td>
</tr>
<tr style="height: 40px; background-color: #fff;">
<td style="color: #000000; font-weight: bold; text-align: left; text-indent: 30px; height: 36px;">MicroSD</td>
<td style="height: 36px;">Yes</td>
<td style="height: 36px;">Yes</td>
</tr>
</tbody>
</table>
<p>Isn&#8217;t that impressive ?</p>
<p>During the next weeks, we&#8217;ll look deeper in the one or the other detail, especially into the available range of accessories and perhaps still discover the one or the other feature.</p>
<h3>No need to wait</h3>
<p>You may start immediately! Click <a href="https://itead.cc/product/open-nextion-2-8-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">here to order the smaller ONX2432G028</a> and <a href="https://itead.cc/product/open-nextion-3-5-genius-series-esp32-s3-lcd-touchscreen-development-board/ref/35/">here to order the bigger ONX3248G035</a>!</p>
<h3 class="" data-fontsize="40" data-lineheight="58px">Last, but not least</h3>
<p>You have any questions, comments, critics, or suggestions? Just send me an email to<em> thierry (at) i</em><i>tead (dot) cc! </i>🙂</p>
<p>And, by the way, if you like and you find useful what I write, and you are about to order Nextion stuff with Itead, please do so by clicking <a href="https://bit.ly/nextion_thierry">THIS REFERRAL LINK</a>! To you, it won’t forcibly make a change for your order but on some products, you may even get a 10% discount using the coupon code <strong>THIERRYFRSONOFF</strong>. In ever case, it will pay me perhaps the one or the other beer or coffee. And that will motivate me to write still more interesting blogs 😉</p>
<p>Thank you for reading and happy Nextioning!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F23%2Fthe-new-genius-series-the-next-and-open-generation%2F&amp;linkname=The%20new%20GENIUS%20Series%3A%20The%20Next%20%28and%20open%29%20Generation%21" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F23%2Fthe-new-genius-series-the-next-and-open-generation%2F&amp;linkname=The%20new%20GENIUS%20Series%3A%20The%20Next%20%28and%20open%29%20Generation%21" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F23%2Fthe-new-genius-series-the-next-and-open-generation%2F&amp;linkname=The%20new%20GENIUS%20Series%3A%20The%20Next%20%28and%20open%29%20Generation%21" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fnextion.tech%2F2026%2F03%2F23%2Fthe-new-genius-series-the-next-and-open-generation%2F&#038;title=The%20new%20GENIUS%20Series%3A%20The%20Next%20%28and%20open%29%20Generation%21" data-a2a-url="https://nextion.tech/2026/03/23/the-new-genius-series-the-next-and-open-generation/" data-a2a-title="The new GENIUS Series: The Next (and open) Generation!"></a></p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
