<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.iagent.no/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Recore_A2</id>
	<title>Recore A2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.iagent.no/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Recore_A2"/>
	<link rel="alternate" type="text/html" href="https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;action=history"/>
	<updated>2026-05-28T14:48:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=410&amp;oldid=prev</id>
		<title>Elias at 17:29, 20 January 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=410&amp;oldid=prev"/>
		<updated>2022-01-20T17:29:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:29, 20 January 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l359&quot; &gt;Line 359:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 359:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;pin. If the sample time is kept at minimum (1.5 cycles) the offset will be large. Increasing the sample time &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;pin. If the sample time is kept at minimum (1.5 cycles) the offset will be large. Increasing the sample time &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fixes that problem. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fixes that problem. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SDS5034X_PNG_68.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SDS5034X_PNG_68.png&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|1024px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Performance Testing==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Performance Testing==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l371&quot; &gt;Line 371:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 371:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An experiment with a constant current load drawing 20 A from the bed connector with and without a 92 mm fan on top of the board for forced convection. The temperature measured was with the on board thermistor. Using a thermal camera, the temperature displayed matches well with the temperature reported by the camera. However, in Rev A2, this is not the hottest point on the board. The MOSFET controlling the bed seems to consistently get the highest temperature. The reason for this is probably due to a 3.3 V VGS. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An experiment with a constant current load drawing 20 A from the bed connector with and without a 92 mm fan on top of the board for forced convection. The temperature measured was with the on board thermistor. Using a thermal camera, the temperature displayed matches well with the temperature reported by the camera. However, in Rev A2, this is not the hottest point on the board. The MOSFET controlling the bed seems to consistently get the highest temperature. The reason for this is probably due to a 3.3 V VGS. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File: Temperature-fan-off.pdf.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File: Temperature-fan-off.pdf.png&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|1024px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Temperature-fan.pdf.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Temperature-fan.pdf.png&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|1024px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Temperature low pass filter===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Temperature low pass filter===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Low pass filter has been added on each of the temperature input channels. The cut-off frequency is below what my oscilloscope can handle, but a plot in the time domain verifies a 7 Hz -3dB point.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Low pass filter has been added on each of the temperature input channels. The cut-off frequency is below what my oscilloscope can handle, but a plot in the time domain verifies a 7 Hz -3dB point.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SDS5034X_PNG_66.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:SDS5034X_PNG_66.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Elias</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=409&amp;oldid=prev</id>
		<title>Elias at 17:28, 20 January 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=409&amp;oldid=prev"/>
		<updated>2022-01-20T17:28:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:28, 20 January 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page is for Recore Revision A2, check out [[Recore]] for the latest info. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page is for Recore Revision A2, check out [[Recore]] for the latest info. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware overview==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Hardware overview==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Recore_pinout.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:Recore_pinout.png&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|1024px&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Software for Recore==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Software for Recore==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Elias</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=214&amp;oldid=prev</id>
		<title>Elias: Created page with &quot;This page is for Recore Revision A2, check out Recore for the latest info.  ==Hardware overview== File:Recore_pinout.png  ==Software for Recore== ===Distro=== Starting...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.iagent.no/mediawiki/index.php?title=Recore_A2&amp;diff=214&amp;oldid=prev"/>
		<updated>2021-05-04T19:29:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page is for Recore Revision A2, check out &lt;a href=&quot;/wiki/Recore&quot; title=&quot;Recore&quot;&gt;Recore&lt;/a&gt; for the latest info.  ==Hardware overview== &lt;a href=&quot;/wiki/File:Recore_pinout.png&quot; title=&quot;File:Recore pinout.png&quot;&gt;File:Recore_pinout.png&lt;/a&gt;  ==Software for Recore== ===Distro=== Starting...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page is for Recore Revision A2, check out [[Recore]] for the latest info. &lt;br /&gt;
