<?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>Common &#8211; Squix &#8211; TechBlog</title>
	<atom:link href="https://blog.squix.org/category/common/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.squix.org</link>
	<description></description>
	<lastBuildDate>Sun, 16 Jul 2023 07:39:06 +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>The ESP32 Color Kit Grande is here</title>
		<link>https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html</link>
					<comments>https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 06:55:21 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[WeatherStation]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=8094</guid>

					<description><![CDATA[The Color Kit Grande is the latest update of the hardware kits which I started selling back in 2015. It started with the ESP8266 and a tiny B/W OLED display. A little later the ESP8266 Color Kit followed and added a bigger display with resistive touch screen to it. Buyers also had to do a bit of soldering to complete the kit.]]></description>
										<content:encoded><![CDATA[
<p>The Color Kit Grande is the latest update of the hardware kits which I started selling back in 2015. It started with the ESP8266 and a tiny B/W OLED display. A little later the ESP8266 Color Kit followed and added a bigger display with resistive touch screen to it. Buyers also had to do a bit of soldering to complete the kit.</p>



<span id="more-8094"></span>



<h2 class="wp-block-heading">The ePulse Feather </h2>



<p>The Color Kit Grande is the sum of many things Marcel and I learned in the last couple of years. We replaced the NodeMCU from the Classic Kit and the Wemos Mini from the Color Kit with our own ESP32 ePulse Feather. As the name indicates the ePulse Feather follows Adafruit&#8217;s Feather specification. The ePulse Feather is also very efficient when it comes power consumption: it only consumes down to 12uA when in deep sleep! A true IoT dev board should be powered by batteries and the ePulse Feather allows this with a LiPo charger and connector. And it uses the powerful ESP32 microcontroller which is a big upgrade compared to the ESP8266. More RAM, more flash, more cores, more possibilities!</p>



<iframe src="https://thingpulse.autodesk360.com/shares/public/SH35dfcQT936092f0e433233a4796e4fb61f?mode=embed" width="800" height="600" frameborder="0" allowfullscreen="allowfullscreen"></iframe>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">The Display Module</h2>



<p>But not only the microcontroller board got better compared the the older Color Kit. We also added a better display module. It communicates over SPI with the ePulse Feather to change the pixels on the display. The added PSRAM memory of the ePulse Feather allows us to write better looking programs with more colors!</p>



<p>We also replaced the (ancient) resistive touch screen with a capacitive module. This is the same technology that you know from modern smartphones and tablets and is much more precise and intuitive to use.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="730" height="279" data-attachment-id="8247" data-permalink="https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html/image-3-6" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?fit=2166%2C826&amp;ssl=1" data-orig-size="2166,826" 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="image-3" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?fit=300%2C114&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?fit=730%2C279&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=730%2C279&#038;ssl=1" alt="" class="wp-image-8247" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=1024%2C391&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=300%2C114&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=768%2C293&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=1536%2C586&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?resize=2048%2C781&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-3.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">The Connector Board</h2>



<p>The ESP8266 Color Kit was the first of my kits to include a custom component and it required you to solder pin headers. The Color Kit Grande still has such a PCB which we call connector board. But this time we offer you various difficulties of soldering. There is a power switch with classic through hole soldering and a wide pin pitch with enough space for even a wide soldering tool.<br>The pin headers for the ePulse Feather are in 2.54mm pitch and are a bit more delicate but still not too hard for a beginner. We also added a Grove connector to connect to a wide range of sensors and actors using the same system. And the Grove connector is surface mounted which again is a bit more complicated to solder.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" width="730" height="341" data-attachment-id="8241" data-permalink="https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html/image-2-6" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?fit=3432%2C1602&amp;ssl=1" data-orig-size="3432,1602" 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="image-2" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?fit=300%2C140&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?fit=730%2C341&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=730%2C341&#038;ssl=1" alt="" class="wp-image-8241" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=1024%2C478&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=300%2C140&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=768%2C358&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=1536%2C717&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?resize=2048%2C956&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image-2.png?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">The Kit Box</h2>



<p>Even with the kit box we learned from our older products: both the Classic Weather Station and the ESP8266 Color Kit came in a box which is 4cm high. This was sometimes problematic for shipping and added extra costs. The Color Kit Grande box is only 2cm high and everything fits neatly in it. The box even serves as a stand. How cool is that? </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="653" data-attachment-id="8234" data-permalink="https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html/image-90" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?fit=2609%2C2333&amp;ssl=1" data-orig-size="2609,2333" 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="image" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?fit=300%2C268&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?fit=730%2C653&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=730%2C653&#038;ssl=1" alt="" class="wp-image-8234" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=1024%2C916&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=300%2C268&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=768%2C687&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=1536%2C1374&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?resize=2048%2C1831&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/07/image.png?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">The New Weather App</h2>



<p>Not only the hardware is new, we also rewrote the popular weather app from scratch. More memory and more CPU power means that we have more colors to play with. To make setup of the development environment as easy as possible we decided to use platformio and Visual Studio Code. While the Arduino IDE is very good for beginners it makes it hard to ensure that every maker has the same setup on his/her machine. With platformio we can define the exact versions of libraries you use. No conflicts because of old and outdated dependencies! Just do the required changes in the settings.h file and upload the firmware!</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Where to buy</h2>



<p>The Color Kit Grande is available at the <a href="https://thingpulse.com/product/esp32-wifi-color-display-kit-grande/">ThingPulse web shop</a>. As you might know, I founded ThingPulse together with Marcel back in 2018 to professionalize the distribution of the projects posted on this blog. Since then we developed many new products together which are also available in the shop.</p>



<p><strong>Coupon</strong>: For the readers of my blog I have a special treat! Use the coupon code <strong>SQUIX-CKG </strong>to <strong>save USD $5</strong> when buying a Color Kit Grande in the <a rel="noreferrer noopener" href="https://thingpulse.com/product/esp32-wifi-color-display-kit-grande/" target="_blank">ThingPulse Shop</a>. Valid until July 31, 2023</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Links</h2>



<ul>
<li><a href="https://thingpulse.com/product/esp32-wifi-color-display-kit-grande/">Color Kit Grande Shop Page</a></li>



<li><a href="https://docs.thingpulse.com/guides/esp32-color-kit-grande/">Assembly and programming instructions</a></li>



<li><a href="https://github.com/ThingPulse/esp32-weather-station-touch">Weather Station Touch on Github</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2023/07/the-esp32-color-kit-grande-is-here.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8094</post-id>	</item>
		<item>
		<title>ESP32: Cheap Sensor Network with OpenMQTTGateway</title>
		<link>https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html</link>
					<comments>https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Thu, 06 Apr 2023 07:29:43 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=7976</guid>

					<description><![CDATA[perience of setting up an inexpensive room sensor network using an ESP32 and a couple of Xiaomi devices, with the help of the open source project OpenMQTTGateway.]]></description>
										<content:encoded><![CDATA[
<p>In this blog post, I will share my experience of setting up an inexpensive room sensor network using an ESP32 and a couple of Xiaomi devices, with the help of the open source project <a href="https://docs.openmqttgateway.com/">OpenMQTTGateway</a>.</p>



<span id="more-7976"></span>



<p>For a long time, I had been planning to build ESP32-based devices to measure the temperature in my apartment. In summer, visualizing the temperature helps in ventilating the apartment efficiently, while in winter, it helps to keep an eye on the humidity levels. However, more important projects kept taking precedence, and I never really got around to building the sensor network. That is until I discovered the <a href="https://docs.openmqttgateway.com/">OpenMQTTGateway</a> project.</p>



<p></p>



<h2 class="wp-block-heading">What is the OpenMQTTGateway?</h2>



<p>The OpenMQTTGateway is an open source project that may not seem like much, but it is incredibly effective. An ESP32 flashed with this firmware will scan for devices and read their values if possible. The gateway ESP32 will then publish the discovered devices to specific topics on a MQTT broker. If the firmware recognizes a device type and can communicate with it, it will also publish additional information. </p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="705" data-attachment-id="7977" data-permalink="https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html/image-89" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?fit=1530%2C1478&amp;ssl=1" data-orig-size="1530,1478" 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="image" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?fit=300%2C290&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?fit=730%2C705&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?resize=730%2C705&#038;ssl=1" alt="" class="wp-image-7977" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?resize=1024%2C989&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?resize=300%2C290&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?resize=768%2C742&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?w=1530&amp;ssl=1 1530w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/image.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<p>The published information includes a plethora of data to play with, with each device having its own topic, and a JSON structure containing the collected information.</p>



<p></p>



<h2 class="wp-block-heading">Hardware: The Gateway</h2>



<p>To run OpenMQTTGateway, any ESP32 device can be used. However, to travel in style and maintain the aesthetics of my apartment, I opted for the <a href="https://thingpulse.com/product/espgateway/">ThingPulse ESPGateway</a>, which comes with a sleek enclosure and an external antenna that helps to communicate over a longer distance. For those who want to connect the gateway over Ethernet, the <a href="https://thingpulse.com/product/espgateway-ethernet-esp32-wifi-ble-gateway-with-rj45-ethernet-connector/">Ethernet the ESPGateway</a> is also a good choice.</p>



<figure class="wp-block-image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/thingpulse.com/wp-content/uploads/2021/04/ESPGateway3-scaled.jpg?w=730&#038;ssl=1" alt=""/><figcaption>The ThingPulse ESPGateway looks nice in the apartment and the external antennas increase range</figcaption></figure>



<h2 class="wp-block-heading">Hardware: The Sensors</h2>



<p>For the room sensors, I used Xiaomi BLE sensors that are very affordable and measure temperature and humidity, communicating over Bluetooth LE. When purchased in bundles, these sensors can be found for <a href="https://s.click.aliexpress.com/e/_DdQuiI5">less than USD $5 on Aliexpress</a>. </p>



<p></p>



<figure class="wp-block-image"><img data-recalc-dims="1" height="411" width="730" decoding="async" src="https://i0.wp.com/thingpulse.com/wp-content/uploads/2021/04/XiaomiBLETempHum-1024x576.jpg?resize=730%2C411&#038;ssl=1" alt=""/></figure>



<p>By using a custom firmware that can be flashed using this <a href="https://github.com/atc1441/ATC_MiThermometer">GitHub project</a>, additional features can be added to the sensors.</p>



<p></p>



<h3 class="wp-block-heading">Plant Sensors</h3>



<p>Apart from the Xiaomi BLE Room sensors, there are many other devices that can communicate with the OpenMQTTGateway in my home. For instance, the <a href="https://s.click.aliexpress.com/e/_DFmtXnL">Xiaomi Flora Plant</a> sensors work exceptionally well to report soil humidity, temperature, and light. </p>



<p></p>



<figure class="wp-block-image"><img data-recalc-dims="1" height="411" width="730" decoding="async" src="https://i0.wp.com/thingpulse.com/wp-content/uploads/2021/04/BluetoothDevices-1024x576.jpg?resize=730%2C411&#038;ssl=1" alt="Xiaomi Flower Care Sensor"/></figure>



<h3 class="wp-block-heading">Presence Detection</h3>



<p>You can also use the OpenMQTTGateay to track the presence of devices in your apartment. For instance if you are wearing a Fit tracker like the <a href="https://s.click.aliexpress.com/e/_DCGCKbf">Xiaomi Mi Band</a> you can track the presence of the people wearing them. </p>



<h2 class="wp-block-heading">Storing, Controlling and Visualizing</h2>



<p>To store, control, and visualize the data, I have a Raspberry Pi 4 running the MQTT broker. A <a href="https://nodered.org/">Node-Red</a> instance takes the data and pushes it into an <a href="https://www.influxdata.com/">InfluxDB</a>. Then, <a href="https://grafana.com/">Grafana</a> is used to visualize the data over time. And this is how it looks for the Xiaomi room sensors:</p>



<p></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="244" data-attachment-id="8005" data-permalink="https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html/temperature" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?fit=2030%2C678&amp;ssl=1" data-orig-size="2030,678" 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="Temperature" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?fit=300%2C100&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?fit=730%2C244&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?resize=730%2C244&#038;ssl=1" alt="" class="wp-image-8005" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?resize=1024%2C342&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?resize=300%2C100&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?resize=768%2C257&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?resize=1536%2C513&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?w=2030&amp;ssl=1 2030w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Temperature.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="244" data-attachment-id="8006" data-permalink="https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html/humidity" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?fit=2028%2C678&amp;ssl=1" data-orig-size="2028,678" 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="Humidity" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?fit=300%2C100&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?fit=730%2C244&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?resize=730%2C244&#038;ssl=1" alt="" class="wp-image-8006" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?resize=1024%2C342&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?resize=300%2C100&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?resize=768%2C257&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?resize=1536%2C514&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?w=2028&amp;ssl=1 2028w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Humidity.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="246" data-attachment-id="8007" data-permalink="https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html/battery" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?fit=2034%2C686&amp;ssl=1" data-orig-size="2034,686" 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="Battery" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?fit=300%2C101&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?fit=730%2C246&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?resize=730%2C246&#038;ssl=1" alt="" class="wp-image-8007" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?resize=1024%2C345&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?resize=300%2C101&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?resize=768%2C259&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?resize=1536%2C518&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?w=2034&amp;ssl=1 2034w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2023/04/Battery.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2023/04/esp32-cheap-sensor-network-with-openmqttgateway.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7976</post-id>	</item>
		<item>
		<title>Importing PCBs from EasyEDA into Fusion 360</title>
		<link>https://blog.squix.org/2022/05/importing-pcbs-from-easyeda-into-fusion-360.html</link>
					<comments>https://blog.squix.org/2022/05/importing-pcbs-from-easyeda-into-fusion-360.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Thu, 05 May 2022 15:52:13 +0000</pubDate>
				<category><![CDATA[3D Printing]]></category>
		<category><![CDATA[Common]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=7559</guid>

					<description><![CDATA[I mostly use EasyEDA for PCB design: it is easy to use and ordering assembled PCBs from JLCPCB couldn&#8217;t be easier (and cheaper) with any other EDA tool. But exporting your PCB design from EasyEDA as a 3D object is really faulty. Often we want ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2022/05/importing-pcbs-from-easyeda-into-fusion-360.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>I mostly use EasyEDA for PCB design: it is easy to use and ordering assembled PCBs from JLCPCB couldn&#8217;t be easier (and cheaper) with any other EDA tool. But exporting your PCB design from EasyEDA as a 3D object is really faulty. Often we want to create an enclosure for a PCB and all connectors and buttons need to be in the right place. In this tutorial I show you my workflow from EasyEDA to Fusion 360.</p>



<span id="more-7559"></span>



<h2 class="wp-block-heading">Step by Step Instructions</h2>



<p>In EasyEDA:</p>



<ol><li>Export the layers as DXF file, File > Export > DXF&#8230;</li></ol>



<p>In Fusion 360:</p>



<ol><li>In a new design create a new component and activate it. </li><li>Import the DXF file: Insert > Insert DXF. In the dialog choose <em>One Sketch per Layer&#8230;</em></li><li>Create a new sketch on the same plane and call it PCB</li><li>Project (Shortcut &#8216;P&#8217;) all relevant and correct sketch features into the new sketch. <ul><li>Some elements might be wrong, in that case, import enough to fix them (see video).</li><li>Remove the checkbox behind &#8220;projection link&#8221;. This allows you to change projected lines independent from the imported sketches</li><li>Make sure the PCB outline is closed (the PCB in the sketch is light blue)</li></ul></li><li>Extrude (Shortcut &#8216;E&#8217;) the PCB downwards with the thickness you will order your PCBs with. <ul><li>In my case, I entered -1.6mm. </li><li>The sketch plane should be on top of the PCB. This will make it easier to align the electronic components later</li></ul></li><li>Create a new top-level component for every electronic part you wish to import. <ul><li>You don&#8217;t need to import every capacitor, chip, or resistor. You can of course, but this will be very tedious. </li><li>Only import parts that interact with the enclosure: plugs, buttons, sensor or the parts with the biggest height</li></ul></li></ol>



<p>In EasyEDA:</p>



<ol><li>Open the PCB view. Put your browser (e.g. Chrome) into inspect mode by right-clicking somewhere at the top of the browser window. </li><li>Open the tab to display network traffic (&#8220;Network&#8221; in Chrome).</li><li>In the PCB view select the component you want to export</li><li>In the right tab > Custom Properties > 3D Model click on the text field<ul><li>This will force EasyEDA to download the 3D model of this component.</li><li>In the inspect mode window two new lines appeared. </li></ul></li><li>Right-click on the last one and Choose &#8220;Open in new tab&#8221;. <ul><li>This will download the 3d model into your download folder</li></ul></li><li>Repeat this for every part you need in Fusion 360</li></ol>



<p>In the File Explorer/Finder</p>



<ol><li>Rename the file you just downloaded and add &#8220;.obj&#8221; as extension, e.g. &#8220;USB_C.obj&#8221;</li><li>Repeat this for every part</li></ol>



<p>In Fusion 360: </p>



<ol><li>Activate the component of the part you are going to import</li><li>Import the obj file: Insert > Insert Mesh<ul><li>Rotate the object in the correct direction</li><li>Place the object somewhere above its final location on the PCB</li></ul></li><li>If needed, repair the mesh: Mesh > Prepare > Repair&#8230;</li><li>Convert the Mesh: Modify > Convert Mesh&#8230;</li><li>Place the part: In the Solid workspace > Modify > Align<ul><li>Choose a feature on the part that you can also find on the PCB/ sketch</li><li>Use Flip/Angle to rotate the part until it fits</li><li>Sometimes you need several Align operations: e.g. first align x-axis and y-axis, then use another feature to align z-axis</li></ul></li><li>Repeat with all parts/ components</li></ol>



<p>Congratulations, you have successfully recreated the PCB and it&#8217;s most important components in Fusion 360. Now you can use this model to create your enclosure. But this is content for another post;-)</p>



<h2 class="wp-block-heading">Video</h2>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="EasyEDA to Fusion360" width="730" height="411" src="https://www.youtube.com/embed/zTzsuk3oeWc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2022/05/importing-pcbs-from-easyeda-into-fusion-360.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7559</post-id>	</item>
		<item>
		<title>How to use the LHT00SU1 Logic Analyzer on Mac OS X</title>
		<link>https://blog.squix.org/2021/09/how-to-use-the-lht00su1-logic-analyzer-on-mac-os-x.html</link>
					<comments>https://blog.squix.org/2021/09/how-to-use-the-lht00su1-logic-analyzer-on-mac-os-x.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Thu, 23 Sep 2021 12:17:14 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[IoT Products]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=6981</guid>

					<description><![CDATA[Logic Analyzers can be quite useful to test and analyze hardware. In this short video I explain how to use the cheap LHT00SU1 logic analyzer together with PulseView on Mac OS X to test a new ESP32 development board. Here is the code used to ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2021/09/how-to-use-the-lht00su1-logic-analyzer-on-mac-os-x.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Logic Analyzers can be quite useful to test and analyze hardware. In this short video I explain how to use the cheap LHT00SU1 logic analyzer together with PulseView on Mac OS X to test a new ESP32 development board.</p>



<span id="more-6981"></span>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="How to use the LHT00SU1 Logic Analyzer on Mac OS X" width="730" height="411" src="https://www.youtube.com/embed/PHADbXs1rJQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Here is the code used to create the signals</p>



<pre class="wp-block-code"><code>#include &lt;Arduino.h>

uint8_t pins &#91;] = {21, 19, 18, 5, 4, 34, 25, 26};

void setup() {
  Serial.begin(115200);
  for (uint8_t i = 0; i &lt; 7; i++) {
    pinMode(pins&#91;i], OUTPUT);
  }
}

void loop() {
  for (uint8_t pin = 0; pin &lt;= 7; pin++) {
    digitalWrite(pins&#91;pin], HIGH);
    delay(50);
    digitalWrite(pins&#91;pin], LOW);
    delay(50);
  }
  delay(500);
}</code></pre>



<p>And this is the recorded output:</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="297" data-attachment-id="6986" data-permalink="https://blog.squix.org/2021/09/how-to-use-the-lht00su1-logic-analyzer-on-mac-os-x.html/image-88" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?fit=3360%2C1364&amp;ssl=1" data-orig-size="3360,1364" 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="image" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?fit=300%2C122&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?fit=730%2C297&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=730%2C297&#038;ssl=1" alt="" class="wp-image-6986" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=1024%2C416&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=300%2C122&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=768%2C312&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=1536%2C624&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?resize=2048%2C831&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/09/image.png?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<p>There is one step missing. The area for this is marked. This behavior can be easily explained because GPIO35 (element 5 in the array) is a input-only pin. Therefore no state can be written to it by my program.</p>



<h2 class="wp-block-heading">Links</h2>



<p>Link to LHT00SU1 Logic Analyzer on Banggood (~35USD): <br><a href="https://www.banggood.com/custlink/DmmY0l4fpW ">https://www.banggood.com/custlink/DmmY0l4fpW </a></p>



<p>Link to SigRok/ PulseView Open Source Software: <br><a href="https://sigrok.org/wiki/Downloads">https://sigrok.org/wiki/Downloads</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2021/09/how-to-use-the-lht00su1-logic-analyzer-on-mac-os-x.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6981</post-id>	</item>
		<item>
		<title>CH9102 Serial-To-USB Driver for Mac OS X</title>
		<link>https://blog.squix.org/2021/08/ch9102-driver-issues-failed-to-write-to-target-ram.html</link>
					<comments>https://blog.squix.org/2021/08/ch9102-driver-issues-failed-to-write-to-target-ram.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 29 Aug 2021 07:15:27 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=6918</guid>

					<description><![CDATA[Recently more and more ESP32 hardware is appearing with the WCH CH9102 Serial-To-USB chip. I assume lower costs and higher availability are the reason for this. Lower costs compared to FTDI chips, to the Silicon Labs CP2102 or CP2104. But when I recently started working ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2021/08/ch9102-driver-issues-failed-to-write-to-target-ram.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Recently more and more ESP32 hardware is appearing with the WCH CH9102 Serial-To-USB chip. I assume lower costs and higher availability are the reason for this. Lower costs compared to FTDI chips, to the Silicon Labs CP2102 or CP2104. But when I recently started working for the first time with such a device I ran into big problems.</p>



<span id="more-6918"></span>



<p>For the latest version of the LilyGO TTGO T-Camera ESP32 the manufacturer made a couple of significant changes. The switched the ESP32-WROVER module with the ESP32 chip, flash and PSRAM are also separately soldered and the module got a &#8220;3D antenna&#8221;. But I had to deal with a bigger problem at first. LilyGO also replaced the CP2102 chip with the WCH CH9102 UART chip. My Mac OS X 11.5.2 Big Sur installation recognized the chip immediately as </p>



<pre class="wp-block-code"><code>crw-rw-rw-  1 root  wheel   22,  14 Aug 29 08:24 /dev/tty.usbmodemXXXXXXXXXX
crw-rw-rw-  1 root  wheel   22,  15 Aug 29 08:24 /dev/cu.usbmodemXXXXXXXXXX</code></pre>



<p>I changed the lines in my platformio.ini file and used the cu.usbmodemXXXXXXXXXX (actual numbers replaced with XXX). Monitoring seemed to work since I could see the output from the stock firmware. </p>



<p>But every time I tried to flash the chip I got the following output:</p>



<pre class="wp-block-code"><code>Connecting....
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 3c:71:bf:xx:xx:xx
Uploading stub...

A fatal error occurred: Failed to write to target RAM (result was 01070000)</code></pre>



<p>I first suspected that the esptool needed adaptation for the new chip. There were also a couple of issues on github in the esptool repository: <a href="https://github.com/espressif/esptool/issues/280">https://github.com/espressif/esptool/issues/280</a></p>



<h2 class="wp-block-heading">The Solution</h2>



<p>Or might the driver be the problem? The website of the CP2102 manufacturer also did not show a new driver for the chip. After more digging, I finally came across this github issue and genotix&#8217; post: <a href="https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800/issues/139#issuecomment-904390716">https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800/issues/139#issuecomment-904390716</a></p>



<p>Genotix links a zip file containing a driver aptly named CH34xVCPDriver_signed.pkg The CH34x driver seems also to work for the CH9102 chip. Now you have to be brave and install the driver by ignoring all Max OS X security warnings and by clicking through installation dialogs in Chinese.</p>



<p>After the installation two new serial devices showed up:</p>



<pre class="wp-block-code"><code>crw-rw-rw-  1 root  wheel   22,  12 Aug 29 08:24 /dev/tty.wchusbseriaXXXX
crw-rw-rw-  1 root  wheel   22,  14 Aug 29 08:24 /dev/tty.usbmodemXXXX
crw-rw-rw-  1 root  wheel   22,  15 Aug 29 08:24 /dev/cu.usbmodemXXXX
crw-rw-rw-  1 root  wheel   22,  13 Aug 29 08:34 /dev/cu.wchusbserialXXXX&lt;--correct</code></pre>



<p>By using the cu.wchusberialXXXX I finally could program the T-Camera module.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2021/08/ch9102-driver-issues-failed-to-write-to-target-ram.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6918</post-id>	</item>
		<item>
		<title>Alexa-Home, Node-Red and Docker</title>
		<link>https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html</link>
					<comments>https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 20:29:58 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[IoT Products]]></category>
		<category><![CDATA[alexa]]></category>
		<category><![CDATA[home-automation]]></category>
		<category><![CDATA[node-red]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=6841</guid>

					<description><![CDATA[How do you add new virtual devices/commands in Node-Red so that Alexa can control them? There are great Node-Red extensions but things get more complicated if Node-Red is running in a docker container. In this blog post I share my take-aways from setting this up. ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>How do you add new virtual devices/commands in Node-Red so that Alexa can control them? There are great Node-Red extensions but things get more complicated if Node-Red is running in a docker container. In this blog post I share my take-aways from setting this up.</p>



<span id="more-6841"></span>



<p>Voice assistants and smart home applications go together really well. For several years now we have an Echo Dot with Alexa running at home and I have connected more and more devices to it. Another important factor in my smart home setup is a Node-Red instance running in a docker container on a RaspberryPi 4. </p>



<h2 class="wp-block-heading">Why Running Node-Red in Docker?</h2>



<p>I probably could save myself some trouble if I would just install Node-Red as regular service on the base system on my Raspberry Pi. Especially where Node-Red needs direct access to RPi hardware resources. It took me quite some time to figure out how I can use the RPi Bluetooth device from within the docker container. In a nutshell: you have to use <em>network_mode: host</em> to share the BLE hardware between host and container.</p>



<p>But I believe that the benefits of running such applications like Node-Red in a docker container outweigh the trouble. Updating or trying out different configurations is super easy. And all the resources are cleanly separated from other containers running on the same machine.</p>



<h2 class="wp-block-heading">The Alexa-Home Node</h2>



<p>I have a couple of Tasmota powered Shelly devices, allowing me to control lights either with a regular light switch over WiFi. You can set up Tasmota devices to be discoverable by Alexa. Then with a simple &#8220;Alexa, turn on the corridor&#8221; you can control the lights in your corridor. But what if you want to make a new command accessible to Alexa that is not represented by a physical device?</p>



<p>This is where the Alexa-Home node comes in. The official name is <a href="https://flows.nodered.org/node/node-red-contrib-alexa-home">node-red-contrib-alexa-home</a> and this extension comes with two nodes: a controller and a device node. The controller lets you do some basic settings like the network port used for discovery while the device node lets you setup a virtual device.</p>



<p>So for instance I created a node called &#8220;Everything&#8221; and now I can turn off all lights by calling &#8220;Alexa, turn off Everything&#8221;. Nice, eh? But sadly this didn&#8217;t work right away. Once more I suspected the docker setup and I was correct.</p>



<h2 class="wp-block-heading">The Solution</h2>



<p>No matter what I tried, the virtual devices from Node-Red did not show up in Alexa&#8217;s device list. So I assumed some kind of networking issue. According to this <a href="https://github.com/vintlabs/fauxmoESP">github project</a> the device needs to listen on a certain port, for generation 3 devices this has to be port 80. Alexa must be able to download the file /alexa-home/setup.xml from the RPi. This file contains the device description.</p>



<p>That means we have to make sure that a request to the RPi is forwarded to our Node-Red container. Now the next steps depends on your setup. I&#8217;m running Node-Red together with MQTT from a docker-compose command. And as mentioned earlier this setup is using &#8220;network_mode: host&#8221;:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Setting <strong>network_mode</strong> to <strong>host</strong> allows the container to share the same network namespace as the <strong>host</strong> OS. When this is set, any ports exposed on the container will be exposed locally on the device. This is necessary for features such as bluetooth.</p><cite>Source: <a href="https://www.balena.io/docs/learn/develop/multicontainer/" target="_blank" rel="noreferrer noopener">https://www.balena.io/docs/learn/develop/multicontainer/</a></cite></blockquote>



<p>This means that I cannot do port mapping in the docker-compose file because host-mode together with port-mapping is not allowed. That means that the port which uses Alexa-Home to publish it&#8217;s setup.xml must be exposed from the Dockerfile. </p>



<p>I set my Alexa-Home controller node to port 80:</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="480" height="212" data-attachment-id="6849" data-permalink="https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html/image-7-4" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?fit=480%2C212&amp;ssl=1" data-orig-size="480,212" 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="image-7" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?fit=300%2C133&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?fit=480%2C212&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?resize=480%2C212&#038;ssl=1" alt="" class="wp-image-6849" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?w=480&amp;ssl=1 480w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-7.png?resize=300%2C133&amp;ssl=1 300w" sizes="(max-width: 480px) 100vw, 480px" /><figcaption>Alexa Home Controller Node, set to port 80</figcaption></figure>



<p>And in the Dockerfile I added</p>



<pre class="wp-block-code"><code>EXPOSE 80</code></pre>



<p>And that&#8217;s it! Rebuild the docker container and restart both containers with docker-compose. Now add an Alexa-Home node in your Node-Red web interface and set the device name in the node configuration. This is the name you will use to give commands for that virtual device. Then tell Alexa to &#8220;Discover devices&#8221;. After about 20 seconds she will tell you that she discovered your new device.</p>



<p>Now you can create nodes just like this one:</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="443" data-attachment-id="6852" data-permalink="https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html/image-8-4" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?fit=1802%2C1094&amp;ssl=1" data-orig-size="1802,1094" 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="image-8" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?fit=300%2C182&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?fit=730%2C443&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?resize=730%2C443&#038;ssl=1" alt="" class="wp-image-6852" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?resize=1024%2C622&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?resize=300%2C182&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?resize=768%2C466&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?resize=1536%2C933&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?w=1802&amp;ssl=1 1802w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-8.png?w=1460&amp;ssl=1 1460w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption>The &#8220;Everything&#8221; node allows you to tell &#8220;Alexa, turn off everything&#8221;</figcaption></figure>



<h2 class="wp-block-heading">Summary</h2>



<p>Alexa and Node-Red can be a powerful team. You can create powerful commands in Node-Red which Alexa can understand. While you are limited to simple commands like &#8220;Turn On XXX&#8221; or &#8220;Dim XXX to 50%&#8221; you can get a long way with this. </p>



<p>Running Node-Red in a container is a powerful thing and has many benefits. But it also complicates things every once in a while. And connecting Alexa and Node-Red over the device discovery is such a thing. But if you are in this situation you&#8217;ll hopefully find this blog post and have it up and running in no time!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2021/07/alexa-home-node-red-and-docker.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6841</post-id>	</item>
		<item>
		<title>TTGO-LoRa32 V1.0 with TTN V3 and OTAA</title>
		<link>https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html</link>
					<comments>https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 11 Jul 2021 10:20:49 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[LoRaWAN]]></category>
		<category><![CDATA[lorawan]]></category>
		<category><![CDATA[ttgo-lora32]]></category>
		<category><![CDATA[ttn]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=6820</guid>

					<description><![CDATA[If you are lacking good documentation it can be very hard to get started with a new device. I just couldn&#8217;t find a comprehensive example project for how to connect TTGO-LoRA32 V1.0 with the V3 version of the Things Network. So I hope this post ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>If you are lacking good documentation it can be very hard to get started with a new device. I just couldn&#8217;t find a comprehensive example project for how to connect <a href="https://www.banggood.com/custlink/vmDdBjpESq" target="_blank" rel="noreferrer noopener">TTGO-LoRA32 V1.0</a> with the V3 version of the Things Network. So I hope this post and the related github project will save you some time to achieve the same.</p>



<span id="more-6820"></span>



<p>I have connected devices to TheThingsNetwork before but with this device I had several challenges: no useful example project, TTN just switched to the new V3 version and bad documentation about the hardware. After the first failure I assumed that the TTGO-LoRa32 was to weak to send data to the next gateway. Since my own TTN indoor gateway was still registered for V2 I started to migrate it first. That was another bad experience. The gateway did not connect to TTN V3 and I reclaimed it several times without success. Only after waiting one night it finally worked and I had a gateway connected to TTN v3.</p>



<p>So now that I knew that I had a gateway close enough to receive the TTGO-LoRa32&#8242; data package I could concentrate on fixing the code. </p>



<h2 class="wp-block-heading">Prepare the Code</h2>



<p>In this project, I&#8217;m using platformio in Visual Studio Code for editing and uploading the firmware. As a first step get the code from my github repository <a href="https://github.com/squix78/TTGO-LoRa32-V1.0-TTN-OTAA" target="_blank" rel="noreferrer noopener">https://github.com/squix78/TTGO-LoRa32-V1.0-TTN-OTAA</a> either by cloning it with git or by downloading the code as zip file and extracting it.</p>



<p>This project should work as it is except for a few changes we have to do in the code. The most obscure change is buried deep in the library folder in a file called lmic_project_config.h. The full path to the file is <br>.pio/libdeps/ttgo-lora32-v1/MCCI LoRaWAN LMIC library/project_config/lmic_project_config.h <br>If you can&#8217;t find this file you probably have to compile the project first, since only then all the dependencies will be downloaded. <strong>Please note</strong>: at the moment the compilation will fail, since we didn&#8217;t set the credentials in the code yet. This is expected and normal.</p>



<p>Once you find that file make sure that the correct region settings are there. For Europe 868MHz band it should like this:</p>



<pre class="wp-block-code"><code>// project-specific definitions
#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_au915 1
//#define CFG_as923 1
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP	/* for as923-JP */
//#define CFG_kr920 1
//#define CFG_in866 1
#define CFG_sx1276_radio 1
//#define LMIC_USE_INTERRUPTS</code></pre>



<p>By default the code uses CFG_us915. If you are living in another region it is very important you do that change!</p>



<h2 class="wp-block-heading">Getting the app and device credentials</h2>



<p>This was the first device I set up for TTN V3 and there are a couple of traps I want to point out to you. A quick explanation for the TTN novice: Your device needs three credentials to connect to TTN: AppEUI, DevEUI and AppKey. In TTNs V2 interface you could either provide the DevEUI or it would create them for you. In TTN V3 this auto EUI generation is currently missing. For many devices the vendor will provide these identifiers and you just have to enter them in the TTN console. But with devices such as the TTGO-LoRa32 you don&#8217;t get it. I show you here how to create it by yourself. This is not ideal but works&#8230; Just don&#8217;t blame me in case of problems&#8230;</p>



<ol><li>Head over to <a href="https://console.cloud.thethings.network/">https://console.cloud.thethings.network/</a> and pick your V3 region. Don&#8217;t use the V2!</li><li>Create an account if you don&#8217;t have one yet.</li><li>Go to applications and create a new application. As application id you can pick anything as long as<ol><li>it doesn&#8217;t exist yet</li><li>only contains letters, dashes and numbers</li></ol></li><li>On the next screen click on &#8220;Add end device&#8221; (see image below)</li></ol>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="365" data-attachment-id="6822" data-permalink="https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html/image-1-5" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?fit=2304%2C1152&amp;ssl=1" data-orig-size="2304,1152" 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="image-1" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?fit=300%2C150&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?fit=730%2C365&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=730%2C365&#038;ssl=1" alt="" class="wp-image-6822" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=1024%2C512&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=300%2C150&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=768%2C384&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=1536%2C768&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=2048%2C1024&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?resize=800%2C400&amp;ssl=1 800w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-1.png?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<ol start="5"><li>Now go the &#8220;Manually&#8221; tab and choose &#8220;Over the air activation (OTAA)&#8221; and MAC V1.0.2</li><li>On the next screen choose a name for your device consisting only of letters, numbers and dashes. To fill in the JoinEUI and DevEUI you can use this generator: <a href="https://descartes.co.uk/CreateEUIKey.html">https://descartes.co.uk/CreateEUIKey.html</a></li><li>On the next screen choose your region and the following settings:</li></ol>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="331" data-attachment-id="6827" data-permalink="https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html/image-6-4" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?fit=1028%2C466&amp;ssl=1" data-orig-size="1028,466" 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="image-6" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?fit=300%2C136&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?fit=730%2C331&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?resize=730%2C331&#038;ssl=1" alt="" class="wp-image-6827" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?resize=1024%2C464&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?resize=300%2C136&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?resize=768%2C348&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-6.png?w=1028&amp;ssl=1 1028w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<ol start="8"><li>On the Join settings screen you can click on the &#8220;recycle&#8221; symbol to generate an AppKey for you.</li><li>Now we have to copy the credentials over to our code. We have to provide JoinEUI and DevEUI in <em>least significat byte order</em> or short LSB. The TTN console helps you with that. First click on the &#8220;&lt;>&#8221; icon and then on the arrows beside &#8220;msb&#8221;. To put the data into the clipboard use the most right icon. BTW: The name of JoinEUI is  AppEUI in the code. Please add the AppKey msb order, no need to invert the order there.</li></ol>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="93" data-attachment-id="6825" data-permalink="https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html/image-4-4" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?fit=756%2C96&amp;ssl=1" data-orig-size="756,96" 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="image-4" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?fit=300%2C38&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?fit=730%2C93&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?resize=730%2C93&#038;ssl=1" alt="" class="wp-image-6825" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?w=756&amp;ssl=1 756w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-4.png?resize=300%2C38&amp;ssl=1 300w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<ol start="10"><li> After copying JoinEUI (AppEUI), DevEUI and AppKey to the main.cpp file in the code you got from github you can compile and upload the firmware to the TTGO-LoRa32</li><li>Now check if it worked by looking at the device live data on the TTN console:</li></ol>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="200" data-attachment-id="6826" data-permalink="https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html/image-5-4" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?fit=1086%2C298&amp;ssl=1" data-orig-size="1086,298" 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="image-5" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?fit=300%2C82&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?fit=730%2C200&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?resize=730%2C200&#038;ssl=1" alt="" class="wp-image-6826" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?resize=1024%2C281&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?resize=300%2C82&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?resize=768%2C211&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2021/07/image-5.png?w=1086&amp;ssl=1 1086w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<h2 class="wp-block-heading">Summary &amp; Outlook</h2>



<p>This is it! If everything worked you your TTGO-LoRa32 is now sending messages to TTN V3, joining it with dynamic session keys! If I find the time I&#8217;d like to analyze the power consumption of the device for sending a message as well as in the sleep phase.</p>



<p>My code is not using the OLED display. There is a repository provided by LillyGo that shows you how to do that: <a href="https://github.com/LilyGO/TTGO-LORA32/tree/LilyGO-868-V1.0">https://github.com/LilyGO/TTGO-LORA32/tree/LilyGO-868-V1.0</a></p>



<p>If you like to support my blog please consider buying the device by using this affiliate link: <a href="https://www.banggood.com/custlink/vmDdBjpESq">https://www.banggood.com/custlink/vmDdBjpESq</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2021/07/ttgo-lora32-v1-0-with-ttn-v3-and-otaa.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6820</post-id>	</item>
		<item>
		<title>ESP32: Adding a Spectrum Analyzer to Bluetooth Audio</title>
		<link>https://blog.squix.org/2020/12/esp32-adding-a-spectrum-analyzer-to-bluetooth-audio.html</link>
					<comments>https://blog.squix.org/2020/12/esp32-adding-a-spectrum-analyzer-to-bluetooth-audio.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 06 Dec 2020 18:30:22 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[a2dp]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[fft]]></category>
		<category><![CDATA[Icon64]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=6297</guid>

					<description><![CDATA[The ESP32 platform offers a wide range of functionality almost out of the box. For instance you can turn a ESP32 with little effort into a Bluetooth Audio speaker. In this article I describing how I tapped into the digital data stream coming from a ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2020/12/esp32-adding-a-spectrum-analyzer-to-bluetooth-audio.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<div style="height:26px" aria-hidden="true" class="wp-block-spacer"></div>



<p>The ESP32 platform offers a wide range of functionality almost out of the box. For instance you can turn a ESP32 with little effort into a Bluetooth Audio speaker. In this article I describing how I tapped into the digital data stream coming from a smartphone to visualize the music with a 8 band VU meter. The code is also a nice example how to you can use the full power of the two Tensilica Xtensa cores in the ESP32. </p>



<span id="more-6297"></span>



<p>The ESP32 is an amazing piece of hardware. It is very affordable, easy to use and comes with great libraries. One of those is the <a href="https://github.com/pschatzmann/ESP32-A2DP">esp32-a2dp library </a>by fellow Swiss Phil Schatzmann. With this library you can turn any ESP32 into a bluetooth sink or source. Using it as a sink effectively turns it into a Bluetooth speaker, using it as a source you can send music to a Bluetooth speaker. </p>



<p>Depending on your hardware, this is the minimal code to use the ESP32 as a bluetooth speaker, announcing its services as &#8220;MyMusic&#8221;:</p>



<pre class="wp-block-preformatted">#include "BluetoothA2DPSink.h"

BluetoothA2DPSink a2dp_sink;

void setup() {
    a2dp_sink.start("MyMusic");
}

void loop() {
}</pre>



<p>Wouldn&#8217;t it be nice to visualize the music you receive over Bluetooth? I always loved the spectrum analyzers which split the available frequency spectrum in several bands and displayed the intensity in those bands. In August 2019 <a href="https://blog.squix.org/2019/08/esp32-esp-eye-browser-based-spectrum-analyzer.html">I wrote a post</a> about how to do that in the browser with sound recorded on the ESP32. </p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Eavesdropping</h2>



<p>Is it possible to get access the digital data stream received over Bluetooth? The A2DP library has a hook to register on events like &#8220;stream started&#8221; or &#8220;stream paused&#8221;. But there is no callback to tap into the audio data. </p>



<p>The library is actually a conveniency wrapper around the A2DP functionality in Espressif&#8217;s Audio Development Framework (ADF). It uses the <em>esp_a2d_sink_register_data_callback(..)</em> method to get the Bluetooth data stream. </p>



<p>By registering my own callback I could &#8220;slip in&#8221; between ADF and the A2DP library! Now my method with the signature </p>



<pre class="wp-block-preformatted"><em>void audio_data_callback(const uint8_t *data, uint32_t len)</em></pre>



<p>will be called from time to time with a pointer to the current music data package.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Not Enough Horsepower!</h2>



<p>A common method to visualize music is to take slices  and convert those into the frequency domain. Blocks with a length of a couple of milliseconds will then show which frequencies are currently active. The process to convert data from the time domain into the frequency domain requires quite a lot of calculations. One algorithm which can do this relatively efficiently is the Fast Fourier Transformation or short FFT.</p>



<p>So just like in my previous project I wrote code which would collect music data until a buffer was full. Then the code would run the FFT algorithm to get the content of the buffer as an array of discrete frequencies. This worked, but the music started to sound awful! Apparently the FFT algorithm took too much time to process the data and the output would stutter.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">If One Horse Can&#8217;t Do It&#8230;</h2>



<p>&#8230;two can! The ESP32 has two Tensilica Xtensa cores. Until now I never really had a use case where I needed to use the other core. I was also under the impression that you should leave that core alone since all the WiFi processing and other system tasks run on it. But why not give it a shot and do the Fast Fourier processing on the other core?</p>



<p>The revised code fills the buffer as before on core 0. But once the buffer is full it stops collecting data and notifies a task running on core 1 that it can start running the FFT processing on the buffer. Once the FFT processing is completed the code clusters the frequency information into 8 bands.</p>



<p>At this time the task on core 1 will tell the other task on core 0 that it can start again to fill the buffer. Core 1 doesn&#8217;t need the data in the buffer anymore. Now core 1 only needs to visualize the intensity of the 8 bands. </p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Multicore Programming</h2>



<p>The data collecting task and the FFT processing task have to communicate with each other. This has to happen thread-safe and if possible without blocking each other unnecessarily. I used a RTOS queue where the data collecting task places a message when the buffer is ready for processing. The FFT task on core 1 starts once it detects a message in the queue. When the buffer is ready for more data it removes the message from the queue. </p>



<p>I have to admit that I&#8217;m not sure if my solution is the correct or best way to solve this problem in RTOS. I tried with semaphores but always ended up that all tasks were blocked. Please let me know in the comments below how you would have implemented this. </p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Hardware</h2>



<p>The code I wrote should theoretically run with all DACs supported by the esp32-a2dp library with minor changes, even the internal ESP32 DAC. I wrote the code as a stock firmware for the <a href="https://thingpulse.com/product/icon64/">ThingPulse Icon64</a> device. You can see it in action in the video below.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Icon64 Bluetooth Speaker and Spectrum analyzer" width="730" height="411" src="https://www.youtube.com/embed/1UpbtE98OBA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Get the Code</h2>



<p>I published the code for this project on <a href="https://github.com/thingpulse/esp32-icon64-a2dp">Github</a>. I hope you can profit from it! As I mentioned before, if you have suggestions how to improve the multi-tasking code or other aspects please let me know either in the comments below or on github!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2020/12/esp32-adding-a-spectrum-analyzer-to-bluetooth-audio.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6297</post-id>	</item>
		<item>
		<title>Creating Fritzing Parts from Eagle CAD .brd files</title>
		<link>https://blog.squix.org/2020/05/creating-fritzing-parts-from-eagle-cad-brd-files.html</link>
					<comments>https://blog.squix.org/2020/05/creating-fritzing-parts-from-eagle-cad-brd-files.html#respond</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 10 May 2020 07:06:43 +0000</pubDate>
				<category><![CDATA[Common]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=5010</guid>

					<description><![CDATA[Fritzing is a wonderful tool to document your electronic projects, if &#8211; and only if &#8211; the parts you use are available in the parts library. If you are designing parts yourself you can help the community by creating Fritzing parts for your designs. When ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2020/05/creating-fritzing-parts-from-eagle-cad-brd-files.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Fritzing is a wonderful tool to document your electronic projects, if &#8211; and only if &#8211; the parts you use are available in the parts library. If you are designing parts yourself you can help the community by creating Fritzing parts for your designs.</p>



<span id="more-5010"></span>



<p>When we designed the <a href="https://blog.squix.org/2020/01/designing-the-esp32-dev-board-i-always-wanted.html">ThingPulse ePulse</a> board I knew I wanted to have a Fritzing part to document new projects with it. I had already designed parts for Fritzing before, but it was very consuming: you start with a similar component available in Fritzing and then modify it until it looks and behave the way you want it.</p>



<p>But there is an easier way. If you want to create a Fritzing Part for a component you design in Eagle CAD you can use a tool to do most of the conversion for you. It took me hours to compile that tool and work around some issues. The tools was original written by the Fritzing team, then improved by Adafruit. But it just wouldn&#8217;t compile on my Mac. </p>



<p>So I fixed some of the issues, simplified the setup and documented everything in the README file of the <a href="https://blog.squix.org/go/gh-eagle2fritzing">github repository</a>.</p>



<p>I hope this saves you a lot of time and creates lots of new parts!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2020/05/creating-fritzing-parts-from-eagle-cad-brd-files.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5010</post-id>	</item>
		<item>
		<title>Extending The Maker Machine</title>
		<link>https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html</link>
					<comments>https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html#comments</comments>
		
		<dc:creator><![CDATA[Daniel Eichhorn]]></dc:creator>
		<pubDate>Sun, 16 Feb 2020 09:03:35 +0000</pubDate>
				<category><![CDATA[CNC]]></category>
		<category><![CDATA[Common]]></category>
		<category><![CDATA[Featured]]></category>
		<guid isPermaLink="false">https://blog.squix.org/?p=4742</guid>

					<description><![CDATA[I love machines that help me to build my projects. I also love to hack devices to do more than they were built for. So you can imagine what a fun project it was for me to hack my desktop 3018 CNC mill into a ... <p><a class="read-more btn btn-secondary" href="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>I love machines that help me to build my projects. I also love to hack devices to do more than they were built for. So you can imagine what a fun project it was for me to hack my desktop 3018 CNC mill into a vinyl cutter! </p>



<span id="more-4742"></span>



<p>A while back I got a cheap Chinese 3018 CNC desktop mill (link to <a href="https://www.banggood.com/de/3018-3-Axis-Mini-DIY-CNC-Router-Standard-Spindle-Motor-Wood-Engraving-Machine-Milling-Engraver-p-1274569.html?p=0P21061109440201501M">banggood</a>). It can mill wood, acrylic and many other softer materials. Some people even used it to engrave aluminum.</p>



<p>You can buy these devices in many different versions and sizes. They are usually built with 2020 and 2040 extrusion elements and 3D printed parts. 3 stepper motors control the position of the tool. One for the table in the Y-direction. And two stepper motors move the tool in X and Z direction. Mine is called 3018 in reference to the size of the build table: 30x18cm.</p>



<p>A spindle motor rotates the tool bit to engrave or cut away from the base material. With many of these CNC machines, you can replace the spindle motor with a (weak) laser module for engraving or cutting. I extended mine with a 2.5W laser (<a href="https://blog.squix.org/go/2-5w-laser-module">buy here</a>) and it is strong enough to cut cardboard or even thin balsa wood. Turning the CNC machine into a laser cutter is quite easy. The controller board of my machine has a plug for the laser module. And a jumper to switch between laser and spindle control.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">More Functions, Please!</h3>



<p>But milling and laser cutting are not enough. I wanted to turn the desktop CNC mill into a vinyl cutter. You can use vinyl cutters to create stickers for your car. Or create your own T-Shirt patterns with heat transfer vinyl. </p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" data-attachment-id="4796" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_4855-1" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?fit=1620%2C2560&amp;ssl=1" data-orig-size="1620,2560" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581495479&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.016666666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_4855-1" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?fit=190%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?fit=648%2C1024&amp;ssl=1" src="https://i1.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?fit=648%2C1024&amp;ssl=1" alt="" class="wp-image-4796" width="275" height="434" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?w=1620&amp;ssl=1 1620w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?resize=190%2C300&amp;ssl=1 190w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?resize=648%2C1024&amp;ssl=1 648w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?resize=768%2C1213&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?resize=972%2C1536&amp;ssl=1 972w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?resize=1296%2C2048&amp;ssl=1 1296w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_4855-1-scaled.jpg?w=1460&amp;ssl=1 1460w" sizes="(max-width: 275px) 100vw, 275px" /><figcaption>I&#8217;m now branding basically everything with vinyl stickers;-)</figcaption></figure></div>



<p>It turns out with the right tools it&#8217;s really easy. All you need is a drag knife and a 3d printed converter. </p>



<p>You can make the drag knife from a razor blade.  Or you can buy a replacement part intended for a professional vinyl cutter. I believe it&#8217;s worth to spend $10 on this part rather than making it yourself. This will have a big impact on the quality of your cuts. You can buy a drag knife that fits the 3d printed part here from <a href="https://www.banggood.com/15pcs-304560-Degree-Vinyl-Cutter-Blade-for-Roland-Cutting-Plotter-with-Holder-p-1061088.html?p=0P21061109440201501M">Banggood</a>.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" data-attachment-id="4797" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-2-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?fit=1034%2C916&amp;ssl=1" data-orig-size="1034,916" 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="image-2" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?fit=300%2C266&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?fit=730%2C647&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?fit=730%2C647&amp;ssl=1" alt="" class="wp-image-4797" width="287" height="254" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?w=1034&amp;ssl=1 1034w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?resize=300%2C266&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?resize=1024%2C907&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-2.png?resize=768%2C680&amp;ssl=1 768w" sizes="(max-width: 287px) 100vw, 287px" /><figcaption>Drag knife holder with a set of knives from <a href="https://www.banggood.com/15pcs-304560-Degree-Vinyl-Cutter-Blade-for-Roland-Cutting-Plotter-with-Holder-p-1061088.html?p=0P21061109440201501M">Banggood</a> for about USD $10</figcaption></figure></div>



<p>Thingiverse user [barts] has designed a two-part adapter to fit into the spindle motor holder. You can download it <a href="https://blog.squix.org/go/tv-3018-dragknife-holder">here</a>. </p>



<p></p>



<p>[bart]&#8217;s 3D design is brilliant: it uses two thin connections as a spring mechanism. This way the cutter can compensate for uneven build surface and applies pressure more or less evenly. Other designs I found on Thingiverse involved proper springs. To find the right spring for the design can be complicated. The 3D printed spring mechanism, however, works really good.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1348" height="1018" data-attachment-id="4746" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-83" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?fit=1348%2C1018&amp;ssl=1" data-orig-size="1348,1018" 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="image" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?fit=300%2C227&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?fit=730%2C551&amp;ssl=1" src="https://i2.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?fit=730%2C551&amp;ssl=1" alt="" class="wp-image-4746" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?w=1348&amp;ssl=1 1348w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?resize=300%2C227&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?resize=1024%2C773&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?resize=768%2C580&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image.png?resize=100%2C75&amp;ssl=1 100w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption>3D printed drag knife holder with a spring mechanism</figcaption></figure>



<p>As I said, the 3D printed model comes with two different parts. The first is the drag knife holder. The second one is the converter which neatly fits into the spindle motor holder. You connect the two parts with M2 screws. This can be a bit complicated since the nuts are inside the spring mechanism and hard to access. One note: put the two 3d printed parts together before you put the drag knife in or it will be even harder.</p>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/blog.squix.org\/2020\/02\/extending-the-multi-maker-machine.html"}'  class="wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="2560" height="1920" data-attachment-id="4761" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_7707" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581171152&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;64&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_7707" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?fit=730%2C548&amp;ssl=1" alt="" data-id="4761" data-full-url="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-link="https://blog.squix.org/?attachment_id=4761" class="wp-image-4761" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?w=2560&amp;ssl=1 2560w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_7707-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="2560" height="1920" data-attachment-id="4764" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_2155" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581171242&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_2155" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?fit=730%2C548&amp;ssl=1" alt="" data-id="4764" data-full-url="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-link="https://blog.squix.org/?attachment_id=4764" class="wp-image-4764" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?w=2560&amp;ssl=1 2560w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2155-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /></figure></li></ul></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Preparing the GCODE</h2>



<p>We have successfully converted the CNC mill into a vinyl cutter.  But just having the hardware doesn&#8217;t cut us any good looking stickers. We need to convert a vector object into a language the printer understands. My CNC mill has a board with a GRBL firmware on it. This firmware parses instructions the computer sends and converts it into the movement of the stepper motors. The commands are called G-Code and are also used for 3D printers and other similar machines.</p>



<p>So how to we turn a logo into a vinyl sticker? Ideally, your design is already available in a vector format like SVG since this is much easier to be converted into machine instructions.</p>



<p>I use the free available open-source software <a href="https://blog.squix.org/go/software-inkscape">Inkscape</a> to convert SVG to G-Code. Inkscape is available for Windows, Linux, and Mac OS X. The Inkscape extension called gcodetools lets you convert vector graphics to gcode. And this extension is already included with the default Inkscape installation.</p>



<p>Inkscape is certainly not the most intuitive vector drawing program. But if you don&#8217;t like to draw in Inkscape you can prepare your design in another program. Then you import the design as SVG into Inkscape only to convert it to GCODE</p>



<p>Follow these steps to export the design in G-Code format:</p>



<ul><li>Convert the object into a path by selecting the design, then Path &gt; Object to Path&#8230;</li><li>Start the gcodetools extension: <br>Extensions &gt; Gcodetools &gt; Path to Gcode&#8230;</li></ul>



<p>The default settings work for me except for the output path. Make sure that you find the exported files. Ticking the &#8220;Add numeric suffix to filename&#8221; adds a number to the end of the filename. This number will increase with every export.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1142" height="1198" data-attachment-id="4779" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-1-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?fit=1142%2C1198&amp;ssl=1" data-orig-size="1142,1198" 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="image-1" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?fit=286%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?fit=730%2C766&amp;ssl=1" src="https://i1.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?fit=730%2C766&amp;ssl=1" alt="" class="wp-image-4779" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?w=1142&amp;ssl=1 1142w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?resize=286%2C300&amp;ssl=1 286w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?resize=976%2C1024&amp;ssl=1 976w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-1.png?resize=768%2C806&amp;ssl=1 768w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption>gcodeplugin dialog for exporting to gcode. Make sure the path works for you</figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Preparing the CNC mill</h2>



<p>Assuming you have already connected the two 3D printed parts you now have to add the drag knife holder. Adjusting the knife inside the holder is easier before you put it into the holder. The tip of the knife should be visible only a little bit. You can do this with the lead screws on the back of the holder. Once you are happy with the result you can use the second screw to lock the first one in place.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/blog.squix.org\/2020\/02\/extending-the-multi-maker-machine.html"}'  class="wp-block-gallery columns-3 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="730" data-attachment-id="4766" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_8765" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?fit=2560%2C2560&amp;ssl=1" data-orig-size="2560,2560" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581171213&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;64&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="IMG_8765" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?fit=730%2C730&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765.jpg?resize=730%2C730&#038;ssl=1" alt="" data-id="4766" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4766" class="wp-image-4766" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=1536%2C1536&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=2048%2C2048&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8765-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">The tip of the knife is barely visible</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4754" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_1369" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581169812&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_1369" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4754" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4754" class="wp-image-4754" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1369-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">I use card board as flat surface below the vinyl</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4753" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_3251" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581169806&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;125&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_3251" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4753" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4753" class="wp-image-4753" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3251-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">The complete 3018 mill with the drag knife</figcaption></figure></li></ul></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p>I taped a piece of cardboard to the aluminum work table. I think any other soft surface will do as well. Then you cut out a piece of vinyl and tape it to the cardboard with painter&#8217;s tape.</p>



<p>I use CNCjs and bCNC to control the mill. There is nothing special about controlling the mill with a drag knife. Make sure that the knife is zeroed in x and y. Then use a bit of paper to zero the z-axis. Move the paper while you gradually lower the knife towards the bed. When you feel that the knife starts cutting the paper you are all set. The knife holder&#8217;s spring mechanism compensates should the knife be too low.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/blog.squix.org\/2020\/02\/extending-the-multi-maker-machine.html"}'  class="wp-block-gallery columns-2 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4756" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_3215" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581170107&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.02&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_3215" data-image-description="" data-image-caption="&lt;p&gt;Zero z-axis with a piece of paper&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4756" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4756" class="wp-image-4756" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3215-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Zero z-axis with a piece of paper</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4755" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_0854" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581170051&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;50&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_0854" data-image-description="" data-image-caption="&lt;p&gt;I use CNC.js or bCNC to control the mill&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4755" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4755" class="wp-image-4755" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0854-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">I use CNC.js or bCNC to control the mill</figcaption></figure></li></ul></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Post-processing the vinyl sticker</h2>



<p>If everything went well you now have a piece of the vinyl sticker where the vinyl is cut but the carrier paper is intact. In order to transfer the sticker to your target surface, we have to do a bit of preparation.</p>



<p>Use an Exacto knife or your fingers to peel off any vinyl you don&#8217;t need. Sometimes part of the sticker that you still need might lift off. Carefully cut connections to the waste vinyl and press it back down. This is the phase that requires the most concentration. Make sure that you don&#8217;t forget to take off tiny parts. It will be much harder to remove them later.</p>



<p>Now glue painter&#8217;s tape on top of your sticker. The tape will serve to transfer all the single parts of the sticker to the target surface and keep everything in place. We use painter&#8217;s tape because we can easily remove it later on.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/blog.squix.org\/2020\/02\/extending-the-multi-maker-machine.html"}'  class="wp-block-gallery columns-3 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4758" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_1516" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581170756&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_1516" data-image-description="" data-image-caption="&lt;p&gt;Peel off excess vinyl&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4758" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4758" class="wp-image-4758" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1516-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Peel off excess vinyl</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="730" data-attachment-id="4770" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_8757" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?fit=2560%2C2560&amp;ssl=1" data-orig-size="2560,2560" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581170817&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="IMG_8757" data-image-description="" data-image-caption="&lt;p&gt;Cut off excess vinyl to avoid unwanted sticking&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?fit=730%2C730&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757.jpg?resize=730%2C730&#038;ssl=1" alt="" data-id="4770" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4770" class="wp-image-4770" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=1536%2C1536&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=2048%2C2048&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8757-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Cut off excess vinyl to avoid unwanted sticking</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="730" data-attachment-id="4767" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_8760" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?fit=2560%2C2560&amp;ssl=1" data-orig-size="2560,2560" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581170924&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="IMG_8760" data-image-description="" data-image-caption="&lt;p&gt;Use a knife to lift off tiny parts&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?fit=730%2C730&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760.jpg?resize=730%2C730&#038;ssl=1" alt="" data-id="4767" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4767" class="wp-image-4767" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=1536%2C1536&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=2048%2C2048&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?resize=120%2C120&amp;ssl=1 120w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_8760-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Use a knife to lift off tiny parts</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4760" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_1285" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1581171030&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.01&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_1285" data-image-description="" data-image-caption="&lt;p&gt;Use painter&#8217;s tape once all excess vinyl is removed&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4760" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4760" class="wp-image-4760" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_1285-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Use painter&#8217;s tape once all excess vinyl is removed</figcaption></figure></li></ul></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Placing the vinyl</h2>



<p>Once you are ready to place the sticker on the target surface remove the white carrier paper. The vinyl now only sticks to the painter&#8217;s tape with the sticking side open.</p>



<p>Carefully align the sticker on the target surface. I believe professionals sometimes apply soapy water to the surface. This allows you to shift the sticker until it is in a perfect position.</p>



<p>Then press the vinyl as good as you can to the surface by applying pressure to the painter&#8217;s tape. Then start peeling off the painter&#8217;s tape while leaving the vinyl glued to the surface. Help with a knife to release tiny parts from the painter&#8217;s tape.</p>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/blog.squix.org\/2020\/02\/extending-the-multi-maker-machine.html"}'  class="wp-block-gallery columns-3 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4787" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_3543" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1580642575&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.019607843137255&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_3543" data-image-description="" data-image-caption="&lt;p&gt;Place the sticker on the target surface&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4787" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4787" class="wp-image-4787" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_3543-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Place the sticker on the target surface</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4786" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_2879" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1580642568&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.016666666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_2879" data-image-description="" data-image-caption="&lt;p&gt;Rub the sticker well to the surface&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4786" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4786" class="wp-image-4786" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_2879-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Rub the sticker well to the surface</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4788" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_0081" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1580642672&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.019230769230769&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_0081" data-image-description="" data-image-caption="&lt;p&gt;Carefully remove the painter&#8217;s tape&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4788" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4788" class="wp-image-4788" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0081-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Carefully remove the painter&#8217;s tape</figcaption></figure></li><li class="blocks-gallery-item"><figure><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="548" data-attachment-id="4789" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/img_0235" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?fit=2560%2C1920&amp;ssl=1" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone XS&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1580642700&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.25&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.019230769230769&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="IMG_0235" data-image-description="" data-image-caption="&lt;p&gt;Voilà!&lt;/p&gt;
" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?fit=300%2C225&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?fit=730%2C548&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235.jpg?resize=730%2C548&#038;ssl=1" alt="" data-id="4789" data-full-url="https://blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg" data-link="https://blog.squix.org/?attachment_id=4789" class="wp-image-4789" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=2048%2C1536&amp;ssl=1 2048w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=100%2C75&amp;ssl=1 100w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?resize=935%2C700&amp;ssl=1 935w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?w=1460&amp;ssl=1 1460w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/IMG_0235-scaled.jpg?w=2190&amp;ssl=1 2190w" sizes="(max-width: 730px) 100vw, 730px" /><figcaption class="blocks-gallery-item__caption">Voilà!</figcaption></figure></li></ul></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Shopping Links</h2>



<p>Here are again all the links to the products mentioned in this post. I didn&#8217;t get paid to advertise these products but by using these links you will be supporting this blog:</p>



<div class="wp-block-media-text alignwide" style="grid-template-columns:27% auto"><figure class="wp-block-media-text__media"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="627" data-attachment-id="4805" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-3-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?fit=1030%2C884&amp;ssl=1" data-orig-size="1030,884" 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="image-3" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?fit=300%2C257&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?fit=730%2C627&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?resize=730%2C627&#038;ssl=1" alt="" class="wp-image-4805" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?resize=1024%2C879&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?resize=300%2C257&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?resize=768%2C659&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-3.png?w=1030&amp;ssl=1 1030w" sizes="(max-width: 730px) 100vw, 730px" /></figure><div class="wp-block-media-text__content">
<p>3018 3 Axis CNC Router. Around USD $200 from <a href="https://www.banggood.com/de/3018-3-Axis-Mini-DIY-CNC-Router-Standard-Spindle-Motor-Wood-Engraving-Machine-Milling-Engraver-p-1274569.html?p=0P21061109440201501M">Banggood</a></p>
</div></div>



<div class="wp-block-media-text alignwide" style="grid-template-columns:27% auto"><figure class="wp-block-media-text__media"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="611" data-attachment-id="4806" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-4-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?fit=978%2C818&amp;ssl=1" data-orig-size="978,818" 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="image-4" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?fit=300%2C251&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?fit=730%2C611&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?resize=730%2C611&#038;ssl=1" alt="" class="wp-image-4806" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?w=978&amp;ssl=1 978w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?resize=300%2C251&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-4.png?resize=768%2C642&amp;ssl=1 768w" sizes="(max-width: 730px) 100vw, 730px" /></figure><div class="wp-block-media-text__content">
<p>2.5W Laser Module to extend the CNC router. ~USD $80 from <a href="https://blog.squix.org/go/2-5w-laser-module">Banggood</a></p>
</div></div>



<div class="wp-block-media-text alignwide" style="grid-template-columns:27% auto"><figure class="wp-block-media-text__media"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="590" data-attachment-id="4807" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-5-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?fit=1054%2C852&amp;ssl=1" data-orig-size="1054,852" 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="image-5" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?fit=300%2C243&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?fit=730%2C590&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?resize=730%2C590&#038;ssl=1" alt="" class="wp-image-4807" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?resize=1024%2C828&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?resize=300%2C243&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?resize=768%2C621&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-5.png?w=1054&amp;ssl=1 1054w" sizes="(max-width: 730px) 100vw, 730px" /></figure><div class="wp-block-media-text__content">
<p>Drag Knife Holder + set of drag knives. ~USD $10 from <a href="https://www.banggood.com/15pcs-304560-Degree-Vinyl-Cutter-Blade-for-Roland-Cutting-Plotter-with-Holder-p-1061088.html?p=0P21061109440201501M">Banggood</a></p>
</div></div>



<div class="wp-block-media-text alignwide" style="grid-template-columns:27% auto"><figure class="wp-block-media-text__media"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="620" data-attachment-id="4810" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-8-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?fit=1058%2C898&amp;ssl=1" data-orig-size="1058,898" 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="image-8" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?fit=300%2C255&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?fit=730%2C620&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?resize=730%2C620&#038;ssl=1" alt="" class="wp-image-4810" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?resize=1024%2C869&amp;ssl=1 1024w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?resize=300%2C255&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?resize=768%2C652&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-8.png?w=1058&amp;ssl=1 1058w" sizes="(max-width: 730px) 100vw, 730px" /></figure><div class="wp-block-media-text__content">
<p>Vinyl sheets in various colors: ~USD $10 from <a href="https://www.banggood.com/2Mx50CM-DIY-Gloss-3D-Carbon-Fiber-Vinyl-Wrap-Roll-Film-Sticker-For-Car-Vehicle-8-Colors-p-986494.html?p=0P21061109440201501M">Banggood</a></p>
</div></div>



<div class="wp-block-media-text alignwide" style="grid-template-columns:27% auto"><figure class="wp-block-media-text__media"><img data-recalc-dims="1" loading="lazy" decoding="async" width="730" height="729" data-attachment-id="4811" data-permalink="https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/image-9-3" data-orig-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?fit=982%2C980&amp;ssl=1" data-orig-size="982,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="image-9" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?fit=730%2C729&amp;ssl=1" src="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?resize=730%2C729&#038;ssl=1" alt="" class="wp-image-4811" srcset="https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?w=982&amp;ssl=1 982w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?resize=768%2C766&amp;ssl=1 768w, https://i0.wp.com/blog.squix.org/wp-content/uploads/2020/02/image-9.png?resize=120%2C120&amp;ssl=1 120w" sizes="(max-width: 730px) 100vw, 730px" /></figure><div class="wp-block-media-text__content">
<p>Iron-on Vinyl for T-Shirts: ~USD $8 from <a href="https://www.banggood.com/2Mx50CM-DIY-Gloss-3D-Carbon-Fiber-Vinyl-Wrap-Roll-Film-Sticker-For-Car-Vehicle-8-Colors-p-986494.html?p=0P21061109440201501M">Banggood</a></p>
</div></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.squix.org/2020/02/extending-the-multi-maker-machine.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4742</post-id>	</item>
	</channel>
</rss>
