<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Recore Archives - www.iagent.no</title>
	<atom:link href="https://www.iagent.no/category/recore/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.iagent.no/category/recore/</link>
	<description>High end 3D printer electronics</description>
	<lastBuildDate>Mon, 26 Aug 2024 11:39:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://www.iagent.no/wp-content/uploads/2024/07/cropped-plain-logo-blue-32x32.png</url>
	<title>Recore Archives - www.iagent.no</title>
	<link>https://www.iagent.no/category/recore/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Getting Started with Recore A8</title>
		<link>https://www.iagent.no/2024/08/26/getting-started-with-recore-a8/</link>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Mon, 26 Aug 2024 11:35:53 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3547</guid>

					<description><![CDATA[<p>A new video has just dropped on YouTube the subject of getting started with Recore A8. The main focus is show newcomers how to set up the board when it first arrives and how to &#8220;find it&#8221;. There is also a section on how to get Wi-Fi set up. A shortcoming of the current software [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2024/08/26/getting-started-with-recore-a8/">Getting Started with Recore A8</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>A new video has just dropped on YouTube the subject of getting started with <a href="https://www.iagent.no/product/recore/">Recore A8</a>. The main focus is show newcomers how to set up the board when it first arrives and how to &#8220;find it&#8221;. There is also a section on how to get Wi-Fi set up. A shortcoming of the current software is the fact that there is no way to get Wi-Fi set up without some way to get in touch with the board is a bit of an Achilles&#8217; heel in the getting started workflow. </p>



<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 title="Getting started with Recore" width="1290" height="726" src="https://www.youtube.com/embed/POJyCJAvQ2o?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>Below are some notes on the video, easier to copy-paste if needed. </p>



<h3 class="wp-block-heading">First things first, power it up</h3>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-1024x576.jpg" alt="" class="wp-image-3550" srcset="https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-1024x576.jpg 1024w, https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-300x169.jpg 300w, https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-768x432.jpg 768w, https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-1536x864.jpg 1536w, https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1-800x450.jpg 800w, https://www.iagent.no/wp-content/uploads/2024/08/Untitled_1.6.1.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>After unpacking the board, it&#8217;s good to power it up using the USB-C connector. The box can be used as an isolator, so you don&#8217;t subject the board to static electricity. You should be able to see activity on the CPU and the eMMC leds and after a few seconds the heartbeat led will start flashing. </p>



<p>At this point there are three options for controlling the board. <br>1. Connect the Ethernet cable<br>2. Connect with Wi-Fi to the board as an access point<br>3. Use a terminal to get access via USB-C.</p>



<h3 class="wp-block-heading">Using Ethernet</h3>



<p>If you have an Ethernet cable and a switch available, this is the easiest option. Connect the cable between the board and the switch. The board is set up to get an IP address via DHCP. The board is also configured with Avahi to give it mDNS/DNS-SD capabilities. That means it should be available as <strong>recore.local</strong> and using avahi-browse -a, it should show up as an SSH terminal. </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="86" src="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-1024x86.png" alt="" class="wp-image-3554" srcset="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-1024x86.png 1024w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-300x25.png 300w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-768x65.png 768w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-1536x129.png 1536w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-2048x173.png 2048w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-04-46-800x67.png 800w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Using Wi-Fi</h3>



<p>The board can work as an access point or connected to a separate access point. It can be good to check that Wi-Fi is working by connecting to it either from a computer or a phone. Start by connecting a USB Wi-Fi dongle to one of the USB connectors. There should be some activity on the USB led. After running a scan for local access points from a computer or phone, the board should show up as <strong>Recore</strong>. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="776" height="413" src="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-25-57.png" alt="" class="wp-image-3555" srcset="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-25-57.png 776w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-25-57-300x160.png 300w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-12-25-57-768x409.png 768w" sizes="auto, (max-width: 776px) 100vw, 776px" /></figure>



<p>Since the board is set up in access point mode, trying to connect to a different access point will drop the connection. Having a good user experience for this is on the list of improvements, but for now we need a separate way to set up Wi-Fi. </p>



<p>In the video I use the USB-C to set up a terminal and run NMTUI. The hotspot/AP is deleted before running a scan to show local APs. I&#8217;m not sure why, but I had to exit and restart nmtui after deleting the hotspot in order to get nmtui to run a scan for local APs. You don&#8217;t really have to delete the Hotspot AP, it should be enough to just activate a new connection. A hot tips for getting colors in Minicom is to start it with color enabled (-c on): <br>minicom -o -D /dev/ttyACM0 -c on</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="437" src="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-1024x437.png" alt="" class="wp-image-3556" srcset="https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-1024x437.png 1024w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-300x128.png 300w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-768x328.png 768w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-1536x656.png 1536w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24-800x342.png 800w, https://www.iagent.no/wp-content/uploads/2024/08/Screenshot-from-2024-08-26-13-33-24.png 1799w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<p>The post <a href="https://www.iagent.no/2024/08/26/getting-started-with-recore-a8/">Getting Started with Recore A8</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recore A8 is now shipping!</title>
		<link>https://www.iagent.no/2024/06/24/recore-a8-is-now-shippping/</link>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Mon, 24 Jun 2024 14:31:16 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<category><![CDATA[3d-printer]]></category>
		<category><![CDATA[control board]]></category>
		<category><![CDATA[electronics]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3354</guid>

					<description><![CDATA[<p>After a long development cycle, Recore A8 is now finally shipping! Besides moving to new JST connectors, the focus for A8 has been on stability. Specifically by doubling the available current from the 5V step down converter from 4 A to 8 A, increasing the number of layers on the PCB from 6 to 8, [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2024/06/24/recore-a8-is-now-shippping/">Recore A8 is now shipping!</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>After a long development cycle, <a href="https://www.iagent.no/product/recore/">Recore A8</a> is now finally shipping! Besides moving to new JST connectors, the focus for A8 has been on stability. Specifically by doubling the available current from the 5V step down converter from 4 A to 8 A, increasing the number of layers on the PCB from 6 to 8, and adding support for using the USB-C connectors as a true OTG.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="681" src="https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-1024x681.jpg" alt="" class="wp-image-3360" srcset="https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-1024x681.jpg 1024w, https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-800x532.jpg 800w, https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-300x200.jpg 300w, https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-768x511.jpg 768w, https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text-1536x1022.jpg 1536w, https://www.iagent.no/wp-content/uploads/2024/06/JST-connectors-text.jpg 1966w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>We still have the market leading TMC2209 stepper motor drivers with good heat spread allowing high current to be drawn. The same with the input stage which is able to handle up to 30 A. Clever use of solid state power handling gives the board programmable over current protection which is both fast acting and incorporates over temperature.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-1024x576.png" alt="" class="wp-image-3361" srcset="https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-1024x576.png 1024w, https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-800x450.png 800w, https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-300x169.png 300w, https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-768x432.png 768w, https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text-1536x864.png 1536w, https://www.iagent.no/wp-content/uploads/2024/06/TMC2209-text.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The Allwinner A64 is still a great choice as the CPU (or SoC to be exact) since it is plenty powerful for a 3D printer, it has great upstream kernel support for all functionality and it has that integrated AR100 CPU giving us a fully fledged 300 MHz real time capabilities built into the silicon. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-1024x576.jpg" alt="" class="wp-image-3362" srcset="https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-1024x576.jpg 1024w, https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-800x450.jpg 800w, https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-300x169.jpg 300w, https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-768x432.jpg 768w, https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text-1536x864.jpg 1536w, https://www.iagent.no/wp-content/uploads/2024/06/Quad-core-text.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Recore A8 comes with <a href="https://wiki.iagent.no/wiki/Rebuild_v1.0.1">Rebuild v1.0.1</a> pre-installed (the Fluidd version), but the user can choose to switch to MainSail or OctoPrint if they want. </p>
<p>The post <a href="https://www.iagent.no/2024/06/24/recore-a8-is-now-shippping/">Recore A8 is now shipping!</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Reflash: A new way to upgrade firmware</title>
		<link>https://www.iagent.no/2024/05/08/reflash-a-new-way-to-upgrade-firmware/</link>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Wed, 08 May 2024 00:46:13 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<category><![CDATA[Refactor]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3339</guid>

					<description><![CDATA[<p>Reflash has recently undergone a pretty large change. It has become faster and more secure by changing from using a software &#8220;switch&#8221; to a hardware &#8220;key&#8221; to access a higher security level. This blog post will give a written account of what the video shows. TL;DR watch the video. Recore comes with software pre-installed. For [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2024/05/08/reflash-a-new-way-to-upgrade-firmware/">Reflash: A new way to upgrade firmware</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://wiki.iagent.no/wiki/Reflashhttps://wiki.iagent.no/wiki/Reflash">Reflash</a> has recently undergone a pretty large change. It has become faster and more secure by changing from using a software &#8220;switch&#8221; to a hardware &#8220;key&#8221; to access a higher security level.</p>



<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="Reflash: Upgrade your 3D printer software via USB" width="1290" height="726" src="https://www.youtube.com/embed/gD6V5pof0-0?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>This blog post will give a written account of what the video shows. TL;DR watch the video.</p>



<p>Recore comes with software pre-installed. For Recore A7 that has been MainSail as the top level software that the user interacts with. some users have requested OctoPrint and Fluidd instead as alternatives, so we offer those user interfaces as well for those who want them. If you want to go from one software to another, it can be a good idea to do a clean install, meaning you wipe the eMMC completely. </p>



<p>Because Recore has eMMC instead of MMC, that process looks a little different from those platforms that use MMC. The solution that has been chosen is to to use a USB drive as an intermediary and run the board from that instead of from the eMMC in order to completely wipe the eMMC and install fresh software. The image that runs on the USB drive is called Reflash and it is a simple webserver that allows you to download new software and flash it on to the board. </p>



<p>The new way to get back to Reflash, once you have made the conversion, will be to physically insert a USB drive with Reflash in one of the USB host ports. During booting, u-boot will scan the ports looking for a suitable image. If one is found, the boot process is continued using the Linux image on the USB drive. Since the the distro on the USB drive is created as an <a href="https://en.wikipedia.org/wiki/Initial_ramdisk">InitRD</a>, there is no danger of ending up with a corrupt filesystem as a result of removing the drive after a flashing operation has finished. As always, all software is open source, so the underlying <a href="https://github.com/intelligent-agent/Reflash/blob/main/mkimage.sh">script</a> for creating Reflash can be looked at for inspiration and profit. </p>



<p>It&#8217;s worth noting that in order to start using this new regime, it is necessary to set Recore into FEL-mode. This is done by holding down the FEL-button while pressing the RST-button on the board. It means that you need physical access to the board. It is also necessary to connect the board up to a host computer using a USB-C to A cable. Once you have managed to boot to Reflash v1.0.0 once, you should not need to do this again. </p>



<p>Here is the wiki-page for <a href="https://wiki.iagent.no/wiki/Reflash_1.0.0">Reflash v1.0.0</a>. As of this writing, it is still not a stable release, but it should work for most people. Once booted, you have the choice of installing either <a href="https://wiki.iagent.no/wiki/Refactor">Refactor</a> v3.2.0 or <a href="https://wiki.iagent.no/wiki/Rebuild">Rebuild</a> v1.0.0. The recommended choice is then going for Rebuild once that is at a stable version. There should not be any huge changes in the way things are working, most of the differences between Refactor and Rebuild is behind the scenes in the way the images are built. </p>
<p>The post <a href="https://www.iagent.no/2024/05/08/reflash-a-new-way-to-upgrade-firmware/">Reflash: A new way to upgrade firmware</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recore calibration results</title>
		<link>https://www.iagent.no/2022/04/07/recore-calibration-results/</link>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Thu, 07 Apr 2022 21:59:19 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<category><![CDATA[3d-printer]]></category>
		<category><![CDATA[control board]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[refactor]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3136</guid>

					<description><![CDATA[<p>The last few months have been spent calibrating and tuning the four different temperature sensors available on Recore A5 and A6. To aid with the calibration, a dry well calibrator was created that is controlled with Recore and with results plotted in OctoPrint. Below is a video explaining how it was done. This post adds [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2022/04/07/recore-calibration-results/">Recore calibration results</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The last few months have been spent calibrating and tuning the four different temperature sensors available on <a href="https://www.iagent.no/product/recore/">Recore</a> A5 and A6. To aid with the calibration, a dry well calibrator was created that is controlled with Recore and with results plotted in OctoPrint. Below is a video explaining how it was done. This post adds some details to the build and the calibration. </p>



<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="Getting perfect 3D-printing temperatures" width="1290" height="726" src="https://www.youtube.com/embed/i32Tg2GgCNw?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>As explained in the video, there are 4 different sensors that can be used with Recore: Thermistor, Thermocouple, PT100 (using an amplifier) and PT1000. Both Revision A5 and A6 can get very accurate measurements, but A6 can use the upstream Klipper implementation for all sensors without any custom calculations. A5 requires the Intelligent-Agent branch of Klipper.</p>



<p>The dry well calibrator (sometimes called a dry block calibrator) is a chunk of highly temperature conducting material, for instance aluminum, that has holes that fit the temperature sensors to be calibrated well. It&#8217;s also important to keep the plane in which the sensors reach equal among the sensors, to get the same readings. One possible source of error in this implementation is the depth of the holes. The reference should have a hole of 20 x D, which for the SDL S385 is 6 x 20 = 120 mm, but achieving that with a 2 mm hole (for the thermocouple) was unfeasible, so a depth of 40 mm was chosen instead. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-1024x576.jpg" alt="" class="wp-image-3139" srcset="https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-1024x576.jpg 1024w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-800x450.jpg 800w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-300x169.jpg 300w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-768x432.jpg 768w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-1536x864.jpg 1536w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6-600x338.jpg 600w, https://www.iagent.no/wp-content/uploads/2022/04/OctoPrint_A6.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The dry well in the video was constructed from a 55  mm diameter x 300 mm cylinder of 6061 aluminum stock that was purchased on eBay. The heater is a 220 V, 500 W, 10.5 mm heater from Ali Express. The heater is controlled with a solid state relay ED24D3 from Sensata-Crydom (Digi-key Part number CC1825-ND). The PT1000 is a 31500989  from Heraeus Nexensos (Digi-key part number 1759-1044-ND) and the reference temperature sensor is an SDL model <a href="https://www.sensing-devices.co.uk/products/sprt-standard-platinum-resistance-thermometers">S385</a> from Sensing Devices Ltd. A model for the dry-well was created in FreeCad.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-1024x576.png" alt="" class="wp-image-3140" srcset="https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-1024x576.png 1024w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-800x450.png 800w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-300x169.png 300w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-768x432.png 768w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-1536x864.png 1536w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model-600x338.png 600w, https://www.iagent.no/wp-content/uploads/2022/04/Dry-well-model.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the video, the reference temperature sensor is calibrated using de-ionized water with with ice cubes made of de-ionized water and boiling de-ionized water. The boiling point of water is determined using a barometric pressure senor from Seeed Studio (Digi-key part number 1597-101020812-ND). The uncertainty of the pressure sensor was given at +/- 8 m. The 1 mA of current is supplied by an HP 3245A and the voltage is measured by an HP 3458A.</p>



<p>The results achieved was within about 1 degree of each other for the 4 different sensors tested. It should be noted that even though temperature measurements seem simple to carry through, it was much work calibrating the reference, measuring the sensors several times, tuning the input values to the sensors and even creating models in SPICE to reverse engineer the effects on the inputs and model them in code for Klipper. </p>



<p>For those with a Recore A5, I will be updating the Intelligent Agent Klipper branch with the new input stage model, so a software update is needed. The new way of doing it is to disable the offset which makes the offset become a pull-down which is easy to model in code (in contrast with a pull-up to a voltage which is lower than the maximum input voltage). </p>



<p></p>
<p>The post <a href="https://www.iagent.no/2022/04/07/recore-calibration-results/">Recore calibration results</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recore rev A6 is shipping</title>
		<link>https://www.iagent.no/2022/01/13/recore-rev-a6-is-shipping/</link>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Thu, 13 Jan 2022 11:38:25 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<category><![CDATA[Refactor]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3096</guid>

					<description><![CDATA[<p>The development of Recore is moving along. The latest revision of the hardware is A6. The rate of change on the hardware development side of Recore is slowing down. That means it is almost perfect. The biggest changes from A5 to A6 are: External r_sense resistors for the TMC2209s. Better ESD protection for CE compliance [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2022/01/13/recore-rev-a6-is-shipping/">Recore rev A6 is shipping</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The development of Recore is moving along. The latest revision of the hardware is A6. The rate of change on the hardware development side of Recore is slowing down. That means it is almost perfect. The biggest changes from A5 to A6 are:</p>



<ul class="wp-block-list"><li>External r_sense resistors for the TMC2209s. </li><li>Better ESD protection for CE compliance</li><li>Single voltage domain for pull-ups, offsets and ADC. </li><li>Two 5V PWM outputs for easily adding BLtouch or servos. </li><li>Better testability and calibration (pull-up resistors are measured with HP3458A) </li><li>High speed capability on USB device port (A5 had full speed)</li><li>Less noisy thermocouple inputs. </li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-1024x768.png" alt="" class="wp-image-3098" srcset="https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-1024x768.png 1024w, https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-800x600.png 800w, https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-300x225.png 300w, https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-768x576.png 768w, https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled-600x450.png 600w, https://www.iagent.no/wp-content/uploads/2022/01/Overview_scaled.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>An overview of the features of Recore</figcaption></figure>



<p></p>



<p>Recore is released as open schematic, so for those interested, the schematic is available in the Repository: <a href="https://github.com/intelligent-agent/Recore/tree/master/Schematics">https://github.com/intelligent-agent/Recore/tree/master/Schematics</a></p>



<p>Even more changes have happened on the software side. Refactor is now up to version <a href="https://github.com/intelligent-agent/Refactor/releases/tag/v3.0.2">3.0.2</a>, with 3.0.3 on the way. A quick rundown of the changes are:<br></p>



<ul class="wp-block-list"><li>Separate boot partition for better stability</li><li>A Separate tab in OctoPrint for installing Refactor to eMMC. </li><li>Automatic flashing of the MCU on first boot. </li></ul>



<p>From <a href="https://github.com/intelligent-agent/Refactor/releases/tag/v3.0.1">v3.0.1</a> there were also a few changes:</p>



<ul class="wp-block-list"><li>Syncing Klipper with upstream</li><li>Github actions for building Refactor Recore and Replicape</li><li>Support for TMC2209</li><li>Better handling of restart for Recore.</li><li>Replicape uses latest official BeagleBoard image as staring point</li></ul>



<p></p>
<p>The post <a href="https://www.iagent.no/2022/01/13/recore-rev-a6-is-shipping/">Recore rev A6 is shipping</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Recore is Tested and Calibrated</title>
		<link>https://www.iagent.no/2021/08/03/how-recore-is-tested-and-calibrated/</link>
					<comments>https://www.iagent.no/2021/08/03/how-recore-is-tested-and-calibrated/#comments</comments>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Tue, 03 Aug 2021 12:10:58 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=3054</guid>

					<description><![CDATA[<p>There is now a new video out documenting how Recore A5 is tested and calibrated. This blog post will act as a supplement to the video, giving some more detail and offering the material as a readable reference. Functional testing The testing procedure for Recore is done by the board itself. This is convenient because [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2021/08/03/how-recore-is-tested-and-calibrated/">How Recore is Tested and Calibrated</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>There is now a new video out documenting how <a href="https://www.iagent.no/product/recore/">Recore A5</a> is tested and calibrated. This blog post will act as a supplement to the video, giving some more detail and offering the material as a readable reference.</p>



<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 Recore is tested and calibrated" width="1290" height="726" src="https://www.youtube.com/embed/2lFS3n8FOJk?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">Functional testing</h2>



<p>The testing procedure for Recore is done by the board itself. This is convenient because it makes it easy to access the data available on the board, such as values that must be collected from various sensors. These are:</p>



<ul class="wp-block-list"><li>Voltage on the input</li><li>Current used by the board</li><li>Board temperature</li><li>4 thermistor/thermocouple inputs</li><li>Cold junction temperature</li></ul>



<p>All the analog values are gathered by the microcontroller on the board and sent to the SoC via UART. In addition to this, all inputs and outputs must be tested. These are:</p>



<ul class="wp-block-list"><li>4 High power outputs</li><li>4 Fan outputs</li><li>6 Endstop inputs</li><li>4 USB </li><li>6 Stepper motors</li><li>1 HDMI output</li><li>1 Ethernet</li><li>23 Voltages</li></ul>



<p>The stepper motors and endstops are tested together, simply letting the motor run until the endstops are hit. The HDMI is tested by sending a known image to a Manga Screen with a USB webcam pointed at it and using ImageMagick to check for similarity. Ethernet speed is tested using Iperf. Mosfet outputs are tested by checking that the on and off values are correct using a separate microcontroller on the testing jig.</p>



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



<p>It&#8217;s great to have good equipment for running the tests, but where the equipment is really needed is during calibration of the gain and offset for the programmable instrumentation amplifier. The thermistor/thermocouple inputs can be programmed to have either a 1 time gain or a 101 times gain. This is done by either pulling a resistor low using a GPIO pin or by setting it to high Z which will eliminate it from the equation. There is also a programmable pull-up that can be used to create a voltage divider for a thermistor. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="409" src="https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-1024x409.png" alt="" class="wp-image-3060" srcset="https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-1024x409.png 1024w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-800x319.png 800w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-300x120.png 300w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-768x306.png 768w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-1536x613.png 1536w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-2048x817.png 2048w, https://www.iagent.no/wp-content/uploads/2021/08/Circuit-1-600x239.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Schematic of the input stage with programmable pull-up and 1/101 times programmable gain</figcaption></figure>



<p>With this setup, the amplification at various voltage levels can be measured. From this, using linear regression, the gain and offset can be calculated as G = ΔVo/ΔVi. The offset is simply the output value measured at 0 volt input. The offset value can be measured by the end user by shorting the input to ground, disabling the pull-up and setting the gain to 101. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="629" src="https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-1024x629.png" alt="" class="wp-image-3064" srcset="https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-1024x629.png 1024w, https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-800x491.png 800w, https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-300x184.png 300w, https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-768x471.png 768w, https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2-600x368.png 600w, https://www.iagent.no/wp-content/uploads/2021/08/Gain-offset-2.png 1300w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<h2 class="wp-block-heading">Details on accuracy of thermocouple</h2>



<p>In the video, I mention that the tolerance of the resistors used are ±1 %, but a good thermocouple can have a 1 degree accuracy across the temperature range. These are values that do not easily compare, so allow me to clarify. A type S thermocouple is actually not that much in use any more, but regardless, the tolerance is very good. ± 1 ºC  from 0 to 1100, which is &lt; ± 0.1 %. Below is the IEC 584 chart used as reference.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="281" src="https://www.iagent.no/wp-content/uploads/2021/08/Table-1024x281.png" alt="" class="wp-image-3066" srcset="https://www.iagent.no/wp-content/uploads/2021/08/Table-1024x281.png 1024w, https://www.iagent.no/wp-content/uploads/2021/08/Table-800x220.png 800w, https://www.iagent.no/wp-content/uploads/2021/08/Table-300x82.png 300w, https://www.iagent.no/wp-content/uploads/2021/08/Table-768x211.png 768w, https://www.iagent.no/wp-content/uploads/2021/08/Table-1536x422.png 1536w, https://www.iagent.no/wp-content/uploads/2021/08/Table-2048x562.png 2048w, https://www.iagent.no/wp-content/uploads/2021/08/Table-600x165.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Thermal experiment</h2>



<p>The video ends with an experiment comparing three thermocouples. Unfortunately, I don&#8217;t yet have a proper thermometer that I trust, so the results must be taken with a grain of salt. Also, the test was conducted with a fast temperature rise followed by a gradual cool down. This is not ideal since the temperature in the aluminum block needs time to reach equilibrium. A better test would be to use a <a href="https://us.flukecal.com/products/process-calibration-tools/temperature-calibrators/field-temperature-sources/9100s-9102s-han">dry-well</a> and allow the well to settle at different levels. Still, during the cool-down, the temperatures actually matched pretty well for a large range of values. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-1024x640.png" alt="" class="wp-image-3065" srcset="https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-1024x640.png 1024w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-800x500.png 800w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-300x188.png 300w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-768x480.png 768w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-1536x960.png 1536w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment-600x375.png 600w, https://www.iagent.no/wp-content/uploads/2021/08/Thermal-experiment.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<p>The post <a href="https://www.iagent.no/2021/08/03/how-recore-is-tested-and-calibrated/">How Recore is Tested and Calibrated</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iagent.no/2021/08/03/how-recore-is-tested-and-calibrated/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Recore is Finally Printing!</title>
		<link>https://www.iagent.no/2021/06/04/recore-is-finally-printing/</link>
					<comments>https://www.iagent.no/2021/06/04/recore-is-finally-printing/#comments</comments>
		
		<dc:creator><![CDATA[Elias Bakken]]></dc:creator>
		<pubDate>Fri, 04 Jun 2021 07:35:46 +0000</pubDate>
				<category><![CDATA[Recore]]></category>
		<guid isPermaLink="false">https://www.iagent.no/?p=2982</guid>

					<description><![CDATA[<p>The new 3D-printer control board (Recore) that was started in 2019 is now mature and ready to start shipping to customers. We are now at revision A5, but the A4 was also working fine, it was just a few minor tweaks related to testability mostly. But this blog post and accompanying video will be centered [&#8230;]</p>
<p>The post <a href="https://www.iagent.no/2021/06/04/recore-is-finally-printing/">Recore is Finally Printing!</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The new 3D-printer control board (<a href="https://www.iagent.no/product/recore/">Recore</a>) that was started in 2019 is now mature and ready to start shipping to customers. We are now at revision A5, but the A4 was also working fine, it was just a few minor tweaks related to testability mostly. </p>



<p>But this blog post and accompanying video will be centered around porting <a href="https://www.klipper3d.org/">Klipper</a> to be compatible with the new Recore. Here is the video, the rest of this post we give some details that did not make it into the video.</p>



<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="Recore is Finally Printing!" width="1290" height="726" src="https://www.youtube.com/embed/Q5tIKX7jtCA?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 that block diagram of <a href="https://linux-sunxi.org/A64">Allwinner A64</a> again for reference. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="815" src="https://www.iagent.no/wp-content/uploads/2021/05/all-1024x815.png" alt="" class="wp-image-2983" srcset="https://www.iagent.no/wp-content/uploads/2021/05/all-1024x815.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/all-800x637.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/all-300x239.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/all-768x611.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/all-600x478.png 600w, https://www.iagent.no/wp-content/uploads/2021/05/all.png 1172w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Normally a Single Board Computer (<a href="https://en.wikipedia.org/wiki/Single-board_computer">SBC</a>) that runs Linux is not suited for real time operations. That is why a microcontroller is needed which is why you end up with a combination of regular 3D-printer control board and a Rasberry Pi. There are exceptions, for instance the BeagleBone family has a separate (Programmable Realtime Unit) PRU which solves this elegantly. </p>



<p>In Recore I wanted to get rid of that separate microcontroller and find a solution similar to what the PRUs on the BeagleBone is doing. The solution is to use the AR100 which is a bit of a quirky &#8220;microprocessor&#8221; embedded on the Allwinner A64. But it&#8217;s fast! It can run at 300 MHz. Finding a similar microcontroller as a separate device would increase the final price quite a bit without really adding anything.</p>



<p>As mentioned in the video, in order to use the AR100 for real time operations, and to make it work with Klipper, there were three problems that needed to be solved. </p>



<h2 class="kt-adv-heading_aa3362-46 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading_aa3362-46">Toggle Pins Fast</h2>



<p>If you try to toggle pins from Linux, you will be disappointed. It is very slow and unpredictable since the pin toggling events are handled by the kernel and the program is running in user space. Also, the event be handled only when the kernel sees fit which can take a while. But even if you set aside a separate core out of those 4 cores in the A64, you would still be hunted by some amount of unpredictability since the toggling even has to be propagated on the same <a href="https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture">AHB</a> as most other media on the <a href="https://en.wikipedia.org/wiki/System_on_a_chip">SoC</a>. </p>



<p>By offloading those events to the AR100, we can get very good speed and predictability. The more we can stay away from the AHB dedicated to the AR100, the less <a href="https://en.wikipedia.org/wiki/Jitter">jitter</a> we experience on the toggling of those pins. More jitter will cause steps on the stepper motors to appear uneven and can in turn cause wobbling on the finish of printed objects. I&#8217;ve not done extensive testing on this, but it would be a very interesting experiment. </p>



<p>The experiment shown in the video shows the difference between toggling pins that are in one of the GPIO banks and comparing to pins that are in the R_GPIO bank. If you look at the chart above, the &#8220;path&#8221; taken for the AR100 to toggle the pins in the GPIO bank is a bit more crooked and running through two shared buses, one of which potentially has a lot of traffic. </p>



<div class="wp-block-kadence-rowlayout alignnone"><div id="kt-layout-id_1781b4-bc" class="kt-row-layout-inner kt-layout-id_1781b4-bc"><div class="kt-row-column-wrap kt-has-2-columns kt-gutter-default kt-v-gutter-default kt-row-valign-top kt-row-layout-equal kt-tab-layout-inherit kt-m-colapse-left-to-right kt-mobile-layout-row">
<div class="wp-block-kadence-column inner-column-1 kadence-column_022313-c0"><div class="kt-inside-inner-col">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-1024x576.png" alt="" class="wp-image-2988" srcset="https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-1024x576.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-800x450.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-300x169.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-768x432.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-1536x864.png 1536w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1-600x338.png 600w, https://www.iagent.no/wp-content/uploads/2021/05/GPIO_1.48.1_1.47.2-1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Spectrum of GPIO bank pin toggling</figcaption></figure>
</div></div>



<div class="wp-block-kadence-column inner-column-2 kadence-column_fb6ea8-07"><div class="kt-inside-inner-col">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-1024x576.png" alt="" class="wp-image-2989" srcset="https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-1024x576.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-800x450.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-300x169.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-768x432.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-1536x864.png 1536w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1-600x338.png 600w, https://www.iagent.no/wp-content/uploads/2021/05/R_GPIO_1.48.1.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Spectrum of R_GPIO bank pin toggling</figcaption></figure>



<p></p>
</div></div>
</div></div></div>



<h2 class="kt-adv-heading_a0b4e6-cb wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading_a0b4e6-cb">Communication Channel</h2>



<p>In an effort to offload as much traffic as possible on the AHB, I chose a somewhat unconventional way to set up communication between the main Klipper program running on Linux and the real time bit running on the AR100. The conventional way might be to use a shared memory area to &#8220;send&#8221; commands, since both CPUs are on the same die. Instead, I chose a loopback between a UART controlled by the A53 cores and an R_UART controlled by the AR100. I&#8217;m not burning any bridges here, the shared mem solution is still available in case anyone wants to try it and look at possible benefits and downsides, but now we have to option to do both. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="297" src="https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-1024x297.png" alt="" class="wp-image-2986" srcset="https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-1024x297.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-800x232.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-300x87.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-768x223.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-1536x446.png 1536w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-2048x595.png 2048w, https://www.iagent.no/wp-content/uploads/2021/05/Communication-1-600x174.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="kt-adv-heading_d436b3-17 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading_d436b3-17">A Timer for the AR100</h2>



<p>The third and final hurdle was getting a hold of a decent timer for the AR100. There is actually a timer peripheral (R_TIMER) in the A64 dedicated to the AR100, but unfortunately it is not timed by the AR100 CPU clock at 300 MHz. Instead, it is timed by the main oscillator at 24 MHz. This meas that the timer does not have enough resolution to cause stepping in the exact moment needed. But there is another solution, a tick timer facility in the <a href="https://openrisc.io/or1k.html#__RefHeading__504849_595890882">OR1000 ISA </a>. In Klipper, the implementation becomes very simple and even though the program will have to keep polling to check if time matches, the CPU is mostly idle regardless, so it should not make a difference. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.iagent.no/wp-content/uploads/2021/05/Crystal-1024x576.png" alt="" class="wp-image-2990" srcset="https://www.iagent.no/wp-content/uploads/2021/05/Crystal-1024x576.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-800x450.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-300x169.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-768x432.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-1536x864.png 1536w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-2048x1152.png 2048w, https://www.iagent.no/wp-content/uploads/2021/05/Crystal-600x337.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>The R_TIMER is clocked by the 24 MHz oscillator</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="210" src="https://www.iagent.no/wp-content/uploads/2021/05/pll-1-1024x210.png" alt="" class="wp-image-2992" srcset="https://www.iagent.no/wp-content/uploads/2021/05/pll-1-1024x210.png 1024w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-800x164.png 800w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-300x61.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-768x157.png 768w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-1536x314.png 1536w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-2048x419.png 2048w, https://www.iagent.no/wp-content/uploads/2021/05/pll-1-600x123.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>The TTCR (Tick Timer Counter Register) is clocked by the same clock as the AR100 CPU </figcaption></figure>



<h2 class="kt-adv-heading_3be8ae-b8 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading_3be8ae-b8">More Work is Needed</h2>



<p>Even though Recore now runs, the work on this started about a year ago, so the branch of Klipper that is was based upon is very outdated. Once Recore A5 is available in the shop, work will shift back to upstreaming the AR100 patches in Klipper so the work will be maintained. But at lest there is a way to print with the Recore boards, and that is a good starting point. </p>



<p>Like I mentioned in the videos, it looks like the AR100 is doing very well in terms of print <a href="https://github.com/intelligent-agent/klipper/blob/master/docs/Features.md#step-benchmarks">speed</a> compared to other solutions measured by Klipper.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="614" height="544" src="https://www.iagent.no/wp-content/uploads/2021/05/Table.png" alt="" class="wp-image-2994" srcset="https://www.iagent.no/wp-content/uploads/2021/05/Table.png 614w, https://www.iagent.no/wp-content/uploads/2021/05/Table-300x266.png 300w, https://www.iagent.no/wp-content/uploads/2021/05/Table-600x532.png 600w" sizes="auto, (max-width: 614px) 100vw, 614px" /><figcaption>This is a screenshot of tests run on an early Recore A2 board. The tests are from the custom fork of Klipper hosted in the Intelligent-agent github repository. </figcaption></figure>
<p>The post <a href="https://www.iagent.no/2021/06/04/recore-is-finally-printing/">Recore is Finally Printing!</a> appeared first on <a href="https://www.iagent.no">www.iagent.no</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.iagent.no/2021/06/04/recore-is-finally-printing/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
