<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://revspace.nl/wiki/index.php?action=history&amp;feed=atom&amp;title=Tibat</id>
	<title>Tibat - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://revspace.nl/wiki/index.php?action=history&amp;feed=atom&amp;title=Tibat"/>
	<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;action=history"/>
	<updated>2026-05-13T20:53:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=31088&amp;oldid=prev</id>
		<title>Glu: /* Schema */</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=31088&amp;oldid=prev"/>
		<updated>2023-04-23T10:25:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Schema&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:25, 23 April 2023&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-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;(Je zou ook kunnen proberen het signaal met de ADC te samplen, maar dan moet je de ADC overklokken (2.5MHz?) en niet meer dan 8 bits gebruiken. Je hebt dan waarschijnlijk niet veel meer dan 3 a 4 bits (LSB) resolutie van het signaal, maar dat is beter dan 1. In free running mode kost een conversie 13 cycles, dus haal je 192ksps bij 2.5MHz, maar of de AVR het trekt weet ik niet. Je krijgt misschien ook last van de interne capaciteit van de ADC, dat filtert dan juist weer de hoge tonen eruit. Of dit significant is heb ik niet berekend of getest.)   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;(Je zou ook kunnen proberen het signaal met de ADC te samplen, maar dan moet je de ADC overklokken (2.5MHz?) en niet meer dan 8 bits gebruiken. Je hebt dan waarschijnlijk niet veel meer dan 3 a 4 bits (LSB) resolutie van het signaal, maar dat is beter dan 1. In free running mode kost een conversie 13 cycles, dus haal je 192ksps bij 2.5MHz, maar of de AVR het trekt weet ik niet. Je krijgt misschien ook last van de interne capaciteit van de ADC, dat filtert dan juist weer de hoge tonen eruit. Of dit significant is heb ik niet berekend of getest.)   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Zie het &quot;Discussion&quot; tabblad, bertrik heeft een idee voor heterodyne detectie. Dat zou een mooie software upgrade zijn, het verbetert de audio kwaliteit enorm! (AC vs. ADC input en 1 bit vs. PWM output, met daarbij nog een lineaire verschuiving in het geluid in plaats van een deling maakt het bijna een professioneel apparaatje.) Het mooie is dat bij de ATtiny402 de ADC veel meer opties heeft om op verschillende sample frequenties te draaien in continuous mode dan bij oudere AVR&#039;s. Dus dit moet kunnen werken!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Zie het &quot;Discussion&quot; tabblad &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bij https://revspace.nl/Batty&lt;/ins&gt;, bertrik heeft een idee voor heterodyne detectie. Dat zou een mooie software upgrade zijn, het verbetert de audio kwaliteit enorm! (AC vs. ADC input en 1 bit vs. PWM output, met daarbij nog een lineaire verschuiving in het geluid in plaats van een deling maakt het bijna een professioneel apparaatje.) Het mooie is dat bij de ATtiny402 de ADC veel meer opties heeft om op verschillende sample frequenties te draaien in continuous mode dan bij oudere AVR&#039;s. Dus dit moet kunnen werken!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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:Tibat schema.png|Schema]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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:Tibat schema.png|Schema]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glu</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=31087&amp;oldid=prev</id>
		<title>Glu: /* &quot;Tiny bat detector kit&quot; */</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=31087&amp;oldid=prev"/>
		<updated>2023-04-23T10:24:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;&amp;quot;Tiny bat detector kit&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:24, 23 April 2023&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-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;I am tired, please translate Dutch text yourself.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;I am tired, please translate Dutch text yourself.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HDe &lt;/del&gt;microcontroller is eenvoudig te voorzien van nieuwe firmware met behulp van een USB serial converter en een weerstand van rond de 3k. &#039;&#039;&#039;Let op: Verwijder eerst de batterij voordat er geprogrammeerd wordt!&#039;&#039;&#039; Programmeren kan met behulp van de nieuwste versie van het Python 3 programma pyupdi. (python3 pyupdi.py -d tiny402 -c /dev/ttyUSB0 -v -f batty.hex)  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;De &lt;/ins&gt;microcontroller is eenvoudig te voorzien van nieuwe firmware met behulp van een USB serial converter en een weerstand van rond de 3k. &#039;&#039;&#039;Let op: Verwijder eerst de batterij voordat er geprogrammeerd wordt!&#039;&#039;&#039; Programmeren kan met behulp van de nieuwste versie van het Python 3 programma pyupdi. (python3 pyupdi.py -d tiny402 -c /dev/ttyUSB0 -v -f batty.hex)  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Let op: De IO_PROG interface pins zijn van links naar rechts: PA2 (button), PA3 (audio out), GND, PROG, VCC.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Let op: De IO_PROG interface pins zijn van links naar rechts: PA2 (button), PA3 (audio out), GND, PROG, VCC.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glu</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29953&amp;oldid=prev</id>
		<title>Glu at 15:23, 26 July 2022</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29953&amp;oldid=prev"/>
		<updated>2022-07-26T15:23:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:23, 26 July 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-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Zie het &amp;quot;Discussion&amp;quot; tabblad, bertrik heeft een idee voor heterodyne detectie. Dat zou een mooie software upgrade zijn, het verbetert de audio kwaliteit enorm! (AC vs. ADC input en 1 bit vs. PWM output, met daarbij nog een lineaire verschuiving in het geluid in plaats van een deling maakt het bijna een professioneel apparaatje.) Het mooie is dat bij de ATtiny402 de ADC veel meer opties heeft om op verschillende sample frequenties te draaien in continuous mode dan bij oudere AVR&amp;#039;s. Dus dit moet kunnen werken!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Zie het &amp;quot;Discussion&amp;quot; tabblad, bertrik heeft een idee voor heterodyne detectie. Dat zou een mooie software upgrade zijn, het verbetert de audio kwaliteit enorm! (AC vs. ADC input en 1 bit vs. PWM output, met daarbij nog een lineaire verschuiving in het geluid in plaats van een deling maakt het bijna een professioneel apparaatje.) Het mooie is dat bij de ATtiny402 de ADC veel meer opties heeft om op verschillende sample frequenties te draaien in continuous mode dan bij oudere AVR&amp;#039;s. Dus dit moet kunnen werken!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Tibat schema.png|Schema]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;===== Source =====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;===== Source =====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glu</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29950&amp;oldid=prev</id>
		<title>Glu at 16:02, 25 July 2022</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29950&amp;oldid=prev"/>
		<updated>2022-07-25T16:02:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:02, 25 July 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-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;I am tired, please translate Dutch text yourself.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;I am tired, please translate Dutch text yourself.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Het was weer een groot succes, vooral jong, maar ook oud kwamen solderen, 36 kits zijn er inelkaar gezet, alle gingen werkend mee naar huis! Dit jaar heeft benadski (van Wilenzo) zich weer (net op tijd) druk gemaakt en kits ontwikkeld, geprogrammeerd en geleverd. Dit keer is met behulp van de ATtiny402 microcontroller een programmeerbare vleermuisdetector gemaakt. De &lt;/del&gt;microcontroller is eenvoudig te voorzien van nieuwe &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;software &lt;/del&gt;met behulp van een USB serial converter en een 3k &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;weerstand&lt;/del&gt;. &#039;&#039;&#039;Let op: Verwijder eerst de batterij voordat er geprogrammeerd wordt!&#039;&#039;&#039; Programmeren kan met behulp van de nieuwste versie van het Python 3 programma pyupdi. (python3 pyupdi.py -d tiny402 -c /dev/ttyUSB0 -v -f batty.hex)  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;HDe &lt;/ins&gt;microcontroller is eenvoudig te voorzien van nieuwe &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;firmware &lt;/ins&gt;met behulp van een USB serial converter en een &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;weerstand van rond de &lt;/ins&gt;3k. &#039;&#039;&#039;Let op: Verwijder eerst de batterij voordat er geprogrammeerd wordt!&#039;&#039;&#039; Programmeren kan met behulp van de nieuwste versie van het Python 3 programma pyupdi. (python3 pyupdi.py -d tiny402 -c /dev/ttyUSB0 -v -f batty.hex)  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Let op: De IO_PROG interface &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;heeft pin 1 &lt;/del&gt;rechts &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zitten&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;de pinnen tellen vlnr dus van 5 t/m 1&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;net als in het schema&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Let op: De IO_PROG interface &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pins zijn van links naar &lt;/ins&gt;rechts&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: PA2 (button), PA3 (audio out), GND&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PROG&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;VCC&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;===== Schema =====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;===== Schema =====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Het schema hieronder is erg simpel &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;en kan vast nog verder geoptimaliseerd worden&lt;/del&gt;. Het analoge deel tussen microfoon en AVR versterkt vooral de hoge tonen &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vanaf pak &#039;m beet 10kHz&lt;/del&gt;. Doordat het signaal uit Q1 naast een directe verbinding met de AVR ook nog via een laagdoorlaatfilter naar de AVR gaat (beide signalen komen uit op de analoge comparator pins) ontstaat een differentieel signaal op de AC van de AVR.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;Het schema hieronder is erg simpel. Het analoge deel tussen microfoon en AVR versterkt vooral de hoge tonen. Doordat het signaal uit Q1 naast een directe verbinding met de AVR ook nog via een laagdoorlaatfilter naar de AVR gaat (beide signalen komen uit op de analoge comparator pins) ontstaat een differentieel signaal op de AC van de AVR.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;(Je zou ook kunnen proberen het signaal met de ADC te samplen, maar dan moet je de ADC overklokken (2.5MHz?) en niet meer dan 8 bits gebruiken. Je hebt dan waarschijnlijk niet veel meer dan 3 a 4 bits (LSB) resolutie van het signaal, maar dat is beter dan 1. In free running mode kost een conversie 13 cycles, dus haal je 192ksps bij 2.5MHz, maar of de AVR het trekt weet ik niet. Je krijgt misschien ook last van de interne capaciteit van de ADC, dat filtert dan juist weer de hoge tonen eruit. Of dit significant is heb ik niet berekend of getest.)   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;(Je zou ook kunnen proberen het signaal met de ADC te samplen, maar dan moet je de ADC overklokken (2.5MHz?) en niet meer dan 8 bits gebruiken. Je hebt dan waarschijnlijk niet veel meer dan 3 a 4 bits (LSB) resolutie van het signaal, maar dat is beter dan 1. In free running mode kost een conversie 13 cycles, dus haal je 192ksps bij 2.5MHz, maar of de AVR het trekt weet ik niet. Je krijgt misschien ook last van de interne capaciteit van de ADC, dat filtert dan juist weer de hoge tonen eruit. Of dit significant is heb ik niet berekend of getest.)   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glu</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29949&amp;oldid=prev</id>
		<title>Glu: Created page with &quot;{{Project  |Name=Tibat  |Picture=Batty_finished.jpg  |Omschrijving=Version 2!  |Status=Initializing  |Contact=benadski }}  == &quot;Tiny bat detector kit&quot; ==  I am tired, please tr...&quot;</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Tibat&amp;diff=29949&amp;oldid=prev"/>
		<updated>2022-07-25T15:00:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Project  |Name=Tibat  |Picture=Batty_finished.jpg  |Omschrijving=Version 2!  |Status=Initializing  |Contact=benadski }}  == &amp;quot;Tiny bat detector kit&amp;quot; ==  I am tired, please tr...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Project&lt;br /&gt;
 |Name=Tibat&lt;br /&gt;
 |Picture=Batty_finished.jpg&lt;br /&gt;
 |Omschrijving=Version 2!&lt;br /&gt;
 |Status=Initializing&lt;br /&gt;
 |Contact=benadski&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Tiny bat detector kit&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
