<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>PlaneSpotter &#8211; Squix &#8211; TechBlog</title>
	<atom:link href="https://blog.squix.org/tag/planespotter/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.squix.org</link>
	<description></description>
	<lastBuildDate>Thu, 09 Dec 2021 08:10:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.8</generator>
<site xmlns="com-wordpress:feed-additions:1">121913304</site>	<item>
		<title>ESP8266 PlaneSpotter Color</title>
		<link>https://blog.squix.org/2017/01/esp8266-planespotter-color.html</link>
					<comments>https://blog.squix.org/2017/01/esp8266-planespotter-color.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Tue, 03 Jan 2017 15:55:44 +0000</pubDate>
				<category><![CDATA[ESP8266-projects]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[PlaneSpotter]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=1710</guid>

					<description><![CDATA[After many hours of work I&#8217;m very happy to finally publish all the sources for the ESP8266 PlaneSpotter project. It is not yet really in a V1.0.0 state but I&#8217;m sure with the help of the community it will quickly get better. While this post is ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2017/01/esp8266-planespotter-color.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>After many hours of work I&#8217;m very happy to finally publish all the sources for the ESP8266 PlaneSpotter project. It is not yet really in a V1.0.0 state but I&#8217;m sure with the help of the community it will quickly get better. While this post is more a &#8220;making-of&#8221; you can find build instructions on Github: <a href="https://github.com/squix78/esp8266-plane-spotter-color" target="_blank" rel="noopener">https://github.com/squix78/esp8266-plane-spotter-color</a></p>
<p>&nbsp;</p>
<p><span id="more-1710"></span></p>
<p>&nbsp;</p>
<p><iframe src="https://www.youtube.com/embed/4pTkoMsl1H4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2>The Beginnings</h2>
<p>A few months back I had already built and published a <a href="https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html">PlaneSpotter project</a> for the tiny OLED screens. It was quite useful but could only display text information about the nearest plane. How much cooler would it be to have a tiny and affordable device displaying a map with airplanes on it, just like the apps you have on your smart phone? The idea kept coming back to me but one important puzzle piece was missing: the TFT library could only display raw bitmap files (BMP) and I didn&#8217;t know of any mapping service which would let you download bmp images. Of course, I could have built a web service which would have converted JPEGs and PNGs to BMPs on the fly but that wasn&#8217;t really my goal. So I was stuck with the idea until I recently found Frederic Plante&#8217;s <a href="https://github.com/fredericplante/JPEGDecoder" target="_blank" rel="noopener">fork of the JPEGDecoder library</a> with adaptations for the ESP8266. This suddenly changed the game and I started working on the PlaneSpotter Color project.</p>
<p>&nbsp;</p>
<h2>The JPEGDecoder library</h2>
<p>It seems that this library has seen several iterations and forks. It is built around Rich Geldreich&#8217;s picojpeg library which is very good on embedded devices with limited memory. The library was wrapped by <a href="https://github.com/MakotoKurauchi/JPEGDecoder" target="_blank" rel="noopener">Makoto Kurauchi</a> 3 years ago for Arduino. Then <a href="https://github.com/Bodmer/JPEGDecoder" target="_blank" rel="noopener">Bodmer created a new repository</a> and added more samples until <a href="https://github.com/fredericplante/JPEGDecoder" target="_blank" rel="noopener">Frédéric Plante</a> ported it to the ESP8266. There might have been too much forking and copying but it is still a very good example for how open source works. Since this library is currently not available in the Arduino IDE library manager you&#8217;ll have to clone Frédéric&#8217;s repository or download the zip file.</p>
<p>&nbsp;</p>
<figure id="attachment_1711" aria-describedby="caption-attachment-1711" style="width: 300px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?ssl=1"><img data-recalc-dims="1" decoding="async" data-attachment-id="1711" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/distortions" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?fit=2620%2C1360&amp;ssl=1" data-orig-size="2620,1360" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1483124535&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;160&quot;,&quot;shutter_speed&quot;:&quot;0.03030303030303&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Distortions" data-image-description="" data-image-caption="&lt;p&gt;JPG with distortions&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?fit=300%2C156&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?fit=730%2C379&amp;ssl=1" class="size-medium wp-image-1711" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483-300x156.jpg?resize=300%2C156&#038;ssl=1" alt="" width="300" height="156" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?resize=300%2C156&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?resize=768%2C399&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?resize=1024%2C532&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Distortions-e1483449398483.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1711" class="wp-caption-text">JPG with distortions</figcaption></figure>
<p>While the maps from MapQuest were displayed without issues I had problems with other JPEG files. The splash screen which I had ordered from a Fiverr designer didn&#8217;t display properly on the TFT. I had opened it in GIMP and exported it with the proper dimensions but on the TFT it would always show up with artefacts. I first suspected compression but the artefacts did even shop up with 0% compression (or 100% quality). Another open source tool had to help: ImageMagick&#8217;s identify showed me that images which worked at a sampling factor of 1&#215;1, 1&#215;1, 1&#215;1 while my Gimp export had 2&#215;2, 1&#215;1, 1&#215;1. So keep in mind if you want to display your own files.</p>
<p>From what I could tell the library currently cannot decode data from PROGMEM. What does that mean? When you mark a variable or array with the PROGMEM keyword it will not be loaded into your memory after startup but stay packed in your firmware. With a special read command you can then read this data and do what you need with it. Usually font files also use this little trick. This is quite cool since you don&#8217;t have to upload images to the ESP8266 by using an additional Arduino IDE plugin. In the <a href="https://blog.squix.org/2016/10/esp8266-weather-station-color-code-published.html">WeatherStation Color</a> I had worked around this problem by downloading the moon phase images from my web server. But having the images in the source code is much better. You can create your own images on a Linux/Unix system like this:</p>
<pre>xxd -i image.jpg | sed "1s/.*/const uint8_t image[] PROGMEM = {/" | sed "s/ [a-zA-Z_]*_len/ image_len/" &gt; image.h
</pre>
<p><strong>Explanation</strong>: the xxd command creates a hex dump of image.jpg but it doesn&#8217;t contain the PROGMEM keyword. So the first <em>sed</em> command replaces the first line with a new one. The second <em>sed</em> replaces the name of the variable that holds the length of the array. Then the file is written to a header file.</p>
<p>I mentioned that the library is currently not capable of loading data from PROGMEM. I therefore wrote a little routine which copies the PROGMEM data onto the SPIFFS file system of the ESP. From there the JPEGDecoder library can read it.</p>
<p>&nbsp;</p>
<h2>The Wifi GeoLocator</h2>
<p>I&#8217;m most probably not the first one to do this but I still think it&#8217;s worth mentioning. Did you know that your ESP8266 has a GPS device built-in? Well, it is not exactly a GPS device but under certain situations can be even more precise. It works by scanning visible access points and sending them with the signal strength to a web service. If your database is good enough and contains the necessary SSIDs you will get a pretty decent location fix. This only works if you are connected to the internet and if you can call the webservice but hey, it basically comes for free.</p>
<p>Alexandar Mylnikov is running such a webservice which is fairly easy to use:</p>
<pre>https://api.mylnikov.org/geolocation/wifi?v=1.1&amp;data=open&amp;bssid=00:0C:42:1F:65:E9
</pre>
<p>which returns a JSON object:</p>
<pre>{"result":200, "data":{"lat": 45.21981301815, "range": 125.417, "lon": 16.54716187303, "time": 1483362238}}</pre>
<p>There is also a beta version which takes a base64 encoded list of multiple bssids and the rssi (signal strength) which in theory should result in even higher precision.</p>
<p>&nbsp;</p>
<h2>Drawing on the TFT</h2>
<p>The current setup shows an ugly flickering with the update of the data every few seconds. Sadly I couldn&#8217;t find a way around that issue yet and this is for a good reason. In the OLED display library I could just build a frame buffer, do all drawing operations there and then write the whole buffer to the display. But 128*64*1 bits don&#8217;t consume so much memory like 320*240*16 . (2 bytes per pixel with a resolution of 320&#215;240). There are certainly some tricks you can use to work around this issue but they would currently consume time I don&#8217;t have. If you have suggestions or even pull-requests on github, please let me know.</p>
<p>You might also notice that the flight tracks are not working 100% properly yet. Sometimes they seem to forget their past and start over again.</p>
<p>&nbsp;</p>
<h2>PCB design, Fritzing and KiCad</h2>
<p>In this project I tried out a lot of new things. One of them was designing my own printed circuit board. The board is actually quite simple and only needs to connect the 14 pins of the Touch screen/ TFT with the Wemos D1 Mini. I had used Fritzing to create a wiring diagram so it was easy to turn it into a PCB. After a bit of renaming files I was able to send the Gerbers to http://dirtypcbs.com/ and after about 10 days I had my first ever self-designed PCB in my hands. I soldered the TFT and the Wemos D1 Mini onto the board and everything fit nicely. How big was my disappointment when nothing would light up? I first was afraid that had designed a short between two pins which Fritzing hadn&#8217;t warned me about but the connectivity test revealed that I simply had forgotten one connection between the ESP8266 and the display. That could be solved quickly by adding a bodge wire as you can see on the photo:</p>
<figure id="attachment_1714" aria-describedby="caption-attachment-1714" style="width: 730px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" data-attachment-id="1714" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/connectorwithbodgewire" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?fit=1490%2C838&amp;ssl=1" data-orig-size="1490,838" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ConnectorWithBodgeWire" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?fit=300%2C169&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?fit=730%2C411&amp;ssl=1" class="wp-image-1714 size-large" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?resize=730%2C411&#038;ssl=1" width="730" height="411" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/ConnectorWithBodgeWire.png?w=1490&amp;ssl=1 1490w" sizes="(max-width: 730px) 100vw, 730px" /></a><figcaption id="caption-attachment-1714" class="wp-caption-text">Faulty PCB design, fixed with a wire (click to zoom)</figcaption></figure>
<p>Even before I had received the Fritzing PCB from dirtypcbs.com I had worked through a great KiCad video tutorial by <a href="https://www.youtube.com/user/contextualelectronic/playlists" target="_blank" rel="noopener">Chris Garmel (Contextual Electronic)</a>. With the help of the tutorial I had a PCB design ready in no time. But I have to say that KiCad is not the most intuitive tool;-). I sent them off to <a href="https://oshpark.com/" target="_blank" rel="noopener">https://oshpark.com/</a> and received 3 wonderful boards. Sadly I had made a mistake again. The Wemos pins were so far inside of the PCB that I only could attach the USB connector if the Wemos board was soldered with a gap to the connector board. This defied the goal to have a design as flat as possible:</p>
<figure id="attachment_1715" aria-describedby="caption-attachment-1715" style="width: 730px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="1715" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/fullsizerender-2" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?fit=4032%2C3024&amp;ssl=1" data-orig-size="4032,3024" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1483458570&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;32&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="FullSizeRender" data-image-description="" data-image-caption="&lt;p&gt;The second faulty design: the Wemos D1 Mini must be about 3-4mm from the connector board or the USB plug does not fit&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?fit=730%2C548&amp;ssl=1" class="wp-image-1715 size-large" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?resize=730%2C548&#038;ssl=1" width="730" height="548" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/FullSizeRender.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></a><figcaption id="caption-attachment-1715" class="wp-caption-text">The second faulty design: the Wemos D1 Mini must be about 3-4mm from the connector board or the USB plug does not fit</figcaption></figure>
<p>I updated the KiCad file and I&#8217;m currently waiting for a new delivery.</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/DDaZUs09Ohg" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>&nbsp;</p>
<h2>OpenScad and the 3D printed enclosure</h2>
<p>The last piece of the puzzle was to design an enclosure for the hardware. I like to use OpenScad for that since it lets you &#8220;program&#8221; the objects which is a good thing for a programmer;-).</p>
<figure id="attachment_1716" aria-describedby="caption-attachment-1716" style="width: 150px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="1716" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/lid" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?fit=1606%2C874&amp;ssl=1" data-orig-size="1606,874" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Lid" data-image-description="" data-image-caption="&lt;p&gt;Lid&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?fit=300%2C163&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?fit=730%2C397&amp;ssl=1" class="size-thumbnail wp-image-1716" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=150%2C150&#038;ssl=1" alt="" width="150" height="150" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=180%2C180&amp;ssl=1 180w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=200%2C200&amp;ssl=1 200w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=450%2C450&amp;ssl=1 450w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/Lid.png?zoom=2&amp;resize=150%2C150&amp;ssl=1 300w" sizes="(max-width: 150px) 100vw, 150px" /></a><figcaption id="caption-attachment-1716" class="wp-caption-text">Lid</figcaption></figure>
<figure id="attachment_1717" aria-describedby="caption-attachment-1717" style="width: 150px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="1717" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/casebottom" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?fit=1640%2C980&amp;ssl=1" data-orig-size="1640,980" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CaseBottom" data-image-description="" data-image-caption="&lt;p&gt;Case Bottom&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?fit=730%2C436&amp;ssl=1" class="size-thumbnail wp-image-1717" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=150%2C150&#038;ssl=1" alt="" width="150" height="150" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=180%2C180&amp;ssl=1 180w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=200%2C200&amp;ssl=1 200w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=450%2C450&amp;ssl=1 450w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseBottom.png?zoom=2&amp;resize=150%2C150&amp;ssl=1 300w" sizes="(max-width: 150px) 100vw, 150px" /></a><figcaption id="caption-attachment-1717" class="wp-caption-text">Case Bottom</figcaption></figure>
<figure id="attachment_1718" aria-describedby="caption-attachment-1718" style="width: 150px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="1718" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/casetop" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?fit=1570%2C978&amp;ssl=1" data-orig-size="1570,978" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CaseTop" data-image-description="" data-image-caption="&lt;p&gt;Case from top&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?fit=730%2C455&amp;ssl=1" class="size-thumbnail wp-image-1718" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=150%2C150&#038;ssl=1" alt="" width="150" height="150" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=180%2C180&amp;ssl=1 180w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=200%2C200&amp;ssl=1 200w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=450%2C450&amp;ssl=1 450w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/CaseTop.png?zoom=2&amp;resize=150%2C150&amp;ssl=1 300w" sizes="(max-width: 150px) 100vw, 150px" /></a><figcaption id="caption-attachment-1718" class="wp-caption-text">Case from top</figcaption></figure>
<p><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="1719" data-permalink="https://blog.squix.org/2017/01/esp8266-planespotter-color.html/img_5190" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?fit=3024%2C4032&amp;ssl=1" data-orig-size="3024,4032" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1482582575&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;64&quot;,&quot;shutter_speed&quot;:&quot;0.03030303030303&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="During Print" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?fit=225%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?fit=730%2C973&amp;ssl=1" class="aligncenter size-thumbnail wp-image-1719" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=150%2C150&#038;ssl=1" alt="" width="150" height="150" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=180%2C180&amp;ssl=1 180w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=200%2C200&amp;ssl=1 200w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=450%2C450&amp;ssl=1 450w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2017/01/IMG_5190.jpg?zoom=2&amp;resize=150%2C150&amp;ssl=1 300w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2017/01/esp8266-planespotter-color.html/feed</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1710</post-id>	</item>
		<item>
		<title>ESP8266 based Plane Spotter now for Arduino IDE</title>
		<link>https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html</link>
					<comments>https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 04 Sep 2016 11:55:34 +0000</pubDate>
				<category><![CDATA[ESP8266 Weather Station]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[PlaneSpotter]]></category>
		<category><![CDATA[WeatherStation]]></category>
		<guid isPermaLink="false">http://blog.squix.org/?p=786</guid>

					<description><![CDATA[I received a few complaints that users couldn&#8217;t get the Platformio IDE running since the security software detected it as malicious software. So I added the code also to the WeatherStation library as a demo project. &#160; First you&#8217;ll have to install or update the ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>I received a few complaints that users couldn&#8217;t get the Platformio IDE running since the security software detected it as malicious software. So I added the code also to the WeatherStation library as a demo project.</p>
<p><span id="more-786"></span></p>
<p>&nbsp;</p>
<p>First you&#8217;ll have to install or update the library and make sure that you have at least version 1.1.1 installed. Then you can simply go to</p>
<pre>Files &gt; Examples &gt; ESP8266 Weather Station &gt; PlaneSpotterDemo</pre>
<p>And you&#8217;ll have a template for your own PlaneSpotter project. Read the <a href="https://blog.squix.org/2016/07/esp8266-based-plane-spotter-how-to.html" target="_blank">original article</a> for more detail.</p>
<figure id="attachment_578" aria-describedby="caption-attachment-578" style="width: 300px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="578" data-permalink="https://blog.squix.org/2016/07/esp8266-based-plane-spotter-how-to.html/image-32" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?fit=4032%2C3024&amp;ssl=1" data-orig-size="4032,3024" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1467544642&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.04&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="#ESP8266 Plane Spotter" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?fit=730%2C548&amp;ssl=1" class="wp-image-578 size-medium" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?resize=300%2C225&#038;ssl=1" alt="#ESP8266 Plane Spotter" width="300" height="225" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/07/image-3.jpeg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-578" class="wp-caption-text">ESP8266 based PlaneSpotter now also available for the Arduino IDE</figcaption></figure>
<p>Bethsalem presented a nice and simple enclosure for the PlaneSpotter over at <a href="http://radarspotting.com/forum/index.php/topic,6345.msg31014.html" target="_blank">RadarSpotting</a>. Thank you for sharing!</p>
<figure id="attachment_787" aria-describedby="caption-attachment-787" style="width: 300px" class="wp-caption aligncenter"><a href="http://radarspotting.com/forum/index.php/topic,6345.msg31014.html"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="787" data-permalink="https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html/planespotterproject" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?fit=2448%2C2448&amp;ssl=1" data-orig-size="2448,2448" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PlaneSpotterProject" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?fit=730%2C730&amp;ssl=1" class="wp-image-787 size-medium" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=300%2C300&#038;ssl=1" alt="PlaneSpotterProject" width="300" height="300" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/09/PlaneSpotterProject.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-787" class="wp-caption-text">PlaneSpotter enclosure by Bethsalem</figcaption></figure>
<p>BTW: this project is also mentioned in my new eBook: <a href="https://www.amazon.com/ESP8266-Weather-Station-Getting-Started-ebook/dp/B01LFX8Z5W/" target="_blank">ESP8266 Weather Station: Getting Started Guide</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2016/09/esp8266-based-plane-spotter-now-for-arduino-ide.html/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">786</post-id>	</item>
		<item>
		<title>ESP8266 Weather Station on the &#8220;Big Screen&#8221;</title>
		<link>https://blog.squix.org/2016/08/esp8266-weather-station-on-a-big-screen.html</link>
					<comments>https://blog.squix.org/2016/08/esp8266-weather-station-on-a-big-screen.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sat, 20 Aug 2016 06:46:57 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[OLED]]></category>
		<category><![CDATA[PlaneSpotter]]></category>
		<category><![CDATA[SH1106]]></category>
		<category><![CDATA[SSD1306]]></category>
		<category><![CDATA[WeatherStation]]></category>
		<guid isPermaLink="false">http://blog.squix.org/?p=764</guid>

					<description><![CDATA[The 0.96&#8243; OLED displays I usually use for the WeatherStation are gorgeous but they could be bigger, right? Recently a bigger version of the SSD1306 based display became available on my favourite channels. Thanks to great work of the community (especially Fabrice Weinberg) the OLED ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2016/08/esp8266-weather-station-on-a-big-screen.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>The 0.96&#8243; OLED displays I usually use for the WeatherStation are gorgeous but they could be bigger, right? Recently a bigger version of the SSD1306 based display became available on my favourite channels. Thanks to great work of the community (especially Fabrice Weinberg) the <a href="https://github.com/squix78/esp8266-oled-ssd1306" target="_blank" rel="noopener">OLED library on Github</a>  as been extended to support those <a href="https://blog.squix.orghttps://www.banggood.com/1_3-Inch-4Pin-White-OLED-LCD-Display-12864-IIC-I2C-Interface-Module-p-1067874.html?p=6R31122484684201508S&#038;custlinkid=1587754" target="_blank" rel="noopener">1.3&#8243; displays based on the SH1106 chip</a>.</p>
<figure id="attachment_767" aria-describedby="caption-attachment-767" style="width: 225px" class="wp-caption aligncenter"><a href="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="767" data-permalink="https://blog.squix.org/2016/08/esp8266-weather-station-on-a-big-screen.html/image-78" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?fit=3024%2C4032&amp;ssl=1" data-orig-size="3024,4032" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1467551680&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.03030303030303&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="image" data-image-description="" data-image-caption="&lt;p&gt;0.96&#8243; based on SSD1306 and 1.3&#8243; based on SH1106 running the Plane Spotter&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?fit=225%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?fit=730%2C973&amp;ssl=1" class="wp-image-767 size-medium" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?resize=225%2C300&#038;ssl=1" alt="0.96&quot; based on SSD1306 and 1.3&quot; based on SH1106 running the Plane Spotter" width="225" height="300" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?resize=225%2C300&amp;ssl=1 225w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?resize=768%2C1024&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?resize=300%2C400&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2016/08/image-1.jpeg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 225px) 100vw, 225px" /></a><figcaption id="caption-attachment-767" class="wp-caption-text">0.96&#8243; based on SSD1306 and 1.3&#8243; based on SH1106 running the Plane Spotter</figcaption></figure>
<p><span id="more-764"></span></p>
<h1>Adapting the code</h1>
<p>So how do you get those displays working with the <a href="https://blog.squix.org/weatherstation-ide-setup">WeatherStation</a> or the <a href="https://blog.squix.org/2016/07/esp8266-based-plane-spotter-how-to.html">PlaneSpotter</a>? The OLED library makes that really easy: you just have to change two lines of code. The include for the SH1106 driver has to be included and then the instantiation. Find the line</p>
<pre>#include &lt;SSD1306Wire.h&gt;</pre>
<p>and replace it with</p>
<pre>#include &lt;SH1106.h&gt;
</pre>
<p>The next step is to replace the instantiation of the driver:</p>
<pre>SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN);
</pre>
<p>and replace it with:</p>
<pre>SH1106  display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN);
</pre>
<p>Done! Easy, wasn&#8217;t it? The OLED library supports other types of displays or communication protocols. You kind out more about them here:<br />
<a href="https://github.com/squix78/esp8266-oled-ssd1306">https://github.com/squix78/esp8266-oled-ssd1306</a></p>
<h1>Summary</h1>
<p>With changing just a few lines you can get the WeatherStation and the PlaneSpotter working on the bigger 1.3&#8243; screens. The cost a little bit more but depending on your casing they are worth the money. By the way: the pixel density (DPI) is actually worse with the 1.3&#8243; displays since both types have the same resolution of 128&#215;64 pixels. You can find the displays on AliExpress, eBay or on Banggood and support the Blog by following this link.</p>
<h1>References</h1>
<ul>
<li><a href="https://github.com/squix78/esp8266-weather-station">https://github.com/squix78/esp8266-weather-station</a></li>
<li><a href="https://github.com/squix78/esp8266-oled-ssd1306" target="_blank" rel="noopener">https://github.com/squix78/esp8266-oled-ssd1306</a></li>
<li><a href="https://blog.squix.orghttps://www.banggood.com/1_3-Inch-4Pin-White-OLED-LCD-Display-12864-IIC-I2C-Interface-Module-p-1067874.html?p=6R31122484684201508S&#038;custlinkid=1587754" target="_blank" rel="noopener">1.3&#8243; OLED display on Banggood</a></li>
<li><a href="https://www.banggood.com/Geekcreit-0_96-Inch-4Pin-White-IIC-I2C-OLED-Display-Module-12864-LED-Geekcreit-for-Arduino-products-that-work-with-official-Arduino-boards-p-958196.html?p=0P21061109440201501M&amp;custlinkid=1587780" target="_blank" rel="noopener">0.96&#8243; OLED display on Banggood</a></li>
<li><a href="https://blog.squix.org/weatherstation-ide-setup" target="_blank" rel="noopener">WeatherStation Project Post</a></li>
<li><a href="https://blog.squix.org/2016/07/esp8266-based-plane-spotter-how-to.html" target="_blank" rel="noopener">PlaneSpotter Project Post</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2016/08/esp8266-weather-station-on-a-big-screen.html/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">764</post-id>	</item>
	</channel>
</rss>