==Hardware overview==&lt;br /&gt;
[[File:Recore_pinout.png]]&lt;br /&gt;
&lt;br /&gt;
==Software for Recore==&lt;br /&gt;
===Distro===&lt;br /&gt;
Starting with Armbian Buster Server for Pine 64 (kernel 5.4) https://dl.armbian.com/pine64/Buster_current&lt;br /&gt;
Flash the software to a USB drive. &lt;br /&gt;
&lt;br /&gt;
Once flashed, it's necessary to add the Recore device tree to the right folder. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp sun50i-a64-recore.dtb /media/xxx/boot/dtb/allwinner/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a clean board, it's necessary to start the board from a host computer using FEL mode. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sunxi-fel -v -p spl sunxi-spl.bin write 0x44000 bl31.bin write 0x4a000000 u-boot.bin reset64 0x44000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output will appear in teminal UART0. You can use minicom on a host computer to watch the boot process and get a login screen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
minicom -D /dev/ttyUSB0 -w&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a dongle with Armbian is present in one of the USB host slots, it should boot from the dongle.&lt;br /&gt;
&lt;br /&gt;
==== Booting from USB if an OS is present on the eMMC ====&lt;br /&gt;
If the eMMC is parititioned and has an OS, u-boot will launch right into that. In order to override that and &lt;br /&gt;
boot from a USB dongle, stop u-boot by pressing a key and then write:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv devnum 0&lt;br /&gt;
run usb_boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install distro to eMMC ===&lt;br /&gt;
Create Partition: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export card=/dev/mmcblk0&lt;br /&gt;
blockdev --rereadpt ${card}&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT | sfdisk ${card}&lt;br /&gt;
1M,,L&lt;br /&gt;
EOT&lt;br /&gt;
mkfs.ext4 ${card}p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Copy Kernel and rootfs to eMMC====&lt;br /&gt;
Use the flash script in Redist&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/mmcblk0p1  /mnt/&lt;br /&gt;
rsync -aAx --human-readable --info=name0,progress2 --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/media/*,/mnt/*,lost+found/} /* /mnt&lt;br /&gt;
echo &amp;quot;rootdev=/dev/mmcblk0p1&amp;quot; &amp;gt;&amp;gt; /mnt/boot/armbianEnv.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update the UUID in fstab to the UUID of the eMMC part 1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export UUID=`blkid | grep mmcblk0p1 | awk -F'&amp;quot;' '{print $2}'`&lt;br /&gt;
sed -i &amp;quot;s/UUID=.*\//UUID=$UUID \//g&amp;quot; /mnt/etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Make eMMC bootable (WIP)====&lt;br /&gt;
Place U-boot-spl in sector 15 (8KB offset)  &lt;br /&gt;
Clean card:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dd if=/dev/zero of=/dev/mmcblk0 bs=1k count=1023 seek=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flash the binary &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8 conv=notrunc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The board (A2) does not boot using this technique. It looks like ALDO1 used to power the eMMC IO (VCCQ) is not on by default.&lt;br /&gt;
The CMD line also needs a pull-up. Maybe also a pull-down on DS.&lt;br /&gt;
&lt;br /&gt;
Note: U-boot needs to be patched in order to use the eMMC as the first (and only) boot device. &lt;br /&gt;
The changes can be done in &amp;quot;spl_mmc_get_device_index&amp;quot; where dev_num should be 0 instead of 1.&lt;br /&gt;
&lt;br /&gt;
===Install Klipper===&lt;br /&gt;
It's good to add a separate user for Klipper:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useradd klipper -s /bin/bash -G sudo,dialout&lt;br /&gt;
passwd klipper&lt;br /&gt;
mkdir /home/klipper&lt;br /&gt;
chown klipper:klipper /home/klipper&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su klipper&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/intelligent-agent/klipper&lt;br /&gt;
cp klipper/config/generic-recore.cfg ./printer.cfg&lt;br /&gt;
./klipper/scripts/install-ubuntu-18.04.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the log by writing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tail -f /tmp/klippy.log &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Install STM32 firmware ====&lt;br /&gt;
This flash scripts requires gpiod&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install gpiod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/klipper/klipper&lt;br /&gt;
cp .config_stm32 .config&lt;br /&gt;
make&lt;br /&gt;
sudo ./scripts/flash-stm32.sh out/klipper.bin (might have to be run several times)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Install AR100 firmware ====&lt;br /&gt;
The ar100 needs to be compiled on an x86_64 computer. The reason for this is the lack of an or1k toolchain for aarch64. &lt;br /&gt;
On a host computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp .config_ar100 .config&lt;br /&gt;
make&lt;br /&gt;
scp out/ar100.bin root@recore.local:/home/klipper/klipper/out/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the Recore board:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/klipper/klipper/scripts/flash-ar100.py /home/klipper/klipper/out/ar100.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Running Klipper====&lt;br /&gt;
After a reboot, the ar100 firmware needs to be reflashed. We will get this into an automatic routine eventually, bit for now: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/klipper/klipper/scripts/flash-ar100.py /home/klipper/klipper/out/ar100.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Giving right privileges for AR100 restart====&lt;br /&gt;
The AR100 flasher and reset script needs to be run as root. &lt;br /&gt;
We create a group called flashers, add klipper to that and gie the group sudo access to the script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo addgroup flashers&lt;br /&gt;
sudo adduser klipper flashers&lt;br /&gt;
echo '%flashers ALL=(ALL) NOPASSWD: /home/klipper/klipper/scripts/flash-ar100.py *, /usr/bin/gpioset *' &amp;gt; /etc/sudoers.d/flashers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install Octoprint===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su klipper&lt;br /&gt;
cd ~&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential&lt;br /&gt;
mkdir OctoPrint &amp;amp;&amp;amp; cd OctoPrint&lt;br /&gt;
virtualenv venv&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
pip install pip --upgrade&lt;br /&gt;
pip install octoprint&lt;br /&gt;
./venv/bin/octoprint serve&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a systemd start-up script &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /lib/systemd/system/octoprint.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=The snappy web interface for your 3D printer&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=klipper&lt;br /&gt;
ExecStart=/home/klipper/OctoPrint/venv/bin/octoprint&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable and start script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable octoprint&lt;br /&gt;
sudo systemctl start octoprint&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Manual control and testing===&lt;br /&gt;
To use the examples in this section, first install gpiod&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install gpiod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Power domains====&lt;br /&gt;
There are 9 power domains around the board controlling voltage on different pins: &lt;br /&gt;
* &amp;lt;b&amp;gt;Input power&amp;lt;/b&amp;gt; controls power to 4 high power outputs, the 4 fans and the 6 stepper drivers. This input has current monitoring, fast acting over current protection, voltage monitoring, temperature monitoring and reverse polarity protection.&lt;br /&gt;
* &amp;lt;b&amp;gt;Thermo couple power&amp;lt;/b&amp;gt; Controls +5V/1A output to the ADCs. This can be used for turning on power to the analog pins. &lt;br /&gt;
* &amp;lt;b&amp;gt;End stop power&amp;lt;/b&amp;gt; Controls +5V/1A output on the six endstops. Ganged. ES5 can be switched to have 12V output. The 12V output has a &lt;br /&gt;
100mA internal current limit. &lt;br /&gt;
* &amp;lt;b&amp;gt;4 USB host power domains&amp;lt;/b&amp;gt; Controls 5V/1A current output to the usb host connectors. These are turned on by u-boot.&lt;br /&gt;
*&amp;lt;b&amp;gt;HDMI 5V output&amp;lt;/b&amp;gt; Controls the 5V/1A HDMI output. Turned on by u-boot. &lt;br /&gt;
&lt;br /&gt;
====Input stage====&lt;br /&gt;
Reset over current protection and set it in &amp;quot;one-shot&amp;quot; mode.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 193=0&lt;br /&gt;
gpioset 1 193=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The over current protection can also be set in &amp;quot;transparent&amp;quot; mode, where the current alarm &lt;br /&gt;
will be reset automatically. Note that this is a bad idea for general operation, only use for testing. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 193=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable 24V input&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 194=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====End stop 5V /12V====&lt;br /&gt;
End stop 0 to 4 has a programmable +5V output voltage. &lt;br /&gt;
End stop 5 has +5V or +12V selectable.&lt;br /&gt;
&lt;br /&gt;
To enable +5V on ES 0...4&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 203=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To disable again&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 203=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To switch to 12V output on ES5&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 199=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To disable again&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 199=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====End stops values====&lt;br /&gt;
To see what value the end stops have&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioget 0 2 # ES 0&lt;br /&gt;
gpioget 0 3&lt;br /&gt;
gpioget 0 4&lt;br /&gt;
gpioget 0 5&lt;br /&gt;
gpioget 0 6&lt;br /&gt;
gpioget 0 7 # ES 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====TMC2209====&lt;br /&gt;
In window/shell 1:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stty -F /dev/ttyS2 raw -echoe -echo&lt;br /&gt;
xxd -c 4 /dev/ttyS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In window/shell 2:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n -e '\x5\x0\x6\x6F' &amp;gt; /dev/ttyS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The return should be along the lines of&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00000000: 0500 066f  ...o&lt;br /&gt;
00000004: 05ff 0620  ... &lt;br /&gt;
00000008: 0001 4058  ..@X&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To read the OTP registers&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n -e &amp;quot;\x5\x0\x5\x21&amp;quot; &amp;gt; /dev/ttyS2&lt;br /&gt;
echo -n -e &amp;quot;\x5\x0\x5\x21&amp;quot; &amp;gt; /dev/ttyS3&lt;br /&gt;
echo -n -e &amp;quot;\x5\x1\x5\x97&amp;quot; &amp;gt; /dev/ttyS2&lt;br /&gt;
echo -n -e &amp;quot;\x5\x1\x5\x97&amp;quot; &amp;gt; /dev/ttyS3&lt;br /&gt;
echo -n -e &amp;quot;\x5\x2\x5\x7a&amp;quot; &amp;gt; /dev/ttyS2&lt;br /&gt;
echo -n -e &amp;quot;\x5\x2\x5\x7a&amp;quot; &amp;gt; /dev/ttyS3&lt;br /&gt;
echo -n -e &amp;quot;\x5\x3\x5\xcc&amp;quot; &amp;gt; /dev/ttyS2&lt;br /&gt;
echo -n -e &amp;quot;\x5\x3\x5\xcc&amp;quot; &amp;gt; /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set the OTP register to use RDSon:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n -e &amp;quot;\x5\x0\x84\x0\x0\xbd\x6\xac&amp;quot; &amp;gt; /dev/ttyS2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== STM32F031 ====&lt;br /&gt;
There is a small firmware to test all functionality that is controlled by the STM32F031 chip on the board. &lt;br /&gt;
Once uploaded to the board using the flash script, the firmware will turn on all LEDs it controls and send &lt;br /&gt;
back ADC readings. &lt;br /&gt;
&lt;br /&gt;
To flash this firmware to the STM32:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpioset 1 197=1&lt;br /&gt;
gpioset 1 196=0&lt;br /&gt;
stm32flash -i -196,196 -w Sumato-f031.bin -v -g 0x00 /dev/ttyS1&lt;br /&gt;
gpioset 1 197=0&lt;br /&gt;
stm32flash -i -196,196 /dev/ttyS1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see the ADC readings: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stty -F /dev/ttyS1 38400 raw&lt;br /&gt;
cat /dev/ttyS1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ADC T0: 0&lt;br /&gt;
ADC T1: 0&lt;br /&gt;
ADC T2: 0&lt;br /&gt;
ADC T3: 0&lt;br /&gt;
ADC U: 2338&lt;br /&gt;
ADC I: 0&lt;br /&gt;
ADC TB: 3417&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following one-liners assumes gawk is installed.&lt;br /&gt;
&lt;br /&gt;
You can convert the current (as in amps) reading to something useful like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/ttyS1 | awk '/I:/ { printf &amp;quot;scale=4; (%i/4096)*132\n&amp;quot;, $3; fflush(); }' | bc -l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see the temperature readings, try this : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/ttyS1 | awk '/TB:/ { printf &amp;quot;scale=4; 4308/l( (4700/((3.3/(3.3*%i/4096))-1.0))/0.05306820342563400000) -273.15\n&amp;quot;, $3; fflu&lt;br /&gt;
sh(); }' | bc -l | awk '{print strftime(&amp;quot;%k:%M:%S&amp;quot;), $0; fflush();}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HDMI power ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 201 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
echo out &amp;gt; /sys/class/gpio/gpio201/direction&lt;br /&gt;
echo 1 &amp;gt; /sys/class/gpio/gpio201/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AR100 ===&lt;br /&gt;
See also: [[AR100]]&lt;br /&gt;
==== Loading a binary into SRAM A2 ====&lt;br /&gt;
Get Crust in order to load the AR100 bin file into memory&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/intelligent-agent/ar100-fw&lt;br /&gt;
cd ar100-fw&lt;br /&gt;
make defconfig&lt;br /&gt;
HOST_COMPILE= make tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the load program is compiled, an AR100 binary blob can be loaded with&lt;br /&gt;
&amp;lt;PRE&amp;gt;./ar100-fw/build/tools/load scp.bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please note that the AR100 binary file bust be 8 byte aligned, meaning that the size must be divisible by 8.&lt;br /&gt;
&lt;br /&gt;
== Known Issues==&lt;br /&gt;
===Linux===&lt;br /&gt;
The default config option for Pine64 seems to be a maximum of 4 uarts. In order to increase that, it is necessary to compile a new kernel. &lt;br /&gt;
&lt;br /&gt;
===Rev A2===&lt;br /&gt;
This revision was sent out to two beta testers. Not put into production.&lt;br /&gt;
====Ethernet slow at appearing====&lt;br /&gt;
Ethernet sometimes uses a long time to come up.&lt;br /&gt;
====Reset button not responding====&lt;br /&gt;
Simply pressing the reset button does not always cause a reset of the board.&lt;br /&gt;
====eMMC can not run at full speed====&lt;br /&gt;
HS200 does not seem to work, this might be related to data line length mismatch. &lt;br /&gt;
====Can not boot from eMMC====&lt;br /&gt;
====HDMI not always appearing====&lt;br /&gt;
====On-board thermistor source impedance====&lt;br /&gt;
The on-board thermistor chosen for A2 is 100 K, which in conjunction with the 4.7 K pull-up causes the &lt;br /&gt;
source impedance to be above the recommended 50 K external input impedance. (100 K sinking)&lt;br /&gt;
When sampling the value from the on-board thermistor, the ADC is loaded too much causing a &lt;br /&gt;
dip in the value. The result is that a lower value sampled than what is actually present on the ADC &lt;br /&gt;
pin. If the sample time is kept at minimum (1.5 cycles) the offset will be large. Increasing the sample time &lt;br /&gt;
fixes that problem. &lt;br /&gt;
[[File:SDS5034X_PNG_68.png]]&lt;br /&gt;
&lt;br /&gt;
==Performance Testing==&lt;br /&gt;
===Measured voltages===&lt;br /&gt;
Measurement instrument: Siglent SDM3065X, 6.5 digit multimeter&lt;br /&gt;
====Microcontroller voltages====&lt;br /&gt;
VDDA uC: 3.312 V&amp;lt;br&amp;gt;&lt;br /&gt;
VDD uC: 3.312 V&lt;br /&gt;
&lt;br /&gt;
===Input stage===&lt;br /&gt;
An experiment with a constant current load drawing 20 A from the bed connector with and without a 92 mm fan on top of the board for forced convection. The temperature measured was with the on board thermistor. Using a thermal camera, the temperature displayed matches well with the temperature reported by the camera. However, in Rev A2, this is not the hottest point on the board. The MOSFET controlling the bed seems to consistently get the highest temperature. The reason for this is probably due to a 3.3 V VGS. &lt;br /&gt;
&lt;br /&gt;
[[File: Temperature-fan-off.pdf.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Temperature-fan.pdf.png]]&lt;br /&gt;
&lt;br /&gt;
===Temperature low pass filter===&lt;br /&gt;
A Low pass filter has been added on each of the temperature input channels. The cut-off frequency is below what my oscilloscope can handle, but a plot in the time domain verifies a 7 Hz -3dB point.&lt;br /&gt;
[[File:SDS5034X_PNG_66.png]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>
		
	</entry>
</feed>