I am tired, please translate Dutch text yourself.&lt;br /&gt;
&lt;br /&gt;
Het was weer een groot succes, vooral jong, maar ook oud kwamen solderen, 36 kits zijn er inelkaar gezet, alle gingen werkend mee naar huis! Dit jaar heeft benadski (van Wilenzo) zich weer (net op tijd) druk gemaakt en kits ontwikkeld, geprogrammeerd en geleverd. Dit keer is met behulp van de ATtiny402 microcontroller een programmeerbare vleermuisdetector gemaakt. De microcontroller is eenvoudig te voorzien van nieuwe software met behulp van een USB serial converter en een 3k weerstand. &amp;#039;&amp;#039;&amp;#039;Let op: Verwijder eerst de batterij voordat er geprogrammeerd wordt!&amp;#039;&amp;#039;&amp;#039; Programmeren kan met behulp van de nieuwste versie van het Python 3 programma pyupdi. (python3 pyupdi.py -d tiny402 -c /dev/ttyUSB0 -v -f batty.hex) &lt;br /&gt;
&lt;br /&gt;
Let op: De IO_PROG interface heeft pin 1 rechts zitten, de pinnen tellen vlnr dus van 5 t/m 1, net als in het schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Schema =====&lt;br /&gt;
&lt;br /&gt;
Het schema hieronder is erg simpel en kan vast nog verder geoptimaliseerd worden. Het analoge deel tussen microfoon en AVR versterkt vooral de hoge tonen vanaf pak &amp;#039;m beet 10kHz. Doordat het signaal uit Q1 naast een directe verbinding met de AVR ook nog via een laagdoorlaatfilter naar de AVR gaat (beide signalen komen uit op de analoge comparator pins) ontstaat een differentieel signaal op de AC van de AVR. &lt;br /&gt;
&lt;br /&gt;
(Je zou ook kunnen proberen het signaal met de ADC te samplen, maar dan moet je de ADC overklokken (2.5MHz?) en niet meer dan 8 bits gebruiken. Je hebt dan waarschijnlijk niet veel meer dan 3 a 4 bits (LSB) resolutie van het signaal, maar dat is beter dan 1. In free running mode kost een conversie 13 cycles, dus haal je 192ksps bij 2.5MHz, maar of de AVR het trekt weet ik niet. Je krijgt misschien ook last van de interne capaciteit van de ADC, dat filtert dan juist weer de hoge tonen eruit. Of dit significant is heb ik niet berekend of getest.)  &lt;br /&gt;
&lt;br /&gt;
Zie het &amp;quot;Discussion&amp;quot; tabblad, bertrik heeft een idee voor heterodyne detectie. Dat zou een mooie software upgrade zijn, het verbetert de audio kwaliteit enorm! (AC vs. ADC input en 1 bit vs. PWM output, met daarbij nog een lineaire verschuiving in het geluid in plaats van een deling maakt het bijna een professioneel apparaatje.) Het mooie is dat bij de ATtiny402 de ADC veel meer opties heeft om op verschillende sample frequenties te draaien in continuous mode dan bij oudere AVR&amp;#039;s. Dus dit moet kunnen werken!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Source =====&lt;br /&gt;
&lt;br /&gt;
De source kan worden gecompileerd met AVR-GCC (nieuwste versie). Onderstaande code is snel inelkaar geflanst, je kunt er vast wat beters van maken! Als dat gelukt is, graag de code delen, je kunt het &amp;quot;Discussion&amp;quot; tabblad gebruiken om de source te posten. Ik zal de zooi binnenkort ook op github plaatsen, dan kun je vorken enzo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * t402code.c&lt;br /&gt;
 *&lt;br /&gt;
 * Created: 01/10/2019 15:22:39&lt;br /&gt;
 * Author : Wilenzo&lt;br /&gt;
 */ &lt;br /&gt;
&lt;br /&gt;
#define F_CPU 10000000UL // 20 MHz clock speed / 2 prescaler&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay_basic.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/sleep.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Pins&lt;br /&gt;
#define UAMP  1&lt;br /&gt;
#define BUTN  2&lt;br /&gt;
#define AOUT  3&lt;br /&gt;
#define NMIC  6&lt;br /&gt;
#define PMIC  7&lt;br /&gt;
&lt;br /&gt;
//Port&lt;br /&gt;
#define FALLING       0x03&lt;br /&gt;
#define INPUT_DISABLE 0x04&lt;br /&gt;
#define PULLUPEN      0x08&lt;br /&gt;
&lt;br /&gt;
//Analog Comparator&lt;br /&gt;
#define HYS_00        0x01 &lt;br /&gt;
#define HYS_10        0x03&lt;br /&gt;
#define HYS_25        0x05&lt;br /&gt;
#define HYS_50        0x07&lt;br /&gt;
#define AC_OFF        0x00&lt;br /&gt;
#define NEG_EDGE      0x20&lt;br /&gt;
&lt;br /&gt;
//Global variables&lt;br /&gt;
volatile uint8_t cntAC = 0;  //AC call counter, for frequency division&lt;br /&gt;
volatile uint8_t toAC  = 1;  //time-out flag for AC, silences output when active&lt;br /&gt;
volatile uint8_t fDiv  = 16; //Division factor for frequency of microphone 32kHz-&amp;gt;2kHz after reset, must never be lower than 2!&lt;br /&gt;
volatile uint8_t Zzz   = 0;  //Sleep trigger&lt;br /&gt;
&lt;br /&gt;
//Every low to high transition a counter is increased, except when a previous time-out is detected, then only the time-out is cleared.&lt;br /&gt;
ISR(AC0_AC_vect){&lt;br /&gt;
    AC0_STATUS |= 0x01;&lt;br /&gt;
    if (!(toAC)) ++cntAC; else toAC = 0; &lt;br /&gt;
    TCB0_CNT = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Timeout! Signal used to disable sound generation is setting cntAC to max.&lt;br /&gt;
ISR(TCB0_INT_vect){&lt;br /&gt;
    TCB0_INTFLAGS |= 0x01;&lt;br /&gt;
    toAC = 1;&lt;br /&gt;
    cntAC = 0xFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Wake-up from deep sleep or button pressed. Turn on RTC if it was turned off, else change division factor of frequency&lt;br /&gt;
ISR(PORTA_PORT_vect){&lt;br /&gt;
    if (RTC_CTRLA &amp;amp; 0x01){&lt;br /&gt;
        // Already running: Change division factor, selectable are: 2, 4, 8, 16, 32, 64 and 128&lt;br /&gt;
        while(RTC_STATUS &amp;amp; 0x02);&lt;br /&gt;
        RTC_CNT = 0;&lt;br /&gt;
        fDiv &amp;lt;&amp;lt;= 1; &lt;br /&gt;
        if (fDiv == 0) fDiv = 2; &lt;br /&gt;
        if (fDiv &amp;gt; 4) TCB0_CCMP = 1000; else TCB0_CCMP = 2000; //Select 10kHz or 5kHz lower detection limit (for divisions 2 and 4).&lt;br /&gt;
    } else {&lt;br /&gt;
        // Wake from sleep&lt;br /&gt;
        sleep_disable();&lt;br /&gt;
        Zzz = 0;&lt;br /&gt;
        while(RTC_STATUS &amp;amp; 0x01);&lt;br /&gt;
        RTC_CTRLA |= 0x01;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //Wait a while, then wait for release, wait more: poor man&amp;#039;s debounce function&lt;br /&gt;
    _delay_loop_2(0);&lt;br /&gt;
    _delay_loop_2(0);    &lt;br /&gt;
    _delay_loop_2(0);    &lt;br /&gt;
    while(!(PORTA_IN &amp;amp; 1&amp;lt;&amp;lt;BUTN));&lt;br /&gt;
    _delay_loop_2(0);&lt;br /&gt;
        &lt;br /&gt;
    //Turn on microphone amplifier, clear interrupt flags&lt;br /&gt;
    PORTA_OUTSET = (1&amp;lt;&amp;lt;UAMP);&lt;br /&gt;
    PORTA_INTFLAGS = 0xFF;&lt;br /&gt;
    RTC_INTFLAGS |= 0x02;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Auto power off after 5 minutes of button inactivity&lt;br /&gt;
ISR(RTC_CNT_vect){&lt;br /&gt;
    RTC_INTFLAGS |= 0x02;&lt;br /&gt;
    Zzz = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Init I/O, timers, interrupts etc...&lt;br /&gt;
void init(void){&lt;br /&gt;
    	//Set clock to 10MHz, should work from 2.7V and up.&lt;br /&gt;
      _PROTECTED_WRITE(CLKCTRL_MCLKCTRLA, CLKCTRL_CLKSEL_OSC20M_gc);&lt;br /&gt;
      _PROTECTED_WRITE(CLKCTRL_MCLKCTRLB, CLKCTRL_PEN_bm | CLKCTRL_PDIV_2X_gc);&lt;br /&gt;
&lt;br /&gt;
      //CPU: Round robin interrupt handling&lt;br /&gt;
      CPUINT_CTRLA = CPUINT_LVL0RR_bm;&lt;br /&gt;
&lt;br /&gt;
      //Port configuration&lt;br /&gt;
      PORTA_DIR = (1&amp;lt;&amp;lt;AOUT)|(1&amp;lt;&amp;lt;UAMP);&lt;br /&gt;
      PORTA_OUT = 0;&lt;br /&gt;
      PORTA_PIN1CTRL = INPUT_DISABLE;&lt;br /&gt;
      PORTA_PIN2CTRL = PULLUPEN | FALLING;&lt;br /&gt;
      PORTA_PIN3CTRL = INPUT_DISABLE;&lt;br /&gt;
      PORTA_PIN6CTRL = INPUT_DISABLE;&lt;br /&gt;
      PORTA_PIN7CTRL = INPUT_DISABLE;&lt;br /&gt;
      &lt;br /&gt;
      //Analog comparator&lt;br /&gt;
      AC0_CTRLA    = HYS_00 | NEG_EDGE; //0mV hysteresis, negative edge interrupt, on.&lt;br /&gt;
      AC0_MUXCTRLA = 0;                 //Normal pos/neg IO pins are used&lt;br /&gt;
      AC0_INTCTRL  = 0x01;              //Negative edge interrupt on&lt;br /&gt;
&lt;br /&gt;
      //Timer B (time-out check)&lt;br /&gt;
      TCB0_CCMP    = 1000; // 10000Hz interrupts, for ignoring lower frequencies, higher number =&amp;gt; lower frequency&lt;br /&gt;
      TCB0_CTRLA   = 0x01; // Counter on, peripheral speed (=&amp;gt; 10MHz)&lt;br /&gt;
      TCB0_INTCTRL = 0x01; // Interrupt on&lt;br /&gt;
&lt;br /&gt;
      //RTC, used for auto power off &lt;br /&gt;
      while(RTC_STATUS &amp;amp; 0x08);&lt;br /&gt;
      RTC_CMP      = 300;  // About 5 minutes of listening time before the unit is turned off &lt;br /&gt;
      while(RTC_STATUS &amp;amp; 0x02);&lt;br /&gt;
      RTC_CNT      = 0;&lt;br /&gt;
      RTC_INTCTRL  = 0x02; // Compare interrupt&lt;br /&gt;
      RTC_CLKSEL   = 0x01; // Set clock rate to 1024Hz&lt;br /&gt;
      while(RTC_STATUS &amp;amp; 0x01);&lt;br /&gt;
      RTC_CTRLA    = 0x51; // Turn RTC on, with 1024 prescaling factor.&lt;br /&gt;
&lt;br /&gt;
      //Sleep to power down mode (deep)&lt;br /&gt;
      SLPCTRL_CTRLA = 0x04;&lt;br /&gt;
&lt;br /&gt;
      //Enable interrupts&lt;br /&gt;
      sei();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    init();&lt;br /&gt;
&lt;br /&gt;
    while (1) &lt;br /&gt;
    {&lt;br /&gt;
        //Check sleepiness&lt;br /&gt;
        if (Zzz) {&lt;br /&gt;
            //beep&lt;br /&gt;
            PORTA_DIRSET = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
            for (uint16_t a=50; a&amp;lt;255; ++a){&lt;br /&gt;
              _delay_loop_2(a&amp;lt;&amp;lt;5);&lt;br /&gt;
              PORTA_OUTTGL = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            //Turn off all outputs, RTC too and reset RTC&lt;br /&gt;
            PORTA_OUT = 0;&lt;br /&gt;
            while(RTC_STATUS &amp;amp; 0x01);&lt;br /&gt;
            RTC_CTRLA &amp;amp;= 0xFE; &lt;br /&gt;
            while(RTC_STATUS &amp;amp; 0x02);&lt;br /&gt;
            RTC_CNT   = 0;            &lt;br /&gt;
            &lt;br /&gt;
            //Sleep (and unsleep after wake to be sure)&lt;br /&gt;
            sleep_enable();&lt;br /&gt;
            sleep_cpu();&lt;br /&gt;
            sleep_disable();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //Auto turn off underflow protection&lt;br /&gt;
        if(RTC_CNT &amp;gt; 300) RTC_CNT = 300;&lt;br /&gt;
&lt;br /&gt;
        //Check if output pin should be toggled or be turned off. This produces &amp;quot;sound&amp;quot;.&lt;br /&gt;
        if (fDiv &amp;lt; 2) fDiv = 2;&lt;br /&gt;
        if (cntAC &amp;gt;= (fDiv&amp;gt;&amp;gt;1)){&lt;br /&gt;
            if (cntAC == 0xFF){&lt;br /&gt;
                //Off&lt;br /&gt;
                PORTA_DIRCLR = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
                PORTA_OUTCLR = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
            } else {&lt;br /&gt;
                //Toggle&lt;br /&gt;
                cntAC -= (fDiv&amp;gt;&amp;gt;1);&lt;br /&gt;
                PORTA_DIRSET = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
                PORTA_OUTTGL = (1&amp;lt;&amp;lt;AOUT);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Glu</name></author>
	</entry>
</feed>