<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.blinkenarea.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ArneRossius</id>
	<title>BlinkenArea Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blinkenarea.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ArneRossius"/>
	<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php/Special:Contributions/ArneRossius"/>
	<updated>2026-09-14T09:18:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4968</id>
		<title>DuckMiniEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4968"/>
		<updated>2026-03-08T21:21:14Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: /* Version 5.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=SMD LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DuckMini&#039;&#039;&#039; is the &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt; version of the &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt; [[DuckEnglish|Duck]]. The circuit and software are mostly identical. More detailed information about the circuit and software can be found on the [[DuckEnglish|Duck project page]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The circuit is identical to the full-size duck except for the microcontroller. For cost reasons, the ATmega8 microcontroller was replaced with an ATtiny88 which is only available in an SMD package. Instead of the loose battery holder for 3 AA cells, this version uses a soldered-down holder for 3 AAA cells on the bottom side of the PCB. It is recommended to also stick a piece of double-sided foam tape (mirror mounting tape) in the corner opposite the battery holder&#039;s pins. Above the battery holder, the PCB is just large enough to provide space for the large tantalum capacitor and an &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt; pin header.&lt;br /&gt;
&lt;br /&gt;
Instead of using the large battery holder, the PCB also provides a footprint for a CR2032 button cell holder. Due to the lower voltage and the large internal resistance of the button cell, the quacking of the duck will be very quiet and the LEDs will be dimmer, but for a duck without sound which won&#039;t be turned on for days at a time, the button cell is still a good option.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Kit instructions Rev. 1.1]] for PCB Rev 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In version 2, the controller was replaced with a 14-pin type, either ATtiny84 or ATtiny804/814 can be used.&lt;br /&gt;
&lt;br /&gt;
The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Kit instructions Rev. 2.0]] for PCB Rev 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
As the ISP interface is sharing pins with the LEDs in this version, the always-on jumper as used in version 1 is no longer possible. Instead, the always-on mode can be activated by holding down the button while inserting the batteries. An automatic power-on when voltage is applied is not possible.&lt;br /&gt;
&lt;br /&gt;
ATtiny804/814 don&#039;t support the ISP interface, so the 2x3 pin header becomes useless when using these controllers. In-system programming is still possible by soldering a wire to the unused pin 10 if the controller and connecting it to a UPDI programmer. Of course, ground also has to be connected to the programmer. &lt;br /&gt;
&lt;br /&gt;
The PWM pins are different between ATtiny804/814 and ATtiny84. Pin 6 (PA7/OC0B on ATtiny84) can be set to the PWM signal WO0 with PORTMUX, requiring only a simple register setting at the beginning of the program. On pin 5 (PB2/OC0A on ATtiny84), no PWM signal is available. Instead, the CCL module is used to internally pass the WO1 signal through to LUT1-OUT, which in turn can be output on pin 5. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware version 2022-07-25]] for ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware version 2022-07-24]] for ATtiny804 and ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
For version 3, the controller was replaced again, this time with a one-time programmable Padauk PMS152. Both the 14-pin and 16-pin versions can be used, the extra 2 pins are not used. For development, the pin-compatible PFS154 with flash memory is also supported, but the LED outputs have different pin driver strengths, so some LEDs will be brighter than others. With the PMS152, all pins used for the LEDs have the same drive strength.&lt;br /&gt;
&lt;br /&gt;
As the PMS152 provides only 1280 14-bit words of ROM, an additional 24C64 EEPROM is necessary to hold the audio data. Larger EEPROMs can be used for longer audio. The audio format is the same as described in [[DuckEnglish|Duck]], the raw audio file (with a zero byte at the end!) is programmed into the EEPROM starting at address 0.&lt;br /&gt;
&lt;br /&gt;
Version 3.1 fixes two issues with version 3.0: it adds the missing pull-up resistor on the SDA line (SCL is always driven by the microcontroller) and it swaps PB3 &amp;amp; PB4.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Kit instructions Rev. 3.0]] for PCB Rev 3.0&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Kit instructions Rev. 3.1]] for PCB Rev 3.1&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware must be assembled with [http://john.ccac.rwth-aachen.de:8000/as/ AS] and programmed with the [https://free-pdk.github.io/ Easy-PDK programmer]. As mentioned above, the version 3.0 boards have a layout error that requires a firmware fix. For these boards only, &amp;quot;PCB_30_FIX&amp;quot; has to be set to 1.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware version 3]] for PMS152 and PFS154 (for PCB revisions 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
This version only exists as a [[DuckEnglish|full-size duck]].&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 replaces the combination of Padauk microcontroller and external EEPROM with a cheap ARM microcontroller with 20 KiB of Flash memory. The controller (PY32F002A) can be connected to a programmer (CMSIS-DAP compatible) and re-programmed as desired using solder pads on the Duck PCB.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Kit instructions Rev. 5.0]] for PCB Rev 5.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware is written in Cortex M0+ assembly and can be assembled with the usual GNU tools for ARM controllers (arm-none-eabi-*, Debian package gcc-arm-none-eabi). In the assembly file, there&#039;s an option for boards without transistors in the LED matrix, it should be set to 0 for the Duck Mini. For programming with pyocd, you also need the &amp;quot;Device Family Pack&amp;quot; from the manufacturer, available at https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/. In pyocd.yaml (part of the Duck firmware), you have to change the filename for the pack to match the version you downloaded.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware version 2025-08-04]] for PY32F002A&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v2.0.jpg&amp;diff=4967</id>
		<title>File:RetroBlink v2.0.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v2.0.jpg&amp;diff=4967"/>
		<updated>2026-02-15T19:32:56Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4966</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4966"/>
		<updated>2026-02-15T19:32:33Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototyp (v1.0)]]&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v2.0.jpg|thumb|Version mit gedruckter Schaltung (v2.0)]]&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Die Werte einiger passiver Bauelemente wurden auf weniger krumme Werte geändert, und die Schaltung wurde auf möglichst wenig verschiedene Widerstandswerte optimiert.&lt;br /&gt;
&lt;br /&gt;
Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4965</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4965"/>
		<updated>2026-02-15T19:31:32Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complementary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complementary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototype (v1.0)]]&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v2.0.jpg|thumb|PCB Version (v2.0)]]&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The values of some passive components were changed to more common ones, and the circuit was optimised to require as few diffenent resistor values as possible.&lt;br /&gt;
&lt;br /&gt;
The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4964</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4964"/>
		<updated>2026-02-15T19:30:42Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complementary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complementary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototype (v1.0)]]&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The values of some passive components were changed to more common ones, and the circuit was optimised to require as few diffenent resistor values as possible.&lt;br /&gt;
&lt;br /&gt;
The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4963</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4963"/>
		<updated>2026-02-15T19:30:32Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototyp (v1.0)]]&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Die Werte einiger passiver Bauelemente wurden auf weniger krumme Werte geändert, und die Schaltung wurde auf möglichst wenig verschiedene Widerstandswerte optimiert.&lt;br /&gt;
&lt;br /&gt;
Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v1.0.jpg&amp;diff=4962</id>
		<title>File:RetroBlink v1.0.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v1.0.jpg&amp;diff=4962"/>
		<updated>2026-02-15T19:29:36Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4961</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4961"/>
		<updated>2026-02-15T19:29:26Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototyp (v1.0)]]&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Die Werte einiger passiver Bauelemente wurden auf weniger krumme Werte geändert, und die Schaltung wurde auf möglichst wenig verschiedene Widerstandswerte optimiert.&lt;br /&gt;
&lt;br /&gt;
Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4960</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4960"/>
		<updated>2026-02-15T19:28:35Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complementary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complementary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
[[File:RetroBlink_v1.0.jpg|thumb|Prototype (v1.0)]]&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The values of some passive components were changed to more common ones, and the circuit was optimised to require as few diffenent resistor values as possible.&lt;br /&gt;
&lt;br /&gt;
The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Projects&amp;diff=4959</id>
		<title>Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Projects&amp;diff=4959"/>
		<updated>2026-02-15T19:27:15Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{FlagDe|target=Projekte}}&lt;br /&gt;
&#039;&#039;[[Main_PageEnglish|back to Main Page]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
also see [[:Category:Projects]]&lt;br /&gt;
&lt;br /&gt;
Almost all [[BlinkenAreaEnglish|BlinkenArea]] projects are listed here. Please enter new projects in alphabetical order and add them to the &amp;quot;Projects&amp;quot; category.&lt;br /&gt;
&lt;br /&gt;
{| valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLightsEnglish|AntiKippenLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLightsBlueBoxEnglish|AntiKippenLightsBlueBox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLights-AtmelEnglish|AntiKippenLights-Atmel]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLights-MiniEnglish|AntiKippenLights-Mini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeListenerEnglish|ArcadeListener]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMaxiEnglish|ArcadeMaxi]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMicroEnglish|ArcadeMicro]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMicroColourEnglish|ArcadeMicroColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMidiEnglish|ArcadeMidi]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ARCADEminiEnglish|ARCADEmini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcademiniumEnglish|Arcademinium]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeNanoEnglish|ArcadeNano]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeNanoColourEnglish|ArcadeNanoColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeOnMyWallEnglish|ArcadeOnMyWall]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ATmegaXX8 LCD Board English|ATmegaXX8 LCD Board]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AvrDcfClockEnglish|AvrDcfClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bl_proxyEnglish|Bl_proxy]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlimpEnglish|Blimp]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkAloneEnglish|BlinkAlone]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenAppletEnglish|BlinkenApplet]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenBadgeEnglish|BlinkenBadge]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenDotterEnglish|BlinkenDotter]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenHALEnglish|BlinkenHAL]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenINIEnglish|BlinkenINI]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenKneesEnglish|BlinkenKnees]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDsEnglish|BlinkenLEDs]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDsPlusEnglish|BlinkenLEDsPlus]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDsPlusColourEnglish|BlinkenLEDsPlusColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLibEnglish|BlinkenLib]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BLINKENminiEnglish|BLINKENmini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenNumsEnglish|BlinkenNums]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenPlayerEXXTREMEEnglish|BlinkenPlayerEXXTREME]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenPlusEnglish|BlinkenPlus]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSimVbEnglish|BlinkenSimVb]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSistersEnglish|BlinkenSisters]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSnakeEnglish|BlinkenSnake]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenToolEnglish|BlinkenTool]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenWallEnglish|BlinkenWall]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenXMMSEnglish|BlinkenXMMS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkoMatEnglish|BlinkoMat]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkOSEnglish|BlinkOS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkServEnglish|BlinkServ]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkstroemEnglish|Blinkström]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkstroemAdvancedEnglish|BlinkströmAdvanced]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BSA-PlusEnglish|BlinkströmAdvanced Plus]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkstroemColourEnglish|Blinkström Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkTischEnglish|BlinkTisch]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkyEnglish|Blinky]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkyLampsEnglish|BlinkyLamps]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlPlayerEnglish|BlPlayer]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlueBoxEnglish|bluebox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlueboxMiniEnglish|blueboxMini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BulbEnglish|bulb]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[C64-LightsEnglish|C64-Lights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[CCLC32English|CCLC32]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ColorCurtainEnglish|ColorCurtain]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DerSpringendePunktEnglish|DerSpringendePunkt]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DotBloxEnglish|DotBlox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DuckEnglish|Duck]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DuckMiniEnglish|DuckMini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[EPKOTEnglish|EPKOT]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[EtherSexBlinkenEnglish|EtherSexBlinken]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ExplainMultiplexingEnglish|Explain Multiplexing]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[FlanethEnglish|flaneth]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[GEMEnglish|GEM]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[GliderEnglish|Glider]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[GroggyClockEnglish|GroggyClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[High Rise Leipzig City|HighRiseLeipzigCity]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[KippenLightsEnglish|KippenLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[L8CubeEnglish|L8Cube]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LcdClockEnglish|LCD Clock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LED-23English|LED-23]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LED-CubeEnglish|LED-Cube]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LedShapesEnglish|LED Shapes]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LightChaserRingEnglish|Light Chaser Ring]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LittleLightsEnglish|LittleLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LogicLightsEnglish|LogicLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LogoLightsEnglish|LogoLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiBlinkEnglish|MaxiBlink]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiBlink_RGBEnglish|MaxiBlink RGB]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiLampsEnglish|MaxiLamps]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MBSEnglish|MBS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MegaClockEnglish|MegaClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MicroscopeEnglish|Microscope]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MovieMatrixEnglish|MovieMatrix]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[OrnamentEnglish|Ornament]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[OrnaMatrixEnglish|OrnaMatrix]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[PapierPixelEnglish|PapierPixel]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ProjektBlinkyEnglish|ProjektBlinky]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[RetroBlinkEnglish|RetroBlink]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[RotArcadeEnglish|RotArcade]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ShifterEnglish|Shifter]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[SimpleClockEnglish|SimpleClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[StreamSplitterEnglish|StreamSplitter]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsEnglish|TicTacLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsColourEnglish|TicTacLights Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsNanoEnglish|TicTacLights Nano]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsNanoColourEnglish|TicTacLights Nano Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLights USB RetrofitEnglish|TicTacLights USB Retrofit]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TROIAEnglish|TROIA]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TROIA Prototype|TROIAPrototype]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TroiCadeEnglish|TroiCade]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[UDPplayerEnglish|UDPplayer]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[video2bmlEnglish|video2bml]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XMasLightsEnglish|XMasLights]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Howto:Projects|How to use a BlinkenArea Project.]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Projekte&amp;diff=4958</id>
		<title>Projekte</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Projekte&amp;diff=4958"/>
		<updated>2026-02-15T19:26:29Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{FlagUK|target=Projects}}&lt;br /&gt;
&#039;&#039;[[Main_Page|zurück zur Startseite]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[:Category:Projekte]]&lt;br /&gt;
&lt;br /&gt;
Hier sind (fast) alle Projekte der [[BlinkenArea]] aufgelistet. Neue Projekte bitte in alphabetischer Reihenfolge einsortieren und in die Kategorie &amp;quot;Projekte&amp;quot; eintragen.&lt;br /&gt;
&lt;br /&gt;
{| valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLightsBlueBox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLights-Atmel]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AntiKippenLights-Mini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeListener]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMaxi]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMicro]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMicroColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeMidi]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ARCADEmini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Arcademinium]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeNano]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeNanoColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ArcadeOnMyWall]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ATmegaXX8 LCD Board]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[AvrDcfClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bl_proxy]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Blimp]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkAlone]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenApplet]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenBadge]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenBag]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenDotter]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenHAL]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenINI]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenKnees]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDs]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDsPlus]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLEDsPlusColour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenLib]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BLINKENmini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenNums]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenPlayerEXXTREME]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenPlus]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSimVb]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSisters]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenSnake]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenTool]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenWall]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkenXMMS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkoMat]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkOS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkServ]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Blinkstroem|Blinkström]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkstroemAdvanced|BlinkströmAdvanced]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BSA-Plus|BlinkströmAdvanced Plus]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkstroemColour|Blinkström Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkTisch]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Blinky]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlinkyLamps]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlPlayer]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlueBox|bluebox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[BlueboxMini|blueboxMini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bulb|bulb]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[C64-Lights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[CCLC32]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Chaosknoten]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[City-Hochhaus Leipzig]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ColorCurtain]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DerSpringendePunkt]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DotBlox]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Duck]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[DuckMini]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[EPKOT]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[EtherSexBlinken]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ExplainMultiplexing|Explain Multiplexing]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Flaneth|flaneth]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[GEM]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Glider]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[GroggyClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[KippenLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[L8Cube]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LcdClock|LCD Clock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LED-23]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LED-Cube]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LedShapes|LED Shapes]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LightChaserRing|Light Chaser Ring]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LittleLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LogicLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[LogoLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiBlink]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiBlink_RGB|MaxiBlink RGB]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MaxiLamps]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MBS]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MegaClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Microscope]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[MovieMatrix]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Ornament]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[OrnaMatrix]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[PapierPixel]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[ProjektBlinky]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[RetroBlink]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[RotArcade]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Shifter]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[SimpleClock]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[StreamSplitter]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;&amp;quot;|&amp;lt;ul style=&amp;quot;list-style-type:circle&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLights]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsColour|TicTacLights Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsNano|TicTacLights Nano]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLightsNanoColour|TicTacLights Nano Colour]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TicTacLights USB Retrofit]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TROIA]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TROIA Prototyp|TROIAPrototyp]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[TroiCade]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[UDPplayer]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[video2bml]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XMasLights]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Howto:Projekte|Wie benutze ich ein BlinkenArea Projekt?]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4957</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4957"/>
		<updated>2026-02-14T16:53:03Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Die Werte einiger passiver Bauelemente wurden auf weniger krumme Werte geändert, und die Schaltung wurde auf möglichst wenig verschiedene Widerstandswerte optimiert.&lt;br /&gt;
&lt;br /&gt;
Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4956</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4956"/>
		<updated>2026-02-14T16:51:30Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complementary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complementary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The values of some passive components were changed to more common ones, and the circuit was optimised to require as few diffenent resistor values as possible.&lt;br /&gt;
&lt;br /&gt;
The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4955</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4955"/>
		<updated>2026-02-14T16:48:13Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complementary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complementary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4954</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4954"/>
		<updated>2026-02-14T16:47:53Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover_tray.stl&amp;diff=4953</id>
		<title>File:RetroBlink cover tray.stl</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover_tray.stl&amp;diff=4953"/>
		<updated>2026-02-14T16:47:36Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover_lid.stl&amp;diff=4952</id>
		<title>File:RetroBlink cover lid.stl</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover_lid.stl&amp;diff=4952"/>
		<updated>2026-02-14T16:47:34Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover.stl&amp;diff=4951</id>
		<title>File:RetroBlink cover.stl</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover.stl&amp;diff=4951"/>
		<updated>2026-02-14T16:47:31Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover.scad&amp;diff=4950</id>
		<title>File:RetroBlink cover.scad</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_cover.scad&amp;diff=4950"/>
		<updated>2026-02-14T16:47:06Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_instructions-rev2.0.pdf&amp;diff=4949</id>
		<title>File:RetroBlink instructions-rev2.0.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_instructions-rev2.0.pdf&amp;diff=4949"/>
		<updated>2026-02-14T16:46:30Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v1.0.png&amp;diff=4948</id>
		<title>File:RetroBlink v1.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v1.0.png&amp;diff=4948"/>
		<updated>2026-02-14T16:46:16Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v2.0.png&amp;diff=4947</id>
		<title>File:RetroBlink v2.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink_v2.0.png&amp;diff=4947"/>
		<updated>2026-02-14T16:46:03Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:RetroBlink-project-image.jpg&amp;diff=4946</id>
		<title>File:RetroBlink-project-image.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:RetroBlink-project-image.jpg&amp;diff=4946"/>
		<updated>2026-02-14T16:45:04Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4945</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4945"/>
		<updated>2026-02-14T16:44:04Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink ist eine Version des [[MaxiBlink]] ohne ICs. Es verwendet außerdem eine Matrix mit 5x5 statt 4x6 LEDs, und die &amp;quot;Zeilen&amp;quot;- sowie &amp;quot;Spalten&amp;quot;-Leitungen sind in dieser Version beide diagonal verlegt, um eine andere Optik bei den Mustern zu erhalten.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Die Schaltung basiert auf einem 10-Bit [https://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, welches aus bistabilen Kippschaltungen (Flip-Flops) aus je 2 Transistoren zusammengesetzt ist. Jede Kippschaltung wirkt auf die Eingänge der nächsten Stufe, so dass diese bei einem Taktimpuls den Zustand der vorhergehenden Stufe übernimmt. Die erste Stufe wird von einem XOR-Gatter angesteuert, welches die für die Rückkopplung ausgewählten Ausgänge miteinander verknüpft (siehe Link oben). Um die Anzahl der Transistoren niedrig zu halten verwendet die Rückkopplung nur 2 Ausgänge, das XOR-Gatter braucht daher nur 2 Transistoren. Ein weiterer Transistor erzeugt das Komplement des Ausgangssignals, welches für die Ansteuerung der Kippstufe notwendig ist. &lt;br /&gt;
&lt;br /&gt;
Die Transistoren in den Kippstufen treiben die LED-Matrix direkt, daher verwenden 5 Stufen NPN-Transistoren um die Kathoden-Leitungen zu treiben, und 5 Stufen verwenden PNP-Transistoren um die Anoden-Leitungen zu treiben. Diese Mischung aus Transistortypen macht es notwendig, dass der Oszillator gleichzeitig negative Impulse (für die NPN-Stufen) und positive Impulse (für die PNP-Stufen) erzeugt. Eine einfache Schaltung mit 2 Transistoren ist dafür ausreichend. Die Geschwindigkeit des Oszillators, d.h. die Anzeigedauer jedes Musters, kann mit einem Potentiometer in der Oszillatorschaltung eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kippstufen sind durch die LEDs einseitig belastet und neigen daher dazu, beim Einschalten die unbelasteten Seite zu aktivieren. Da die LEDs abwechselnd mit den direkten und inversen Ausgängen der Kippstufen verbunden sind, wird verhindert, dass alle Kippstufen auf &amp;quot;0&amp;quot; (inverser Ausgang aktiv) starten, was das Anlaufen der Schaltung verhindern würde (und ein Problem beim MaxiBlink war). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 existiert nur als Prototyp auf einer Lochrasterplatine mit rechteckigen LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Für diese Version wurde eine gedruckte Schaltung entwickelt, so dass die Kippstufen zwischen den LEDs verteilt werden konnten, wodurch die Platine deutlich kleiner wurde. Im Schaltplan ist kein Wert für die Strombegrenzungswiderstände für die LEDs angegeben; der Bausatz enthält 1&amp;amp;thinsp;k&amp;amp;Omega;-Widerstänge, die für die meisten effizienten LEDs gut funktionieren, aber für Typen mit geringer Effizient (insbesondere grün-gelbe LEDs) sollten Widerstände mit geringerem Wert eingesetzt werden. Weniger als 270&amp;amp;thinsp;&amp;amp;Omega; sollten es allerdings nicht sein, damit die Transistoren nicht überlastet werden, andernfalls kann es passieren, dass die Kippstufen nicht mehr zuverlässig umschalten.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Dieses Gehäuse kann 3D-gedruckt und mit der Platine verschraubt werden. Es wird eine Diffusorfolie benötigt, die im einfachsten Fall aus einem Blatt Papier bestehen kann, besser ist aber ein spezielles Material wie z.B. eine #225 &amp;quot;Neutral Density Frost&amp;quot; Filterfolie aus dem Bühnenbereich. Das Gehäuse hat außerdem eine optionale Abdeckung (tray) für die Platinenunterseite, um Kurzschlüsse mit Metallteilen zu verhindern.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Auch auf Printabes verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|Alle Teile]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front-Abdeckung]] (STL file) - in weiß drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Frontblende (lid)]] (STL file) - in schwarz drucken&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rückseitige Abdeckung (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Fotos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4944</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4944"/>
		<updated>2026-02-14T16:18:02Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complimentary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complimentary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4943</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4943"/>
		<updated>2026-02-14T16:17:38Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=RetroBlink&lt;br /&gt;
|Bild=RetroBlink-project-image.jpg&lt;br /&gt;
|Jahr= 2022, 2025&lt;br /&gt;
|Pixel= 25&lt;br /&gt;
|Farben=2&lt;br /&gt;
|Leuchtmittel=5mm LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RetroBlink is a version of [[MaxiBlinkEnglish|MaxiBlink]] without ICs. It also changes the matrix size from 4x6 to 5x5, and uses diagonal lines for both &amp;quot;rows&amp;quot; and &amp;quot;columns&amp;quot; to get a different look for the patterns.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
The operation is based on a 10 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register, built from flip-flop stages using 2 transistors each. Each stage is coupled to the output of the previous one, so it switches to the previous stage&#039;s value when a clock pulse is applied. The first stage is driven by an XOR gate which combines the signals from the outputs selected for the feedback (see link above). To reduce the number of transistors required, the feedback uses only 2 outputs, so the XOR gate only needs 2 transistors with a 3rd transistor added to generate the complement signal required to drive the flip-flop.&lt;br /&gt;
&lt;br /&gt;
The flip-flop transistors drive the LED matrix directly, so there are 5 stages using NPN transistors to drive the cathodes lines, and 5 stages using PNP transistors driving the anode lines. This mix of transistor types requires the oscillator to provide both negative pulses (to drive the NPN stages) and positive pulses (to drive the PNP stages) at exactly the same time. A simple design with only 2 transistors was sufficient for this. The speed of the oscillator, and thus the duration each pattern is shown, can be adjusted with a potentiometer in the oscillator circuit.&lt;br /&gt;
&lt;br /&gt;
As the flip-flop stages are unevenly loaded with one side driving the LEDs, they tend to switch to the side without load at power-on. As the LEDs are alternately connected to the true and complimentary outputs of the stages, this ensures the shift register doesn&#039;t turn on with all stages set to &amp;quot;zero&amp;quot; (complimentary output active), which would prevent the circuit from starting up (and which has been a problem in the MaxiBlink design). &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
Version 1.0 was only built as a prototype on perfboard, using rectangular LEDs.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
&lt;br /&gt;
=== Version 2.0 ===&lt;br /&gt;
&lt;br /&gt;
In this version, a proper PCB was designed, which allowed the flip-flop circuits to be moved in-between the LEDs, making the board a lot smaller. The LED current limiting resistors are shown without a value in the schematic; the kits use 1&amp;amp;thinsp;k&amp;amp;Omega; which works with most high-brightness LEDs, but for low efficienty types (especially yellow-green LEDs) they can be reduced. They shouldn&#039;t be much lower than 270&amp;amp;thinsp;&amp;amp;Omega; to avoid overloading the transistors, which could stop the flip-flops from toggling reliably.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:RetroBlink_v2.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:RetroBlink_instructions-rev2.0.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. It requires a diffusor sheet for best effect, which could be a sheet of paper, or a more advanced material such as a #225 &amp;quot;Neutral Density Frost&amp;quot; stage lighting filter sheet. There is also an optional bottom cover (tray) to protect the underside of the PCB from being shorted by metal objects.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/https://www.printables.com/model/1600948-front-rear-covers-for-blinkenarea-retroblink-kit Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:RetroBlink_cover.scad|All parts]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:RetroBlink_cover.stl|Front cover]] (STL file) - print in white&lt;br /&gt;
* [[:Media:RetroBlink_cover_lid.stl|Front cover lid]] (STL file) - print in black, clips onto the front cover&lt;br /&gt;
* [[:Media:RetroBlink_cover_tray.stl|Rear cover (tray)]] (STL file) - optional&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
https://arne.blinkenarea.org/RetroBlink/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGB&amp;diff=4942</id>
		<title>MaxiBlink RGB</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGB&amp;diff=4942"/>
		<updated>2026-02-14T14:31:52Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{Infobox&lt;br /&gt;
|Name=MaxiBlink RGB&lt;br /&gt;
|Bild=MaxiblinkRGB-project-image.jpg&lt;br /&gt;
|Jahr= 2022&lt;br /&gt;
|Pixel= 24&lt;br /&gt;
|Farben=7 (rot, grün, blau, gelb, türkis, violett, weiß)&lt;br /&gt;
|Leuchtmittel=5mm RGB-LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MaxiBlink RGB ist die farbige Version des [[MaxiBlink]]. Es besteht aus einer 4x6 LED-Matrix, die in zufälligen Mustern und Farben aufleuchtet, gesteuert von einem Maximalfolgen-Schieberegister, das als Pseudozufallszahlengenerator dient.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&lt;br /&gt;
Das MaxiBlink RGB basiert auf einem 18-Bit [http://de.wikipedia.org/wiki/Maximum_Length_Sequence Maximalfolgen]-Schieberegister, an jedem Flipflop ist entweder eine Zeile oder eine Spalte angeschlossen. Jede LED-Zeile hat drei &amp;quot;virtuelle Zeilen&amp;quot;, eine pro Farbe. Die Zeilen sind diagonal verdrahtet, damit die Muster nicht zu &amp;quot;eckig&amp;quot; aussehen. Getaktet wird das Schieberegister von einem gewöhnlichen 555-Oszillator. Die Schaltung hat keinen Power-On-Reset, sollten also beim Einschalten zufällig alle Flipflops auf &amp;quot;0&amp;quot; stehen, kommt die Schaltung nicht in Gang und alle LEDs bleiben dunkel. Da das mit 74HC-Schieberegistern recht häufig zu passieren scheint, kann die so Platine modifiziert werden, dass das vierte XOR-Gatter eine der Rückkopplungen am Schieberegister invertiert. Mit der Modifikation läuft die Schaltung nicht an, wenn alle Flipflops auf &amp;quot;1&amp;quot; stehen, was offenbar nur selten vorkommt. Ab version 1.1 ist diese Modifikation bereits in der Schaltung enthalten.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Die Widerstände für die LEDs sollten passend zu den verwendeten LEDs ausgewählt werden, um die besten Farben zu bekommen. Für die in den Bausätzen verwendeten LEDs haben sich diese Werte als gut erwiesen:&lt;br /&gt;
* rot: 2,7&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* grün: 10&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* blau: 8,2&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.0.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.0.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-mod-rev1.0.pdf|Anleitung zur Modifikation der Platine]] (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 ===&lt;br /&gt;
&lt;br /&gt;
Die Modifikation der Platine ist in dieser Version nicht mehr nötig, außerdem ist auf der Platine die Beschriftung der Plus- und Minus-Pads korrigiert.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 LS ===&lt;br /&gt;
&lt;br /&gt;
Verwendet 74LS- statt 74HC-ICs. Da 74LS nur Strom senken, aber nicht treiben kann, sind als Zeilentreiber 6 Transistoren notwendig.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1-ls.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.1-ls.pdf|Bausatz-Anleitung]] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Gehäuse ==&lt;br /&gt;
&lt;br /&gt;
Hier gibt es einen Entwurf für eine Frontplatte, die 3D-gedruckt und auf die Platine geschraubt werden kann. Die LEDs gucken durch Löcher vorne aus trichterförmigen Löchern heraus. Besonders gut sieht es aus, wenn die Frontplatte aus transparentem Material gedruckt wird.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/1600920-front-cover-for-blinkenarea-maxiblink-rgb Auch bei Printables verfügbar.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.scad|Frontplatte]] (OpenSCAD-Code)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.stl|Frontplatte]] (STL-Datei für Version 1.0 und 1.1)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover_ls.stl|Frontplatte]] (STL-Datei für Version 1.1-LS)&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
http://arne.blinkenarea.org/MaxiBlink%20RGB/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGBEnglish&amp;diff=4941</id>
		<title>MaxiBlink RGBEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGBEnglish&amp;diff=4941"/>
		<updated>2026-02-14T14:30:47Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=MaxiBlink RGB&lt;br /&gt;
|Bild=MaxiblinkRGB-project-image.jpg&lt;br /&gt;
|Jahr= 2022&lt;br /&gt;
|Pixel= 24&lt;br /&gt;
|Farben=7 (red, green, blue, yellow, cyan, pink, white)&lt;br /&gt;
|Leuchtmittel=5mm RGB LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MaxiBlink RGB is the more colourful version of the [[MaxiBlinkEnglish|MaxiBlink]]. It consists of a 4x6 LED matrix that lights up in seemingly random patterns and colours, controlled by a linear feedback shift register acting as a pseudo-random number generator.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
MaxiBlink RGB is based on an 18 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register with one row or column of the LED matrix connected to each flip-flop. Each row of LEDs has three &amp;quot;virtual columns&amp;quot;, one for each colour. The rows are connected diagonally to prevent the patterns to be too &amp;quot;rectangular&amp;quot;. A 555 oscillator is clocking the shift register chain. The circuit doesn&#039;t have a power-on reset, so if all flip-flop stages are set to &amp;quot;0&amp;quot; when powering on, the circuit won&#039;t start up and all LEDs will remain dark. As this appears to happen regularly with 74HC shift registers, the board can be modified to use the 4th XOR gate to invert one of the feedback taps, so now the circuit wouldn&#039;t start up if all flip-flop stages are set to &amp;quot;1&amp;quot;, which doesn&#039;t appear to happen very often. In version 1.1, the circuit has been modified to include this mod.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
The resistors for the LEDs should be chosen to fit the LEDs used in order to get the best colours. For the kits, the following values have been used:&lt;br /&gt;
* red: 2.7&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* green: 10&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* blue: 8.2&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.0.pdf|Kit instructions]]&lt;br /&gt;
* [[:Media:Maxiblink-rgb-mod-rev1.0.pdf|PCB modification instructions]]&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 ===&lt;br /&gt;
&lt;br /&gt;
The PCB modification is no longer necessary with this version. Also, the silkscreen plus/minus labels for the power supply pads have been corrected.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 LS ===&lt;br /&gt;
&lt;br /&gt;
This version uses 74LS instead of 74HC ICs. As 74LS can only sink current, but not source it, 6 additional row driver transistors are necessary.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1-ls.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.1-ls.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. The LEDs stick out in the front through funnel-shaped holes. The effect looks particularly nice if the cover is printed with transparent or translucent material.&lt;br /&gt;
&lt;br /&gt;
[https://www.printables.com/model/1600920-front-cover-for-blinkenarea-maxiblink-rgb Also available on Printables.]&lt;br /&gt;
&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.scad|Front cover]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.stl|Front cover]] (STL file for versions 1.0 and 1.1)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover_ls.stl|Front cover]] (STL file for version 1.1-LS)&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
http://arne.blinkenarea.org/MaxiBlink%20RGB/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGBEnglish&amp;diff=4940</id>
		<title>MaxiBlink RGBEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=MaxiBlink_RGBEnglish&amp;diff=4940"/>
		<updated>2026-02-14T14:30:05Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
{{InfoboxEnglish&lt;br /&gt;
|Name=MaxiBlink RGB&lt;br /&gt;
|Bild=MaxiblinkRGB-project-image.jpg&lt;br /&gt;
|Jahr= 2022&lt;br /&gt;
|Pixel= 24&lt;br /&gt;
|Farben=7 (red, green, blue, yellow, cyan, pink, white)&lt;br /&gt;
|Leuchtmittel=5mm RGB LEDs&lt;br /&gt;
|Leistung= &lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MaxiBlink RGB is the more colourful version of the [[MaxiBlinkEnglish|MaxiBlink]]. It consists of a 4x6 LED matrix that lights up in seemingly random patterns and colours, controlled by a linear feedback shift register acting as a pseudo-random number generator.&lt;br /&gt;
&lt;br /&gt;
== Mode of Operation ==&lt;br /&gt;
&lt;br /&gt;
MaxiBlink RGB is based on an 18 bit [http://en.wikipedia.org/wiki/Maximum_length_sequence Maximum Length Sequence] shift register with one row or column of the LED matrix connected to each flip-flop. Each row of LEDs has three &amp;quot;virtual columns&amp;quot;, one for each colour. The rows are connected diagonally to prevent the patterns to be too &amp;quot;rectangular&amp;quot;. A 555 oscillator is clocking the shift register chain. The circuit doesn&#039;t have a power-on reset, so if all flip-flop stages are set to &amp;quot;0&amp;quot; when powering on, the circuit won&#039;t start up and all LEDs will remain dark. As this appears to happen regularly with 74HC shift registers, the board can be modified to use the 4th XOR gate to invert one of the feedback taps, so now the circuit wouldn&#039;t start up if all flip-flop stages are set to &amp;quot;1&amp;quot;, which doesn&#039;t appear to happen very often. In version 1.1, the circuit has been modified to include this mod.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
The resistors for the LEDs should be chosen to fit the LEDs used in order to get the best colours. For the kits, the following values have been used:&lt;br /&gt;
* red: 2.7&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* green: 10&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
* blue: 8.2&amp;amp;nbsp;k&amp;amp;Omega;&lt;br /&gt;
&lt;br /&gt;
=== Version 1.0 ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.0.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.0.pdf|Kit instructions]]&lt;br /&gt;
* [[:Media:Maxiblink-rgb-mod-rev1.0.pdf|PCB modification instructions]]&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 ===&lt;br /&gt;
&lt;br /&gt;
The PCB modification is no longer necessary with this version. Also, the silkscreen plus/minus labels for the power supply pads have been corrected.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
&lt;br /&gt;
=== Version 1.1 LS ===&lt;br /&gt;
&lt;br /&gt;
This version uses 74LS instead of 74HC ICs. As 74LS can only sink current, but not source it, 6 additional row driver transistors are necessary.&lt;br /&gt;
&lt;br /&gt;
* [[:Image:MaxiblinkRGB_v1.1-ls.png|Schematic diagram]] (PNG)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.sch|Schematic diagram]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_v1.1-ls.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Maxiblink-rgb-instructions-rev1.1-ls.pdf|Kit instructions]]&lt;br /&gt;
&lt;br /&gt;
== Enclosure ==&lt;br /&gt;
&lt;br /&gt;
This is a design for a front cover, which can be 3D printed and screwed to the PCB. The LEDs stick out in the front through funnel-shaped holes. The effect looks particularly nice if the cover is printed with transparent or translucent material.&lt;br /&gt;
&lt;br /&gt;
Also available on Printables: https://www.printables.com/model/1600920-front-cover-for-blinkenarea-maxiblink-rgb&lt;br /&gt;
&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.scad|Front cover]] (OpenSCAD code)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover.stl|Front cover]] (STL file for versions 1.0 and 1.1)&lt;br /&gt;
* [[:Media:MaxiblinkRGB_front_cover_ls.stl|Front cover]] (STL file for version 1.1-LS)&lt;br /&gt;
&lt;br /&gt;
== Photos/Video ==&lt;br /&gt;
&lt;br /&gt;
http://arne.blinkenarea.org/MaxiBlink%20RGB/gallery.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=User:ArneRossius&amp;diff=4939</id>
		<title>User:ArneRossius</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=User:ArneRossius&amp;diff=4939"/>
		<updated>2026-01-01T16:27:40Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Suspect_arne.jpg|thumb]]&lt;br /&gt;
* Name: Arne Rossius&lt;br /&gt;
* DECT/GSM (during events): 2082&lt;br /&gt;
* E-Mail: [mailto:arne&amp;amp;#64;blinkenarea.org arne&amp;amp;#64;blinkenarea.org]&lt;br /&gt;
* Website: http://www.arnerossius.de/&lt;br /&gt;
* &amp;lt;strike&amp;gt;ICQ: 136257698&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Jabber: ArneRossius&amp;amp;#64;jabber.ccc.de&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Country: UK&lt;br /&gt;
* Languages: German, English&lt;br /&gt;
* BlinkenArea Projects:&lt;br /&gt;
** Software Projects&lt;br /&gt;
*** [[BlinkenPlus]]&lt;br /&gt;
*** [[BlinkstroemAdvanced|BlinkströmAdvanced]] Stream Software&lt;br /&gt;
*** [[UDPplayer]]&lt;br /&gt;
** [[BlinkenPlus]] Projects&lt;br /&gt;
*** [[ArcadeMicro]]&lt;br /&gt;
*** [[ArcadeMicroColour|ArcadeMicro Colour]]&lt;br /&gt;
*** [[ArcadeNano]]&lt;br /&gt;
*** [[ArcadeNanoColour|ArcadeNano Colour]]&lt;br /&gt;
*** [[BlinkenLEDsPlus|BlinkenLEDs Plus]]&lt;br /&gt;
*** [[BlinkenLEDsPlusColour|BlinkenLEDs Plus Colour]]&lt;br /&gt;
*** [[BlueBoxMicro|BlueBox Micro]]&lt;br /&gt;
*** [[BSA-Plus|BlinkströmAdvanced Plus]]&lt;br /&gt;
*** [[BlinkstroemColour|Blinkström Colour]]&lt;br /&gt;
*** [[PollinMatrix]]&lt;br /&gt;
*** [[StreamSplitter]]&lt;br /&gt;
*** [[TicTacLights]]&lt;br /&gt;
*** [[TicTacLightsColour|TicTacLights Colour]]&lt;br /&gt;
*** [[TicTacLightsNano|TicTacLights Nano]]&lt;br /&gt;
*** [[TicTacLightsNanoColour|TicTacLights Nano Colour]]&lt;br /&gt;
*** [[TicTacLights USB Retrofit]]&lt;br /&gt;
** Other Hardware Projects&lt;br /&gt;
*** [[AntiKippenLights]] PCB layout&lt;br /&gt;
*** [[AntiKippenLights-Atmel]]&lt;br /&gt;
*** [[AntiKippenLights-Mini]]&lt;br /&gt;
*** [[AKL-Mini Spezial|AntiKippenLights-Mini Spezial]]&lt;br /&gt;
*** [[ATmegaXX8_LCD_Board|ATmegaXX8 Board with 96x60 Pixel LCD]]&lt;br /&gt;
*** [[BlinkenBadge]]&lt;br /&gt;
*** [[BlinkenNums]]&lt;br /&gt;
*** [[Blinky]]&lt;br /&gt;
*** [[BlinkyLamps]]&lt;br /&gt;
*** [[BLUB]]&lt;br /&gt;
*** [[DotBlox]]&lt;br /&gt;
*** [[Duck]]&lt;br /&gt;
*** [[DuckMini]]&lt;br /&gt;
*** [[LcdClock]]&lt;br /&gt;
*** [[LED-23]]&lt;br /&gt;
*** [[LedShapes|LED Shapes]]&lt;br /&gt;
*** [[LightChaserRing]]&lt;br /&gt;
*** [[LogicLights]]&lt;br /&gt;
*** [[MaxiBlink]]&lt;br /&gt;
*** [[MaxiBlink RGB]]&lt;br /&gt;
*** [[MaxiLamps]]&lt;br /&gt;
*** [[MegaClock]]&lt;br /&gt;
*** [[Ornament]]&lt;br /&gt;
*** [[OrnaMatrix]]&lt;br /&gt;
&lt;br /&gt;
* Events:&lt;br /&gt;
** [[21C3]] 2004&lt;br /&gt;
** [[WhatTheHack]] 2005&lt;br /&gt;
** [[22C3]] 2005&lt;br /&gt;
** [[23C3]] 2006&lt;br /&gt;
** [[24C3]] 2007&lt;br /&gt;
** [[25C3]] 2008&lt;br /&gt;
** [[HAR2009|Hacking at Random]] 2009&lt;br /&gt;
** [[26C3]] 2009&lt;br /&gt;
** [[27C3]] 2010&lt;br /&gt;
** [[CCCamp2011|Chaos Communication Camp 2011]]&lt;br /&gt;
** [[28C3]] 2011&lt;br /&gt;
** [[SIGINT12]]&lt;br /&gt;
** [[29C3]] 2012&lt;br /&gt;
** [[OHM2013|Observe. Hack. Make.]] 2013&lt;br /&gt;
** [[30C3]] 2013&lt;br /&gt;
** [[31C3]] 2014&lt;br /&gt;
** [[CCCamp2015|Chaos Communication Camp 2015]]&lt;br /&gt;
** [[32C3]] 2015&lt;br /&gt;
** [[33C3]] 2016&lt;br /&gt;
** [[SHA2017|Still Hacking Anyway]] 2017&lt;br /&gt;
** [[34C3]] 2017&lt;br /&gt;
** [[35C3]] 2018&lt;br /&gt;
** [[CCCamp2019|Chaos Communication Camp 2019]]&lt;br /&gt;
** [[36C3]] 2019&lt;br /&gt;
** [[rC3-Kits|rC3]] 2020&lt;br /&gt;
** [[CCCamp2023|Chaos Communication Camp 2023]]&lt;br /&gt;
** [[37C3]] 2023&lt;br /&gt;
** [[EH21|Easterhegg 21]], 2024&lt;br /&gt;
** [[38C3]] 2024&lt;br /&gt;
** [[WHY2025|What Hackers Yearn]] 2025&lt;br /&gt;
** [[39C3]] 2025&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4938</id>
		<title>DuckMiniEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4938"/>
		<updated>2025-12-23T11:18:59Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=SMD LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DuckMini&#039;&#039;&#039; is the &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt; version of the &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt; [[DuckEnglish|Duck]]. The circuit and software are mostly identical. More detailed information about the circuit and software can be found on the [[DuckEnglish|Duck project page]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The circuit is identical to the full-size duck except for the microcontroller. For cost reasons, the ATmega8 microcontroller was replaced with an ATtiny88 which is only available in an SMD package. Instead of the loose battery holder for 3 AA cells, this version uses a soldered-down holder for 3 AAA cells on the bottom side of the PCB. It is recommended to also stick a piece of double-sided foam tape (mirror mounting tape) in the corner opposite the battery holder&#039;s pins. Above the battery holder, the PCB is just large enough to provide space for the large tantalum capacitor and an &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt; pin header.&lt;br /&gt;
&lt;br /&gt;
Instead of using the large battery holder, the PCB also provides a footprint for a CR2032 button cell holder. Due to the lower voltage and the large internal resistance of the button cell, the quacking of the duck will be very quiet and the LEDs will be dimmer, but for a duck without sound which won&#039;t be turned on for days at a time, the button cell is still a good option.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Kit instructions Rev. 1.1]] for PCB Rev 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In version 2, the controller was replaced with a 14-pin type, either ATtiny84 or ATtiny804/814 can be used.&lt;br /&gt;
&lt;br /&gt;
The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Kit instructions Rev. 2.0]] for PCB Rev 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
As the ISP interface is sharing pins with the LEDs in this version, the always-on jumper as used in version 1 is no longer possible. Instead, the always-on mode can be activated by holding down the button while inserting the batteries. An automatic power-on when voltage is applied is not possible.&lt;br /&gt;
&lt;br /&gt;
ATtiny804/814 don&#039;t support the ISP interface, so the 2x3 pin header becomes useless when using these controllers. In-system programming is still possible by soldering a wire to the unused pin 10 if the controller and connecting it to a UPDI programmer. Of course, ground also has to be connected to the programmer. &lt;br /&gt;
&lt;br /&gt;
The PWM pins are different between ATtiny804/814 and ATtiny84. Pin 6 (PA7/OC0B on ATtiny84) can be set to the PWM signal WO0 with PORTMUX, requiring only a simple register setting at the beginning of the program. On pin 5 (PB2/OC0A on ATtiny84), no PWM signal is available. Instead, the CCL module is used to internally pass the WO1 signal through to LUT1-OUT, which in turn can be output on pin 5. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware version 2022-07-25]] for ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware version 2022-07-24]] for ATtiny804 and ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
For version 3, the controller was replaced again, this time with a one-time programmable Padauk PMS152. Both the 14-pin and 16-pin versions can be used, the extra 2 pins are not used. For development, the pin-compatible PFS154 with flash memory is also supported, but the LED outputs have different pin driver strengths, so some LEDs will be brighter than others. With the PMS152, all pins used for the LEDs have the same drive strength.&lt;br /&gt;
&lt;br /&gt;
As the PMS152 provides only 1280 14-bit words of ROM, an additional 24C64 EEPROM is necessary to hold the audio data. Larger EEPROMs can be used for longer audio. The audio format is the same as described in [[DuckEnglish|Duck]], the raw audio file (with a zero byte at the end!) is programmed into the EEPROM starting at address 0.&lt;br /&gt;
&lt;br /&gt;
Version 3.1 fixes two issues with version 3.0: it adds the missing pull-up resistor on the SDA line (SCL is always driven by the microcontroller) and it swaps PB3 &amp;amp; PB4.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Kit instructions Rev. 3.0]] for PCB Rev 3.0&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Kit instructions Rev. 3.1]] for PCB Rev 3.1&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware must be assembled with [http://john.ccac.rwth-aachen.de:8000/as/ AS] and programmed with the [https://free-pdk.github.io/ Easy-PDK programmer]. As mentioned above, the version 3.0 boards have a layout error that requires a firmware fix. For these boards only, &amp;quot;PCB_30_FIX&amp;quot; has to be set to 1.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware version 3]] for PMS152 and PFS154 (for PCB revisions 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
This version only exists as a [[DuckEnglish|full-size duck]].&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 replaces the combination of Padauk microcontroller and external EEPROM with a cheap ARM microcontroller with 20 KiB of Flash memory. The controller (PY32F002A) can be connected to a programmer (CMSIS-CAP compatible) and re-programmed as desired using solder pads on the Duck PCB.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Kit instructions Rev. 5.0]] for PCB Rev 5.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware is written in Cortex M0+ assembly and can be assembled with the usual GNU tools for ARM controllers (arm-none-eabi-*, Debian package gcc-arm-none-eabi). In the assembly file, there&#039;s an option for boards without transistors in the LED matrix, it should be set to 0 for the Duck Mini. For programming with pyocd, you also need the &amp;quot;Device Family Pack&amp;quot; from the manufacturer, available at https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/. In pyocd.yaml (part of the Duck firmware), you have to change the filename for the pack to match the version you downloaded.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware version 2025-08-04]] for PY32F002A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4937</id>
		<title>DuckMiniEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4937"/>
		<updated>2025-12-23T11:18:39Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=SMD LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DuckMini&#039;&#039;&#039; is the &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt; version of the &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt; [[DuckEnglish|Duck]]. The circuit and software are mostly identical. More detailed information about the circuit and software can be found on the [[DuckEnglish|Duck project page]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The circuit is identical to the full-size duck except for the microcontroller. For cost reasons, the ATmega8 microcontroller was replaced with an ATtiny88 which is only available in an SMD package. Instead of the loose battery holder for 3 AA cells, this version uses a soldered-down holder for 3 AAA cells on the bottom side of the PCB. It is recommended to also stick a piece of double-sided foam tape (mirror mounting tape) in the corner opposite the battery holder&#039;s pins. Above the battery holder, the PCB is just large enough to provide space for the large tantalum capacitor and an &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt; pin header.&lt;br /&gt;
&lt;br /&gt;
Instead of using the large battery holder, the PCB also provides a footprint for a CR2032 button cell holder. Due to the lower voltage and the large internal resistance of the button cell, the quacking of the duck will be very quiet and the LEDs will be dimmer, but for a duck without sound which won&#039;t be turned on for days at a time, the button cell is still a good option.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Kit instructions Rev. 1.1]] for PCB Rev 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In version 2, the controller was replaced with a 14-pin type, either ATtiny84 or ATtiny804/814 can be used.&lt;br /&gt;
&lt;br /&gt;
The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Kit instructions Rev. 2.0]] for PCB Rev 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
As the ISP interface is sharing pins with the LEDs in this version, the always-on jumper as used in version 1 is no longer possible. Instead, the always-on mode can be activated by holding down the button while inserting the batteries. An automatic power-on when voltage is applied is not possible.&lt;br /&gt;
&lt;br /&gt;
ATtiny804/814 don&#039;t support the ISP interface, so the 2x3 pin header becomes useless when using these controllers. In-system programming is still possible by soldering a wire to the unused pin 10 if the controller and connecting it to a UPDI programmer. Of course, ground also has to be connected to the programmer. &lt;br /&gt;
&lt;br /&gt;
The PWM pins are different between ATtiny804/814 and ATtiny84. Pin 6 (PA7/OC0B on ATtiny84) can be set to the PWM signal WO0 with PORTMUX, requiring only a simple register setting at the beginning of the program. On pin 5 (PB2/OC0A on ATtiny84), no PWM signal is available. Instead, the CCL module is used to internally pass the WO1 signal through to LUT1-OUT, which in turn can be output on pin 5. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware version 2022-07-25]] for ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware version 2022-07-24]] for ATtiny804 and ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
For version 3, the controller was replaced again, this time with a one-time programmable Padauk PMS152. Both the 14-pin and 16-pin versions can be used, the extra 2 pins are not used. For development, the pin-compatible PFS154 with flash memory is also supported, but the LED outputs have different pin driver strengths, so some LEDs will be brighter than others. With the PMS152, all pins used for the LEDs have the same drive strength.&lt;br /&gt;
&lt;br /&gt;
As the PMS152 provides only 1280 14-bit words of ROM, an additional 24C64 EEPROM is necessary to hold the audio data. Larger EEPROMs can be used for longer audio. The audio format is the same as described in [[DuckEnglish|Duck]], the raw audio file (with a zero byte at the end!) is programmed into the EEPROM starting at address 0.&lt;br /&gt;
&lt;br /&gt;
Version 3.1 fixes two issues with version 3.0: it adds the missing pull-up resistor on the SDA line (SCL is always driven by the microcontroller) and it swaps PB3 &amp;amp; PB4.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Kit instructions Rev. 3.0]] for PCB Rev 3.0&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Kit instructions Rev. 3.1]] for PCB Rev 3.1&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware must be assembled with [http://john.ccac.rwth-aachen.de:8000/as/ AS] and programmed with the [https://free-pdk.github.io/ Easy-PDK programmer]. As mentioned above, the version 3.0 boards have a layout error that requires a firmware fix. For these boards only, &amp;quot;PCB_30_FIX&amp;quot; has to be set to 1.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware version 3]] for PMS152 and PFS154 (for PCB revisions 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
This version only exists as a [[DuckMiniEnglish|full-size duck]].&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 replaces the combination of Padauk microcontroller and external EEPROM with a cheap ARM microcontroller with 20 KiB of Flash memory. The controller (PY32F002A) can be connected to a programmer (CMSIS-CAP compatible) and re-programmed as desired using solder pads on the Duck PCB.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Kit instructions Rev. 5.0]] for PCB Rev 5.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware is written in Cortex M0+ assembly and can be assembled with the usual GNU tools for ARM controllers (arm-none-eabi-*, Debian package gcc-arm-none-eabi). In the assembly file, there&#039;s an option for boards without transistors in the LED matrix, it should be set to 0 for the Duck Mini. For programming with pyocd, you also need the &amp;quot;Device Family Pack&amp;quot; from the manufacturer, available at https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/. In pyocd.yaml (part of the Duck firmware), you have to change the filename for the pack to match the version you downloaded.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware version 2025-08-04]] for PY32F002A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4936</id>
		<title>DuckEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4936"/>
		<updated>2025-12-23T11:17:11Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=5 mm LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;Duck&#039;&#039;&#039; was inspired by the &amp;quot;duck&amp;quot; presented by the French Embassy on the camp [[OHM2013|Observe. Hack. Make. 2013]]. They installed a [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg big button labelled &amp;quot;Do not press here&amp;quot;], which played a loud duck quack when pressed.&lt;br /&gt;
&lt;br /&gt;
This version consists of 34 LEDs on a circuit board which are arranged in the shape of a duck and play varying animations. The button is located in one corner, the quacking sound is played back through a mini speaker on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Variants == &lt;br /&gt;
&lt;br /&gt;
There are several variants of the Duck:&lt;br /&gt;
* The original 100% size version.&lt;br /&gt;
* A 75% size version.&lt;br /&gt;
* A 50% size version, using 3 mm LEDs.&lt;br /&gt;
* A 50% size version using SMD components - see [[DuckMiniEnglish|DuckMini]].&lt;br /&gt;
* A wearable 25% size version using smaller SMD components - see [[DuckNanoEnglish|DuckNano]].&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The animations are written in a special pseudo language created from assembly macros. The File &amp;quot;animations/ani_list.asm&amp;quot; specifies the order and number of repeats of the animations, while the comments at the beginning of the file explain the available pseudo commands that can be used to create animations. The other files in the &amp;quot;animations&amp;quot; directory are example animations. To create your own animation program, you can either enter all animation commands directly into the file &amp;quot;ani_list.asm&amp;quot; or create a separate file for each animation and then add them to &amp;quot;ani_list.asm&amp;quot; using the &amp;quot;.include&amp;quot; directive.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
The sound to be played when the button is pressed is stored as a list of unsigned 8-bit values, i.e. the value 128 (0x80) is the zero level (silence). The value 0 must not be part of the audio data as it is used to detect the end of the list. The usable range of data values is thus 1 to 255 (128&amp;amp;plusmn;127). The AVR is clocked at 8&amp;amp;thinsp;MHz and uses an 8 bit PWM to generate the audio signal, which results in a sample rate of 31.25&amp;amp;thinsp;kHz. &lt;br /&gt;
&lt;br /&gt;
To replace the quacking of the duck with a different sound, it must be converted into the described format (8 bits, unsigned, 31.25&amp;amp;thinsp;kHz sample rate) which can be done with the program &amp;quot;Audacity&amp;quot;. The same program can also be used to remove silence before and after the desired sound, as the memory for audio data is very limited. The program and the example animations together require a little over 1&amp;amp;thinsp;KiB of program memory. This leaves just short of 7&amp;amp;thinsp;KiB for audio data, which corresponds to an audio length of approx. 227&amp;amp;thinsp;ms. After converting the audio data with Audacity, the perl script in the &amp;quot;audio&amp;quot; directory can be used to convert the raw audio file to an assembly file which must then be included in the main program file &amp;quot;duck.asm&amp;quot; (in the line immediately following the &amp;quot;audio:&amp;quot; label).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
The circuit is controlled by an ATmega8 which multiplexes the LEDs and plays the quack sound when the button is pushed. The speaker is driven with PWM so no digital to analog converter is necessary. The data for the quack sound occupy approx. three quarters of the program memory, the rest is available for the program code and the animations. The project is powered from a 4.5-5&amp;amp;thinsp;V supply, e.g. three AA batteries.&lt;br /&gt;
&lt;br /&gt;
Two PWM outputs are used for the speaker, with the second output generating the inverse PWM ratio to the first. In this way, the average voltage between the outputs is twice that of a single output to ground, increasing the volume. To get even more volume, two push-pull stages of two transistors each are used to amplify the AVR&#039;s PWM output signals because the internal resistance of the AVR outputs would limit the output current severely if the signals were used unamplified.&lt;br /&gt;
&lt;br /&gt;
The LEDs are connected in a traditional 6x6 matrix with the last two LEDs missing. The columns are directly connected to the AVR outputs without any current limiting resistors, leaving only the AVR&#039;s internal resistance of approx. 25&amp;amp;thinsp;&amp;amp;Omega; to limit the current through the LEDs. The row ouptuts are amplified with NPN transistors to avoid fluctuations in brightness.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Construction Kit Instructions Rev. 1.0]] for PCB Rev. 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] for ATmega8 or ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] for ATmega8 or ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
The always-on mode can be activated by placing a jumper between pins 4 (PB3) and 6 (ground) on the ISP pin header. In this mode, the duck turns on automatically when voltage is applied and can&#039;t be turned off with the button. To leave this mode, it is sufficient to remove the jumper. &lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In the second version, the controller was replaced with an ATtiny84, providing just 11 I/O-pins. The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk by 50% and use 3&amp;amp;thinsp;mm LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3 mm LEDs, 50% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|DUCK 3&amp;amp;thinsp;mm Construction Kit Instructions Rev. 1.0]] for PCB Rev. 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] for ATtiny84 or ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
In this version, the ISP pins are shared with the LEDs, so it&#039;s no longer possible to use a jumper. Instead, the always-on mode can be activated by holding down the button while power is applied. To exit this mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
This version only exists as a [[DuckMiniEnglish|mini duck]].&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
This version is using a low-cost microcontroller with an 8051 core made by STCmicro. The rest of the circuit is identical to version 2.0. &lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk to 75% size.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|DUCK 75% Construction Kit Instructions Rev. 4.1]] for PCB Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
The firmware is written in assembler and supports controller models STC8G1K08 (8&amp;amp;nbsp;KiB Flash) and STC8G1K17 (17&amp;amp;nbsp;KiB Flash). The kit contains STC8G1K08-38I-DIP16 or STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
If you make any changes, use [http://john.ccac.rwth-aachen.de:8000/as/ AS] to assemble the firmware. The microcontroller has a UART bootloader in ROM, so programming only requires a USB to UART converter, a diode and a resistor. The connections are shown in the microcontroller&#039;s datasheet. Instead of the Windows application from STCmicro, I use [https://github.com/grigorig/stcgal stcgal] for programming.&lt;br /&gt;
&lt;br /&gt;
=== Special Modes ===&lt;br /&gt;
&lt;br /&gt;
* Always-on mode (duck can&#039;t be turned off with the button): hold down the button while power is applied, then release.&lt;br /&gt;
* Test mode (LEDs light up one by one in sequence): hold down the button while power is applied and keep holding for at least 5 seconds.&lt;br /&gt;
&lt;br /&gt;
To exit a special mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4935</id>
		<title>DuckMini</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4935"/>
		<updated>2025-12-23T11:16:24Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=SMD-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;DuckMini&#039;&#039;&#039; ist die &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt;-Ausführung der &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt;-[[Duck]] (Ente), die Entstehungsgeschichte ist dort erklärt. Schaltung und Software sind weitgehend identisch.&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Die Schaltung ist bis auf den Microcontroller-Typ identisch mit der [[Duck|&amp;quot;großen&amp;quot; Ente]]. Aus Preisgründen wurde der ATmega8 durch den ausschließlich im SMD-Gehäuse erhältlichen ATtiny88 ersetzt. Anstelle eines losen Batteriehalters mit 3 Mignon-Zellen (AA) wird ein auf der Platinenrückseite angelöteter Batteriehalter für 3 Micro-Zellen (AAA) eingesetzt. Es empfiehlt sich, den Batteriehalter zusätzlich mit einem Stück doppelseitigem Schaum-Klebeband (Spiegel-Montageband) an der den Pins gegenüberliegenden Ecke auf der Platine festzukleben. Über dem Batteriehalter ist die Platine gerade groß genug, um den großen Tantal-Kondensator und eine Stiftleiste für die &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt;-Schnittstelle unterzubringen. &lt;br /&gt;
&lt;br /&gt;
Anstelle des großen Batteriehalters kann die Platine auch einen Knopfzellenhalter für eine CR2032 aufnehmen. Durch die geringere Spannung und den hohen Innenwiderstand der Knopfzelle ist das Quaken der Ente jedoch sehr leise und die LEDs sind etwas dunkler. Für eine Ente ohne Ton, die nicht tagelang eingeschaltet bleibt, ist die Knopfzelle dennoch eine sinnvolle Alternative.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Bausatz-Anleitung Rev. 1.1]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware Version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 2 wurde der Controller durch einen 14-Pin-Typ ersetzt, es können entweder ATtiny84 oder ATtiny804/814 eingesetzt werden. &lt;br /&gt;
&lt;br /&gt;
Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, die Basiswiderstände können daher entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Bausatz-Anleitung Rev. 2.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Da sich die ISP-Schnittstelle in dieser Version die Pins mit den LEDs teilt, ist der Immer-An-Jumper wie in Version 1 nicht mehr möglich. Stattdessen kann man den Taster beim Einlegen der Batterien gedrückt halten, um den Immer-An-Modus zu aktivieren. Ein automatisches Einschalten beim Anlegen der Spannung ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die ATtiny804/814 unterstützen die ISP-Schnittstelle nicht, daher ist die 2x3-Stiftleiste mit diesen Controllern nutzlos. Eine Programmierung im System ist dennoch möglich, indem ein Kabel an den ungenutzten Pin 10 angelötet und mit einem UPDI-Programmer verbunden wird. Zusätzlich muss der Programmer natürlich noch mit Masse verbunden werden. &lt;br /&gt;
&lt;br /&gt;
Die PWM-Pins liegen beim ATtiny804/814 auch anders als beim ATtiny84. Pin 6 (PA7/OC0B beim ATtiny84) unterstützt per PORTMUX das PWM-Signal WO0, so dass eine einfache Register-Einstellung am Beginn des Programms ausreicht. Auf Pin 5 (PB2/OC0A beim ATtiny84) ist jedoch gar kein PWM-Signal verfügbar. Stattdessen wird das CCL-Modul verwendet, um intern das WO1-Signal auf LUT1-OUT durchzureichen, was dann auf Pin 5 ausgegeben werden kann. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware Version 2022-07-24]] für ATtiny804 und ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 3 wurde der Microcontroller erneut ersetzt, diesmal durch den nur einmal programmierbaren Padauk PMS152. Sowohl die 14- als auch die 16-Pin-Version kann eingesetzt werden, die zusätzlichen beiden Pins bleiben ungenutzt. Für Entwicklungszwecke wird auch der pinkompatible PMS154 mit Flash-Speicher unterstützt, allerdings haben die LED-Ausgänge unterschiedlich starke Pin-Treiber, so dass einige LEDs heller leuchten als andere. Mit dem PMS152 haben alle Pins, an denen LEDs angeschlossen sind, gleich starke Pin-Treiber.&lt;br /&gt;
&lt;br /&gt;
Da der PMS152 nur 1280 14-Bit Worte ROM hat, ist ein zusätzliches 24C64-EEPROM nötig, in dem die Audio-Daten gespeichert werden. Mit größeren EEPROMs sind auch längere Audio-Sequenzen möglich. Das Audio-Format ist identisch wie in [[Duck]] beschrieben, die Audio-Rohdaten werden (mit abschließendem Null-Byte!) direkt ins EEPROM geschrieben, angefangen an Adresse 0.&lt;br /&gt;
&lt;br /&gt;
In Version 3.1 sind zwei Fehler der Version 3.0 behoben: der fehlende Pull-Up-Widerstand an SDA wurde ergänzt (SCL wird immer vom Microcontroller getrieben) und PB3 &amp;amp; PB4 wurden vertauscht.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Bausatz-Anleitung Rev. 3.0]] für Platine Rev 3.0 (englisch)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Bausatz-Anleitung Rev. 3.1]] für Platine Rev 3.1 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware muss mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] assembliert und mit dem [https://free-pdk.github.io/ Easy-PDK-Programmer] in den Controller geschrieben werden. Wie oben erwähnt haben die Platinen der Version 3.0 einen Layoutfehler, der eine Firmware-Korrektur erfordert. Nur für diese Platinen muss daher &amp;quot;PCB_30_FIX&amp;quot; auf 1 gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware Version 3]] für PMS152 und PFS154 (für Platinenversionen 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
Diese Version gibt es nur als [[Duck|große Ente]].&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 verwendet statt der Kombination aus Padauk-Microcontroller und externem EEPROM einen kostengünstigen ARM-Microcontroller mit 20 KiB Flash-Speicher. Der Controller (PY32F002A) kann über Lötflächen auf der Platine mit einem Programmer (CMSIS-DAP-kompatibel) verbunden und umprogrammiert werden.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Bausatz-Anleitung Rev. 5.0]] für Platine Rev 5.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Cortex-M0+-Assembler geschrieben und wird mit den für ARM-Controller üblichen GNU-Programmen (arm-none-eabi-*, Debian-Paket gcc-arm-none-eabi) übersetzt. In der Assemblerdatei gibt es eine Option für Schaltungen ohne Treibertransistoren in der LED-Matrix, für die Duck Mini sollte sie auf 0 gesetzt werden. Zum Programmieren mit pyocd wird außerdem das &amp;quot;Device Family Pack&amp;quot; vom Hersteller benötigt, es kann unter https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/ heruntergeladen werden. In pyocd.yaml (Bestandteil der Enten-Firmware) muß der Dateiname des Packs entsprechend zur heruntergeladenen Version geändert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware Version 2025-08-04]] für PY32F002A&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4934</id>
		<title>Duck</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4934"/>
		<updated>2025-12-23T11:15:11Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=5-mm-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Duck&#039;&#039;&#039; (Ente) wurde von der &amp;quot;Ente&amp;quot; der French Embassy auf dem Camp [[OHM2013|Observe. Hack. Make. 2013]] inspiriert. Dort gab es einen [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg großen, mit &amp;quot;Do not press here&amp;quot; beschrifteten Taster], welcher ein Enten-Quaken abspielte, wenn man ihn drückte.&lt;br /&gt;
&lt;br /&gt;
Diese Version besteht aus 34 LEDs auf einer Platine, welche in Entenform angeordnet sind und verschiedene Animationen abspielen. Der Taster befindet sich in einer Ecke der Platine, das Quaken wird über einen Mini-Lautsprecher auf der Platine wiedergegeben.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
&lt;br /&gt;
Es existieren mehrere Varianten der Ente:&lt;br /&gt;
* Das Original in 100% Größe.&lt;br /&gt;
* Eine auf 75% Größe reduzierte Version.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit 3-mm-LEDs.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit SMD-Bauteilen - siehe [[DuckMini]].&lt;br /&gt;
* Eine auf 25% Größe reduzierte Version mit Anstecknadel, ebenfalls mit SMD-Bauteilen - siehe [[DuckNano]].&lt;br /&gt;
&lt;br /&gt;
== Animationen ==&lt;br /&gt;
&lt;br /&gt;
Die Animationen werden in einer eigenen Pseudo-Sprache aus Assemblermakros geschrieben. Die Datei &amp;quot;animations/ani_list.asm&amp;quot; enthält die Reihenfolge und Wiederholhäufigkeit der Animationen, in den Kommentaren am Anfang der Datei sind zudem die zur Verfügung stehenden Pseudo-Befehle erklärt. Die restlichen Dateien im &amp;quot;animations&amp;quot;-Verzeichnis sind Beispielanimationen. Um ein eigenes Animationsprogramm zu erstellen kann entweder die gesamte Animations-Abfolge in die Datei &amp;quot;ani_list.asm&amp;quot; geschrieben werden, oder mehrere Animationen können als asm-Dateien gespeichert und dann mit der &amp;quot;.include&amp;quot;-Direktive in &amp;quot;ani_list.asm&amp;quot; eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Das auf Tastendruck abzuspielende Geräusch wird als Liste aus nicht vorzeichenbehafteten 8-Bit-Werten gespeichert, d.h. der Wert 128 (0x80) entspricht der Nulllinie (Stille). Der Wert 0 darf nicht in den Daten vorkommen, da er zur Erkennung des Endes verwendet wird. Der nutzbare Datenbereich ist daher 1 bis 255 (128&amp;amp;plusmn;127). Der Microcontroller wird mit 8&amp;amp;thinsp;MHz getaktet und verwendet eine 8-Bit-PWM zur Erzeugung des Audiosignals, woraus sich eine Abtastrate von 31.25&amp;amp;thinsp;kHz ergibt. &lt;br /&gt;
&lt;br /&gt;
Um das Quaken der Ente durch eine anderes Geräusch zu ersetzen muss dieses zunächst in das beschriene Format gebracht werden (8 Bit, kein Vorzeichen, 31.25&amp;amp;thinsp;kHz Abtastrate), was z.B. mit dem Programm Audacity möglich ist. Mit dem selben Programm kann man auch eventuelle Stille vor und nach der Aufnahme entfernen, da nur sehr begrenzt Speicher für die Audiodaten bereitsteht. Das Programm belegt zusammen mit den Beispiel-Animationen gut 1&amp;amp;thinsp;KiB im Programmspeicher des ATmega8. Für die Audiodaten verbleiben also knapp 7&amp;amp;thinsp;KiB, das entspricht einer Länge von ca. 227&amp;amp;thinsp;ms. Nachdem die Audiodaten mit Audacity exportiert wurden, können Sie mit dem Perlscript im Verzeichnis &amp;quot;audio&amp;quot; in eine Assemblerdatei konvertiert werden, die dann nur noch in das Hauptprogramm &amp;quot;duck.asm&amp;quot; eingebunden werden muss (Zeile unter der Sprungmarke &amp;quot;audio:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung wird von einem ATmega8 gesteuert, welcher die LEDs multiplext und bei Bedarf das Quaken abspielt. Der Lautsprecher wird per PWM angesteuert, so dass kein Digital-Analog-Wandler benötigt wird. Die Daten für das Quak-Geräusch belegen ca. drei Viertel des Programmspeichers, der Rest wird für den Programmcode und die Animationen verwendet. Das Projekt wird mit 4.5-5&amp;amp;thinsp;V betrieben, z.B. aus drei AA-Batterien.&lt;br /&gt;
&lt;br /&gt;
Für den Lautsprecher werden zwei PWM-Ausgänge verwendet, wobei der zweite Ausgang das inverse PWM-Verhältnis des ersten ausgibt. Auf diese Weise ist die mittlere Spannung zwischen den Ausgängen doppelt so hoch als wenn nur ein Ausgang verwendet würde, die Lautstärke erhöht sich entsprechend. Um noch mehr Lautstärke zu erreichen werden die beiden PWM-Signale von Gegentaktstufen aus je zwei Transistoren verstärkt, da sonst der Innenwiderstand der AVR-Pins den Strom durch den Lautsprecher sehr begrenzen würde.&lt;br /&gt;
&lt;br /&gt;
Die LEDs sind zu einer herkömmlichen 6x6-Matrix verschaltet, wobei allerdings die letzten zwei LEDs fehlen. Die Spalten sind direkt ohne Vorwiderstände mit den Ausgängen des AVR verbunden, so dass nur der interne Widerstand der AVR-Ausgänge von ca. 25&amp;amp;thinsp;&amp;amp;Omega; den Strom durch die LEDs begrenzt. Die Ausgänge für die Zeilen werden von NPN-Transistoren verstärkt, um Helligkeitsschwankungen zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] für ATmega8 oder ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] für ATmega8 oder ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Mit einem Jumper zwischen Pins 4 (PB3) und 6 (Masse) auf der ISP-Stiftleiste kann der Immer-An-Modus aktiviert werden. In diesem Modus schaltet sich die Ente beim Anlegen der Spannungsversorgung automatisch ein und lässt sich auch nicht mit dem Taster abschalten. Um den Modus wieder zu verlassen reicht es, den Jumper wieder abzuziehen.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In der zweiten Version wurde der Controller durch einen ATtiny84 ersetzt. Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, die Basiswiderstände können daher entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen halber Größe mit 3-mm-LEDs verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3-mm-LEDs, halbe Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84 oder ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Da in dieser Version die ISP-Pins auch LEDs ansteuern, kann kein Jumper mehr verwendet werden. Stattdessen wird der Immer-An-Modus aktiviert, indem beim Anlegen der Versorgungsspannung der Taster gedrückt gehalten wird. Um den Modus wieder zu verlassen, muss die Versorgungsspannung wieder abgeschaltet werden. &lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
Diese Version gibt es nur als [[DuckMini|Mini-Ente]].&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
In dieser Version kommt ein besonders kostengünstiger Microcontroller mit 8051-Kern von STCmicro zum Einsatz. Der Rest der Schaltung ist identisch mit Version 2.0.&lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen mit 75% Größe verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|Bausatz-Anleitung DUCK 75% Rev. 4.1]] für Platine Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Assembler geschrieben und unterstützt die Controller-Modelle STC8G1K08 (8&amp;amp;nbsp;KiB Flash) und STC8G1K17 (17&amp;amp;nbsp;KiB Flash). Der Bausatz enthält  einen STC8G1K08-38I-DIP16 oder STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
Wenn die Firmware geändert wurden, kann sie mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] neu assembliert werden. Der  Microcontroller hat einen UART-Bootloader im ROM, so dass zum Programmieren lediglich ein USB-auf-UART-Konverter, eine Diode und ein Widerstand notwendig sind. Die Beschaltung wird im Datenblatt des Controllers gezeigt. zum Programmieren verwende ich [https://github.com/grigorig/stcgal stcgal] anstelle des Windows-Programms von STCmicro.&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Modi ===&lt;br /&gt;
&lt;br /&gt;
* Immer-an-Modus (Ente kann nicht mit dem Taster ausgeschaltet werden): Taster beim Anlegen der Versorgungsspannung gedrückt halten, danach loslassen. &lt;br /&gt;
* Testmodus (LEDs leuchten der Reihe nach einzeln auf): Taster beim Anlegen der Versorgungsspannung gedrückt halten und anschließend für mindestens 5 Sekunden gedrückt halten.&lt;br /&gt;
&lt;br /&gt;
Um einen speziellen Modus zu verlassen muss die Versorgungsspannung abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4933</id>
		<title>RetroBlinkEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlinkEnglish&amp;diff=4933"/>
		<updated>2025-12-14T00:16:32Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: Created page with &amp;quot;Coming soon ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming soon ...&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4932</id>
		<title>RetroBlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=RetroBlink&amp;diff=4932"/>
		<updated>2025-12-14T00:16:13Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: Created page with &amp;quot;Kommt demnächst ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kommt demnächst ...&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4931</id>
		<title>Duck</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4931"/>
		<updated>2025-08-12T10:43:23Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=5-mm-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Duck&#039;&#039;&#039; (Ente) wurde von der &amp;quot;Ente&amp;quot; der French Embassy auf dem Camp [[OHM2013|Observe. Hack. Make. 2013]] inspiriert. Dort gab es einen [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg großen, mit &amp;quot;Do not press here&amp;quot; beschrifteten Taster], welcher ein Enten-Quaken abspielte, wenn man ihn drückte.&lt;br /&gt;
&lt;br /&gt;
Diese Version besteht aus 34 LEDs auf einer Platine, welche in Entenform angeordnet sind und verschiedene Animationen abspielen. Der Taster befindet sich in einer Ecke der Platine, das Quaken wird über einen Mini-Lautsprecher auf der Platine wiedergegeben.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
&lt;br /&gt;
Es existieren mehrere Varianten der Ente:&lt;br /&gt;
* Das Original in 100% Größe.&lt;br /&gt;
* Eine auf 75% Größe reduzierte Version.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit 3-mm-LEDs.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit SMD-Bauteilen - siehe [[DuckMini]].&lt;br /&gt;
* Eine auf 25% Größe reduzierte Version mit Anstecknadel, ebenfalls mit SMD-Bauteilen - siehe [[DuckNano]].&lt;br /&gt;
&lt;br /&gt;
== Animationen ==&lt;br /&gt;
&lt;br /&gt;
Die Animationen werden in einer eigenen Pseudo-Sprache aus Assemblermakros geschrieben. Die Datei &amp;quot;animations/ani_list.asm&amp;quot; enthält die Reihenfolge und Wiederholhäufigkeit der Animationen, in den Kommentaren am Anfang der Datei sind zudem die zur Verfügung stehenden Pseudo-Befehle erklärt. Die restlichen Dateien im &amp;quot;animations&amp;quot;-Verzeichnis sind Beispielanimationen. Um ein eigenes Animationsprogramm zu erstellen kann entweder die gesamte Animations-Abfolge in die Datei &amp;quot;ani_list.asm&amp;quot; geschrieben werden, oder mehrere Animationen können als asm-Dateien gespeichert und dann mit der &amp;quot;.include&amp;quot;-Direktive in &amp;quot;ani_list.asm&amp;quot; eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Das auf Tastendruck abzuspielende Geräusch wird als Liste aus nicht vorzeichenbehafteten 8-Bit-Werten gespeichert, d.h. der Wert 128 (0x80) entspricht der Nulllinie (Stille). Der Wert 0 darf nicht in den Daten vorkommen, da er zur Erkennung des Endes verwendet wird. Der nutzbare Datenbereich ist daher 1 bis 255 (128&amp;amp;plusmn;127). Der Microcontroller wird mit 8&amp;amp;thinsp;MHz getaktet und verwendet eine 8-Bit-PWM zur Erzeugung des Audiosignals, woraus sich eine Abtastrate von 31.25&amp;amp;thinsp;kHz ergibt. &lt;br /&gt;
&lt;br /&gt;
Um das Quaken der Ente durch eine anderes Geräusch zu ersetzen muss dieses zunächst in das beschriene Format gebracht werden (8 Bit, kein Vorzeichen, 31.25&amp;amp;thinsp;kHz Abtastrate), was z.B. mit dem Programm Audacity möglich ist. Mit dem selben Programm kann man auch eventuelle Stille vor und nach der Aufnahme entfernen, da nur sehr begrenzt Speicher für die Audiodaten bereitsteht. Das Programm belegt zusammen mit den Beispiel-Animationen gut 1&amp;amp;thinsp;KiB im Programmspeicher des ATmega8. Für die Audiodaten verbleiben also knapp 7&amp;amp;thinsp;KiB, das entspricht einer Länge von ca. 227&amp;amp;thinsp;ms. Nachdem die Audiodaten mit Audacity exportiert wurden, können Sie mit dem Perlscript im Verzeichnis &amp;quot;audio&amp;quot; in eine Assemblerdatei konvertiert werden, die dann nur noch in das Hauptprogramm &amp;quot;duck.asm&amp;quot; eingebunden werden muss (Zeile unter der Sprungmarke &amp;quot;audio:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung wird von einem ATmega8 gesteuert, welcher die LEDs multiplext und bei Bedarf das Quaken abspielt. Der Lautsprecher wird per PWM angesteuert, so dass kein Digital-Analog-Wandler benötigt wird. Die Daten für das Quak-Geräusch belegen ca. drei Viertel des Programmspeichers, der Rest wird für den Programmcode und die Animationen verwendet. Das Projekt wird mit 4.5-5&amp;amp;thinsp;V betrieben, z.B. aus drei AA-Batterien.&lt;br /&gt;
&lt;br /&gt;
Für den Lautsprecher werden zwei PWM-Ausgänge verwendet, wobei der zweite Ausgang das inverse PWM-Verhältnis des ersten ausgibt. Auf diese Weise ist die mittlere Spannung zwischen den Ausgängen doppelt so hoch als wenn nur ein Ausgang verwendet würde, die Lautstärke erhöht sich entsprechend. Um noch mehr Lautstärke zu erreichen werden die beiden PWM-Signale von Gegentaktstufen aus je zwei Transistoren verstärkt, da sonst der Innenwiderstand der AVR-Pins den Strom durch den Lautsprecher sehr begrenzen würde.&lt;br /&gt;
&lt;br /&gt;
Die LEDs sind zu einer herkömmlichen 6x6-Matrix verschaltet, wobei allerdings die letzten zwei LEDs fehlen. Die Spalten sind direkt ohne Vorwiderstände mit den Ausgängen des AVR verbunden, so dass nur der interne Widerstand der AVR-Ausgänge von ca. 25&amp;amp;thinsp;&amp;amp;Omega; den Strom durch die LEDs begrenzt. Die Ausgänge für die Zeilen werden von NPN-Transistoren verstärkt, um Helligkeitsschwankungen zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] für ATmega8 oder ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] für ATmega8 oder ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Mit einem Jumper zwischen Pins 4 (PB3) und 6 (Masse) auf der ISP-Stiftleiste kann der Immer-An-Modus aktiviert werden. In diesem Modus schaltet sich die Ente beim Anlegen der Spannungsversorgung automatisch ein und lässt sich auch nicht mit dem Taster abschalten. Um den Modus wieder zu verlassen reicht es, den Jumper wieder abzuziehen.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In der zweiten Version wurde der Controller durch einen ATtiny84 ersetzt. Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen halber Größe mit 3-mm-LEDs verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3-mm-LEDs, halbe Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84 oder ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Da in dieser Version die ISP-Pins auch LEDs ansteuern, kann kein Jumper mehr verwendet werden. Stattdessen wird der Immer-An-Modus aktiviert, indem beim Anlegen der Versorgungsspannung der Taster gedrückt gehalten wird. Um den Modus wieder zu verlassen, muss die Versorgungsspannung wieder abgeschaltet werden. &lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
In dieser Version kommt ein besonders kostengünstiger Microcontroller mit 8051-Kern von STCmicro zum Einsatz. Der Rest der Schaltung ist identisch mit Version 2.0.&lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen mit 75% Größe verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|Bausatz-Anleitung DUCK 75% Rev. 4.1]] für Platine Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Assembler geschrieben und unterstützt die Controller-Modelle STC8G1K08 (8&amp;amp;nbsp;KiB Flash) und STC8G1K17 (17&amp;amp;nbsp;KiB Flash). Der Bausatz enthält  einen STC8G1K08-38I-DIP16 oder STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
Wenn die Firmware geändert wurden, kann sie mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] neu assembliert werden. Der  Microcontroller hat einen UART-Bootloader im ROM, so dass zum Programmieren lediglich ein USB-auf-UART-Konverter, eine Diode und ein Widerstand notwendig sind. Die Beschaltung wird im Datenblatt des Controllers gezeigt. zum Programmieren verwende ich [https://github.com/grigorig/stcgal stcgal] anstelle des Windows-Programms von STCmicro.&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Modi ===&lt;br /&gt;
&lt;br /&gt;
* Immer-an-Modus (Ente kann nicht mit dem Taster ausgeschaltet werden): Taster beim Anlegen der Versorgungsspannung gedrückt halten, danach loslassen. &lt;br /&gt;
* Testmodus (LEDs leuchten der Reihe nach einzeln auf): Taster beim Anlegen der Versorgungsspannung gedrückt halten und anschließend für mindestens 5 Sekunden gedrückt halten.&lt;br /&gt;
&lt;br /&gt;
Um einen speziellen Modus zu verlassen muss die Versorgungsspannung abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4930</id>
		<title>DuckEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4930"/>
		<updated>2025-08-12T10:41:19Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=5 mm LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;Duck&#039;&#039;&#039; was inspired by the &amp;quot;duck&amp;quot; presented by the French Embassy on the camp [[OHM2013|Observe. Hack. Make. 2013]]. They installed a [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg big button labelled &amp;quot;Do not press here&amp;quot;], which played a loud duck quack when pressed.&lt;br /&gt;
&lt;br /&gt;
This version consists of 34 LEDs on a circuit board which are arranged in the shape of a duck and play varying animations. The button is located in one corner, the quacking sound is played back through a mini speaker on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Variants == &lt;br /&gt;
&lt;br /&gt;
There are several variants of the Duck:&lt;br /&gt;
* The original 100% size version.&lt;br /&gt;
* A 75% size version.&lt;br /&gt;
* A 50% size version, using 3 mm LEDs.&lt;br /&gt;
* A 50% size version using SMD components - see [[DuckMiniEnglish|DuckMini]].&lt;br /&gt;
* A wearable 25% size version using smaller SMD components - see [[DuckNanoEnglish|DuckNano]].&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The animations are written in a special pseudo language created from assembly macros. The File &amp;quot;animations/ani_list.asm&amp;quot; specifies the order and number of repeats of the animations, while the comments at the beginning of the file explain the available pseudo commands that can be used to create animations. The other files in the &amp;quot;animations&amp;quot; directory are example animations. To create your own animation program, you can either enter all animation commands directly into the file &amp;quot;ani_list.asm&amp;quot; or create a separate file for each animation and then add them to &amp;quot;ani_list.asm&amp;quot; using the &amp;quot;.include&amp;quot; directive.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
The sound to be played when the button is pressed is stored as a list of unsigned 8-bit values, i.e. the value 128 (0x80) is the zero level (silence). The value 0 must not be part of the audio data as it is used to detect the end of the list. The usable range of data values is thus 1 to 255 (128&amp;amp;plusmn;127). The AVR is clocked at 8&amp;amp;thinsp;MHz and uses an 8 bit PWM to generate the audio signal, which results in a sample rate of 31.25&amp;amp;thinsp;kHz. &lt;br /&gt;
&lt;br /&gt;
To replace the quacking of the duck with a different sound, it must be converted into the described format (8 bits, unsigned, 31.25&amp;amp;thinsp;kHz sample rate) which can be done with the program &amp;quot;Audacity&amp;quot;. The same program can also be used to remove silence before and after the desired sound, as the memory for audio data is very limited. The program and the example animations together require a little over 1&amp;amp;thinsp;KiB of program memory. This leaves just short of 7&amp;amp;thinsp;KiB for audio data, which corresponds to an audio length of approx. 227&amp;amp;thinsp;ms. After converting the audio data with Audacity, the perl script in the &amp;quot;audio&amp;quot; directory can be used to convert the raw audio file to an assembly file which must then be included in the main program file &amp;quot;duck.asm&amp;quot; (in the line immediately following the &amp;quot;audio:&amp;quot; label).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
The circuit is controlled by an ATmega8 which multiplexes the LEDs and plays the quack sound when the button is pushed. The speaker is driven with PWM so no digital to analog converter is necessary. The data for the quack sound occupy approx. three quarters of the program memory, the rest is available for the program code and the animations. The project is powered from a 4.5-5&amp;amp;thinsp;V supply, e.g. three AA batteries.&lt;br /&gt;
&lt;br /&gt;
Two PWM outputs are used for the speaker, with the second output generating the inverse PWM ratio to the first. In this way, the average voltage between the outputs is twice that of a single output to ground, increasing the volume. To get even more volume, two push-pull stages of two transistors each are used to amplify the AVR&#039;s PWM output signals because the internal resistance of the AVR outputs would limit the output current severely if the signals were used unamplified.&lt;br /&gt;
&lt;br /&gt;
The LEDs are connected in a traditional 6x6 matrix with the last two LEDs missing. The columns are directly connected to the AVR outputs without any current limiting resistors, leaving only the AVR&#039;s internal resistance of approx. 25&amp;amp;thinsp;&amp;amp;Omega; to limit the current through the LEDs. The row ouptuts are amplified with NPN transistors to avoid fluctuations in brightness.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Construction Kit Instructions Rev. 1.0]] for PCB Rev. 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] for ATmega8 or ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] for ATmega8 or ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
The always-on mode can be activated by placing a jumper between pins 4 (PB3) and 6 (ground) on the ISP pin header. In this mode, the duck turns on automatically when voltage is applied and can&#039;t be turned off with the button. To leave this mode, it is sufficient to remove the jumper. &lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In the second version, the controller was replaced with an ATtiny84, providing just 11 I/O-pins. The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk by 50% and use 3&amp;amp;thinsp;mm LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3 mm LEDs, 50% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|DUCK 3&amp;amp;thinsp;mm Construction Kit Instructions Rev. 1.0]] for PCB Rev. 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] for ATtiny84 or ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
In this version, the ISP pins are shared with the LEDs, so it&#039;s no longer possible to use a jumper. Instead, the always-on mode can be activated by holding down the button while power is applied. To exit this mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
This version is using a low-cost microcontroller with an 8051 core made by STCmicro. The rest of the circuit is identical to version 2.0. &lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk to 75% size.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|DUCK 75% Construction Kit Instructions Rev. 4.1]] for PCB Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
The firmware is written in assembler and supports controller models STC8G1K08 (8&amp;amp;nbsp;KiB Flash) and STC8G1K17 (17&amp;amp;nbsp;KiB Flash). The kit contains STC8G1K08-38I-DIP16 or STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
If you make any changes, use [http://john.ccac.rwth-aachen.de:8000/as/ AS] to assemble the firmware. The microcontroller has a UART bootloader in ROM, so programming only requires a USB to UART converter, a diode and a resistor. The connections are shown in the microcontroller&#039;s datasheet. Instead of the Windows application from STCmicro, I use [https://github.com/grigorig/stcgal stcgal] for programming.&lt;br /&gt;
&lt;br /&gt;
=== Special Modes ===&lt;br /&gt;
&lt;br /&gt;
* Always-on mode (duck can&#039;t be turned off with the button): hold down the button while power is applied, then release.&lt;br /&gt;
* Test mode (LEDs light up one by one in sequence): hold down the button while power is applied and keep holding for at least 5 seconds.&lt;br /&gt;
&lt;br /&gt;
To exit a special mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4929</id>
		<title>DuckEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4929"/>
		<updated>2025-08-12T10:40:31Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=5 mm LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;Duck&#039;&#039;&#039; was inspired by the &amp;quot;duck&amp;quot; presented by the French Embassy on the camp [[OHM2013|Observe. Hack. Make. 2013]]. They installed a [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg big button labelled &amp;quot;Do not press here&amp;quot;], which played a loud duck quack when pressed.&lt;br /&gt;
&lt;br /&gt;
This version consists of 34 LEDs on a circuit board which are arranged in the shape of a duck and play varying animations. The button is located in one corner, the quacking sound is played back through a mini speaker on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Variants == &lt;br /&gt;
&lt;br /&gt;
There are several variants of the Duck:&lt;br /&gt;
* The original 100% size version.&lt;br /&gt;
* A 75% size version.&lt;br /&gt;
* A 50% size version, using 3 mm LEDs.&lt;br /&gt;
* A 50% size version using SMD components - see [[DuckMiniEnglish|DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The animations are written in a special pseudo language created from assembly macros. The File &amp;quot;animations/ani_list.asm&amp;quot; specifies the order and number of repeats of the animations, while the comments at the beginning of the file explain the available pseudo commands that can be used to create animations. The other files in the &amp;quot;animations&amp;quot; directory are example animations. To create your own animation program, you can either enter all animation commands directly into the file &amp;quot;ani_list.asm&amp;quot; or create a separate file for each animation and then add them to &amp;quot;ani_list.asm&amp;quot; using the &amp;quot;.include&amp;quot; directive.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
The sound to be played when the button is pressed is stored as a list of unsigned 8-bit values, i.e. the value 128 (0x80) is the zero level (silence). The value 0 must not be part of the audio data as it is used to detect the end of the list. The usable range of data values is thus 1 to 255 (128&amp;amp;plusmn;127). The AVR is clocked at 8&amp;amp;thinsp;MHz and uses an 8 bit PWM to generate the audio signal, which results in a sample rate of 31.25&amp;amp;thinsp;kHz. &lt;br /&gt;
&lt;br /&gt;
To replace the quacking of the duck with a different sound, it must be converted into the described format (8 bits, unsigned, 31.25&amp;amp;thinsp;kHz sample rate) which can be done with the program &amp;quot;Audacity&amp;quot;. The same program can also be used to remove silence before and after the desired sound, as the memory for audio data is very limited. The program and the example animations together require a little over 1&amp;amp;thinsp;KiB of program memory. This leaves just short of 7&amp;amp;thinsp;KiB for audio data, which corresponds to an audio length of approx. 227&amp;amp;thinsp;ms. After converting the audio data with Audacity, the perl script in the &amp;quot;audio&amp;quot; directory can be used to convert the raw audio file to an assembly file which must then be included in the main program file &amp;quot;duck.asm&amp;quot; (in the line immediately following the &amp;quot;audio:&amp;quot; label).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
The circuit is controlled by an ATmega8 which multiplexes the LEDs and plays the quack sound when the button is pushed. The speaker is driven with PWM so no digital to analog converter is necessary. The data for the quack sound occupy approx. three quarters of the program memory, the rest is available for the program code and the animations. The project is powered from a 4.5-5&amp;amp;thinsp;V supply, e.g. three AA batteries.&lt;br /&gt;
&lt;br /&gt;
Two PWM outputs are used for the speaker, with the second output generating the inverse PWM ratio to the first. In this way, the average voltage between the outputs is twice that of a single output to ground, increasing the volume. To get even more volume, two push-pull stages of two transistors each are used to amplify the AVR&#039;s PWM output signals because the internal resistance of the AVR outputs would limit the output current severely if the signals were used unamplified.&lt;br /&gt;
&lt;br /&gt;
The LEDs are connected in a traditional 6x6 matrix with the last two LEDs missing. The columns are directly connected to the AVR outputs without any current limiting resistors, leaving only the AVR&#039;s internal resistance of approx. 25&amp;amp;thinsp;&amp;amp;Omega; to limit the current through the LEDs. The row ouptuts are amplified with NPN transistors to avoid fluctuations in brightness.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Construction Kit Instructions Rev. 1.0]] for PCB Rev. 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] for ATmega8 or ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] for ATmega8 or ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
The always-on mode can be activated by placing a jumper between pins 4 (PB3) and 6 (ground) on the ISP pin header. In this mode, the duck turns on automatically when voltage is applied and can&#039;t be turned off with the button. To leave this mode, it is sufficient to remove the jumper. &lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In the second version, the controller was replaced with an ATtiny84, providing just 11 I/O-pins. The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk by 50% and use 3&amp;amp;thinsp;mm LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3 mm LEDs, 50% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|DUCK 3&amp;amp;thinsp;mm Construction Kit Instructions Rev. 1.0]] for PCB Rev. 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] for ATtiny84 or ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
In this version, the ISP pins are shared with the LEDs, so it&#039;s no longer possible to use a jumper. Instead, the always-on mode can be activated by holding down the button while power is applied. To exit this mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
This version is using a low-cost microcontroller with an 8051 core made by STCmicro. The rest of the circuit is identical to version 2.0. &lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk to 75% size.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|DUCK 75% Construction Kit Instructions Rev. 4.1]] for PCB Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
The firmware is written in assembler and supports controller models STC8G1K08 (8&amp;amp;nbsp;KiB Flash) and STC8G1K17 (17&amp;amp;nbsp;KiB Flash). The kit contains STC8G1K08-38I-DIP16 or STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
If you make any changes, use [http://john.ccac.rwth-aachen.de:8000/as/ AS] to assemble the firmware. The microcontroller has a UART bootloader in ROM, so programming only requires a USB to UART converter, a diode and a resistor. The connections are shown in the microcontroller&#039;s datasheet. Instead of the Windows application from STCmicro, I use [https://github.com/grigorig/stcgal stcgal] for programming.&lt;br /&gt;
&lt;br /&gt;
=== Special Modes ===&lt;br /&gt;
&lt;br /&gt;
* Always-on mode (duck can&#039;t be turned off with the button): hold down the button while power is applied, then release.&lt;br /&gt;
* Test mode (LEDs light up one by one in sequence): hold down the button while power is applied and keep holding for at least 5 seconds.&lt;br /&gt;
&lt;br /&gt;
To exit a special mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4928</id>
		<title>Duck</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4928"/>
		<updated>2025-08-12T10:40:06Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: /* Varianten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=5-mm-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Duck&#039;&#039;&#039; (Ente) wurde von der &amp;quot;Ente&amp;quot; der French Embassy auf dem Camp [[OHM2013|Observe. Hack. Make. 2013]] inspiriert. Dort gab es einen [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg großen, mit &amp;quot;Do not press here&amp;quot; beschrifteten Taster], welcher ein Enten-Quaken abspielte, wenn man ihn drückte.&lt;br /&gt;
&lt;br /&gt;
Diese Version besteht aus 34 LEDs auf einer Platine, welche in Entenform angeordnet sind und verschiedene Animationen abspielen. Der Taster befindet sich in einer Ecke der Platine, das Quaken wird über einen Mini-Lautsprecher auf der Platine wiedergegeben.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
&lt;br /&gt;
Es existieren mehrere Varianten der Ente:&lt;br /&gt;
* Das Original in 100% Größe.&lt;br /&gt;
* Eine auf 75% Größe reduzierte Version.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit 3-mm-LEDs.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit SMD-Bauteilen - siehe [[DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animationen ==&lt;br /&gt;
&lt;br /&gt;
Die Animationen werden in einer eigenen Pseudo-Sprache aus Assemblermakros geschrieben. Die Datei &amp;quot;animations/ani_list.asm&amp;quot; enthält die Reihenfolge und Wiederholhäufigkeit der Animationen, in den Kommentaren am Anfang der Datei sind zudem die zur Verfügung stehenden Pseudo-Befehle erklärt. Die restlichen Dateien im &amp;quot;animations&amp;quot;-Verzeichnis sind Beispielanimationen. Um ein eigenes Animationsprogramm zu erstellen kann entweder die gesamte Animations-Abfolge in die Datei &amp;quot;ani_list.asm&amp;quot; geschrieben werden, oder mehrere Animationen können als asm-Dateien gespeichert und dann mit der &amp;quot;.include&amp;quot;-Direktive in &amp;quot;ani_list.asm&amp;quot; eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Das auf Tastendruck abzuspielende Geräusch wird als Liste aus nicht vorzeichenbehafteten 8-Bit-Werten gespeichert, d.h. der Wert 128 (0x80) entspricht der Nulllinie (Stille). Der Wert 0 darf nicht in den Daten vorkommen, da er zur Erkennung des Endes verwendet wird. Der nutzbare Datenbereich ist daher 1 bis 255 (128&amp;amp;plusmn;127). Der Microcontroller wird mit 8&amp;amp;thinsp;MHz getaktet und verwendet eine 8-Bit-PWM zur Erzeugung des Audiosignals, woraus sich eine Abtastrate von 31.25&amp;amp;thinsp;kHz ergibt. &lt;br /&gt;
&lt;br /&gt;
Um das Quaken der Ente durch eine anderes Geräusch zu ersetzen muss dieses zunächst in das beschriene Format gebracht werden (8 Bit, kein Vorzeichen, 31.25&amp;amp;thinsp;kHz Abtastrate), was z.B. mit dem Programm Audacity möglich ist. Mit dem selben Programm kann man auch eventuelle Stille vor und nach der Aufnahme entfernen, da nur sehr begrenzt Speicher für die Audiodaten bereitsteht. Das Programm belegt zusammen mit den Beispiel-Animationen gut 1&amp;amp;thinsp;KiB im Programmspeicher des ATmega8. Für die Audiodaten verbleiben also knapp 7&amp;amp;thinsp;KiB, das entspricht einer Länge von ca. 227&amp;amp;thinsp;ms. Nachdem die Audiodaten mit Audacity exportiert wurden, können Sie mit dem Perlscript im Verzeichnis &amp;quot;audio&amp;quot; in eine Assemblerdatei konvertiert werden, die dann nur noch in das Hauptprogramm &amp;quot;duck.asm&amp;quot; eingebunden werden muss (Zeile unter der Sprungmarke &amp;quot;audio:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung wird von einem ATmega8 gesteuert, welcher die LEDs multiplext und bei Bedarf das Quaken abspielt. Der Lautsprecher wird per PWM angesteuert, so dass kein Digital-Analog-Wandler benötigt wird. Die Daten für das Quak-Geräusch belegen ca. drei Viertel des Programmspeichers, der Rest wird für den Programmcode und die Animationen verwendet. Das Projekt wird mit 4.5-5&amp;amp;thinsp;V betrieben, z.B. aus drei AA-Batterien.&lt;br /&gt;
&lt;br /&gt;
Für den Lautsprecher werden zwei PWM-Ausgänge verwendet, wobei der zweite Ausgang das inverse PWM-Verhältnis des ersten ausgibt. Auf diese Weise ist die mittlere Spannung zwischen den Ausgängen doppelt so hoch als wenn nur ein Ausgang verwendet würde, die Lautstärke erhöht sich entsprechend. Um noch mehr Lautstärke zu erreichen werden die beiden PWM-Signale von Gegentaktstufen aus je zwei Transistoren verstärkt, da sonst der Innenwiderstand der AVR-Pins den Strom durch den Lautsprecher sehr begrenzen würde.&lt;br /&gt;
&lt;br /&gt;
Die LEDs sind zu einer herkömmlichen 6x6-Matrix verschaltet, wobei allerdings die letzten zwei LEDs fehlen. Die Spalten sind direkt ohne Vorwiderstände mit den Ausgängen des AVR verbunden, so dass nur der interne Widerstand der AVR-Ausgänge von ca. 25&amp;amp;thinsp;&amp;amp;Omega; den Strom durch die LEDs begrenzt. Die Ausgänge für die Zeilen werden von NPN-Transistoren verstärkt, um Helligkeitsschwankungen zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] für ATmega8 oder ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] für ATmega8 oder ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Mit einem Jumper zwischen Pins 4 (PB3) und 6 (Masse) auf der ISP-Stiftleiste kann der Immer-An-Modus aktiviert werden. In diesem Modus schaltet sich die Ente beim Anlegen der Spannungsversorgung automatisch ein und lässt sich auch nicht mit dem Taster abschalten. Um den Modus wieder zu verlassen reicht es, den Jumper wieder abzuziehen.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In der zweiten Version wurde der Controller durch einen ATtiny84 ersetzt. Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen halber Größe mit 3-mm-LEDs verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3-mm-LEDs, halbe Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84 oder ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Da in dieser Version die ISP-Pins auch LEDs ansteuern, kann kein Jumper mehr verwendet werden. Stattdessen wird der Immer-An-Modus aktiviert, indem beim Anlegen der Versorgungsspannung der Taster gedrückt gehalten wird. Um den Modus wieder zu verlassen, muss die Versorgungsspannung wieder abgeschaltet werden. &lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
In dieser Version kommt ein besonders kostengünstiger Microcontroller mit 8051-Kern von STCmicro zum Einsatz. Der Rest der Schaltung ist identisch mit Version 2.0.&lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen mit 75% Größe verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|Bausatz-Anleitung DUCK 75% Rev. 4.1]] für Platine Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Assembler geschrieben und unterstützt die Controller-Modelle STC8G1K08 (8&amp;amp;nbsp;KiB Flash) und STC8G1K17 (17&amp;amp;nbsp;KiB Flash). Der Bausatz enthält  einen STC8G1K08-38I-DIP16 oder STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
Wenn die Firmware geändert wurden, kann sie mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] neu assembliert werden. Der  Microcontroller hat einen UART-Bootloader im ROM, so dass zum Programmieren lediglich ein USB-auf-UART-Konverter, eine Diode und ein Widerstand notwendig sind. Die Beschaltung wird im Datenblatt des Controllers gezeigt. zum Programmieren verwende ich [https://github.com/grigorig/stcgal stcgal] anstelle des Windows-Programms von STCmicro.&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Modi ===&lt;br /&gt;
&lt;br /&gt;
* Immer-an-Modus (Ente kann nicht mit dem Taster ausgeschaltet werden): Taster beim Anlegen der Versorgungsspannung gedrückt halten, danach loslassen. &lt;br /&gt;
* Testmodus (LEDs leuchten der Reihe nach einzeln auf): Taster beim Anlegen der Versorgungsspannung gedrückt halten und anschließend für mindestens 5 Sekunden gedrückt halten.&lt;br /&gt;
&lt;br /&gt;
Um einen speziellen Modus zu verlassen muss die Versorgungsspannung abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4927</id>
		<title>DuckEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4927"/>
		<updated>2025-08-12T10:38:56Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=5 mm LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;Duck&#039;&#039;&#039; was inspired by the &amp;quot;duck&amp;quot; presented by the French Embassy on the camp [[OHM2013|Observe. Hack. Make. 2013]]. They installed a [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg big button labelled &amp;quot;Do not press here&amp;quot;], which played a loud duck quack when pressed.&lt;br /&gt;
&lt;br /&gt;
This version consists of 34 LEDs on a circuit board which are arranged in the shape of a duck and play varying animations. The button is located in one corner, the quacking sound is played back through a mini speaker on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Variants == &lt;br /&gt;
&lt;br /&gt;
There are several variants of the Duck:&lt;br /&gt;
* A 75% size version (prototype only).&lt;br /&gt;
* A 50% size version, using 3 mm LEDs.&lt;br /&gt;
* A 50% size version using SMD components - see [[DuckMiniEnglish|DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The animations are written in a special pseudo language created from assembly macros. The File &amp;quot;animations/ani_list.asm&amp;quot; specifies the order and number of repeats of the animations, while the comments at the beginning of the file explain the available pseudo commands that can be used to create animations. The other files in the &amp;quot;animations&amp;quot; directory are example animations. To create your own animation program, you can either enter all animation commands directly into the file &amp;quot;ani_list.asm&amp;quot; or create a separate file for each animation and then add them to &amp;quot;ani_list.asm&amp;quot; using the &amp;quot;.include&amp;quot; directive.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
The sound to be played when the button is pressed is stored as a list of unsigned 8-bit values, i.e. the value 128 (0x80) is the zero level (silence). The value 0 must not be part of the audio data as it is used to detect the end of the list. The usable range of data values is thus 1 to 255 (128&amp;amp;plusmn;127). The AVR is clocked at 8&amp;amp;thinsp;MHz and uses an 8 bit PWM to generate the audio signal, which results in a sample rate of 31.25&amp;amp;thinsp;kHz. &lt;br /&gt;
&lt;br /&gt;
To replace the quacking of the duck with a different sound, it must be converted into the described format (8 bits, unsigned, 31.25&amp;amp;thinsp;kHz sample rate) which can be done with the program &amp;quot;Audacity&amp;quot;. The same program can also be used to remove silence before and after the desired sound, as the memory for audio data is very limited. The program and the example animations together require a little over 1&amp;amp;thinsp;KiB of program memory. This leaves just short of 7&amp;amp;thinsp;KiB for audio data, which corresponds to an audio length of approx. 227&amp;amp;thinsp;ms. After converting the audio data with Audacity, the perl script in the &amp;quot;audio&amp;quot; directory can be used to convert the raw audio file to an assembly file which must then be included in the main program file &amp;quot;duck.asm&amp;quot; (in the line immediately following the &amp;quot;audio:&amp;quot; label).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
The circuit is controlled by an ATmega8 which multiplexes the LEDs and plays the quack sound when the button is pushed. The speaker is driven with PWM so no digital to analog converter is necessary. The data for the quack sound occupy approx. three quarters of the program memory, the rest is available for the program code and the animations. The project is powered from a 4.5-5&amp;amp;thinsp;V supply, e.g. three AA batteries.&lt;br /&gt;
&lt;br /&gt;
Two PWM outputs are used for the speaker, with the second output generating the inverse PWM ratio to the first. In this way, the average voltage between the outputs is twice that of a single output to ground, increasing the volume. To get even more volume, two push-pull stages of two transistors each are used to amplify the AVR&#039;s PWM output signals because the internal resistance of the AVR outputs would limit the output current severely if the signals were used unamplified.&lt;br /&gt;
&lt;br /&gt;
The LEDs are connected in a traditional 6x6 matrix with the last two LEDs missing. The columns are directly connected to the AVR outputs without any current limiting resistors, leaving only the AVR&#039;s internal resistance of approx. 25&amp;amp;thinsp;&amp;amp;Omega; to limit the current through the LEDs. The row ouptuts are amplified with NPN transistors to avoid fluctuations in brightness.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Construction Kit Instructions Rev. 1.0]] for PCB Rev. 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] for ATmega8 or ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] for ATmega8 or ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
The always-on mode can be activated by placing a jumper between pins 4 (PB3) and 6 (ground) on the ISP pin header. In this mode, the duck turns on automatically when voltage is applied and can&#039;t be turned off with the button. To leave this mode, it is sufficient to remove the jumper. &lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In the second version, the controller was replaced with an ATtiny84, providing just 11 I/O-pins. The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk by 50% and use 3&amp;amp;thinsp;mm LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3 mm LEDs, 50% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|DUCK 3&amp;amp;thinsp;mm Construction Kit Instructions Rev. 1.0]] for PCB Rev. 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] for ATtiny84 or ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
In this version, the ISP pins are shared with the LEDs, so it&#039;s no longer possible to use a jumper. Instead, the always-on mode can be activated by holding down the button while power is applied. To exit this mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
This version is using a low-cost microcontroller with an 8051 core made by STCmicro. The rest of the circuit is identical to version 2.0. &lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk to 75% size.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|DUCK 75% Construction Kit Instructions Rev. 4.1]] for PCB Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
The firmware is written in assembler and supports controller models STC8G1K08 (8&amp;amp;nbsp;KiB Flash) and STC8G1K17 (17&amp;amp;nbsp;KiB Flash). The kit contains STC8G1K08-38I-DIP16 or STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
If you make any changes, use [http://john.ccac.rwth-aachen.de:8000/as/ AS] to assemble the firmware. The microcontroller has a UART bootloader in ROM, so programming only requires a USB to UART converter, a diode and a resistor. The connections are shown in the microcontroller&#039;s datasheet. Instead of the Windows application from STCmicro, I use [https://github.com/grigorig/stcgal stcgal] for programming.&lt;br /&gt;
&lt;br /&gt;
=== Special Modes ===&lt;br /&gt;
&lt;br /&gt;
* Always-on mode (duck can&#039;t be turned off with the button): hold down the button while power is applied, then release.&lt;br /&gt;
* Test mode (LEDs light up one by one in sequence): hold down the button while power is applied and keep holding for at least 5 seconds.&lt;br /&gt;
&lt;br /&gt;
To exit a special mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4926</id>
		<title>DuckEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckEnglish&amp;diff=4926"/>
		<updated>2025-08-12T10:38:42Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=5 mm LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;Duck&#039;&#039;&#039; was inspired by the &amp;quot;duck&amp;quot; presented by the French Embassy on the camp [[OHM2013|Observe. Hack. Make. 2013]]. They installed a [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg big button labelled &amp;quot;Do not press here&amp;quot;], which played a loud duck quack when pressed.&lt;br /&gt;
&lt;br /&gt;
This version consists of 34 LEDs on a circuit board which are arranged in the shape of a duck and play varying animations. The button is located in one corner, the quacking sound is played back through a mini speaker on the PCB.&lt;br /&gt;
&lt;br /&gt;
== Variants == &lt;br /&gt;
&lt;br /&gt;
There are several variants of the Duck:&lt;br /&gt;
* A 75% size version (prototype only).&lt;br /&gt;
* A 50% size version, using 3 mm LEDs.&lt;br /&gt;
* A 50% size version using SMD components - see [[DuckMiniEnglish|DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The animations are written in a special pseudo language created from assembly macros. The File &amp;quot;animations/ani_list.asm&amp;quot; specifies the order and number of repeats of the animations, while the comments at the beginning of the file explain the available pseudo commands that can be used to create animations. The other files in the &amp;quot;animations&amp;quot; directory are example animations. To create your own animation program, you can either enter all animation commands directly into the file &amp;quot;ani_list.asm&amp;quot; or create a separate file for each animation and then add them to &amp;quot;ani_list.asm&amp;quot; using the &amp;quot;.include&amp;quot; directive.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
The sound to be played when the button is pressed is stored as a list of unsigned 8-bit values, i.e. the value 128 (0x80) is the zero level (silence). The value 0 must not be part of the audio data as it is used to detect the end of the list. The usable range of data values is thus 1 to 255 (128&amp;amp;plusmn;127). The AVR is clocked at 8&amp;amp;thinsp;MHz and uses an 8 bit PWM to generate the audio signal, which results in a sample rate of 31.25&amp;amp;thinsp;kHz. &lt;br /&gt;
&lt;br /&gt;
To replace the quacking of the duck with a different sound, it must be converted into the described format (8 bits, unsigned, 31.25&amp;amp;thinsp;kHz sample rate) which can be done with the program &amp;quot;Audacity&amp;quot;. The same program can also be used to remove silence before and after the desired sound, as the memory for audio data is very limited. The program and the example animations together require a little over 1&amp;amp;thinsp;KiB of program memory. This leaves just short of 7&amp;amp;thinsp;KiB for audio data, which corresponds to an audio length of approx. 227&amp;amp;thinsp;ms. After converting the audio data with Audacity, the perl script in the &amp;quot;audio&amp;quot; directory can be used to convert the raw audio file to an assembly file which must then be included in the main program file &amp;quot;duck.asm&amp;quot; (in the line immediately following the &amp;quot;audio:&amp;quot; label).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v1.0]]&lt;br /&gt;
The circuit is controlled by an ATmega8 which multiplexes the LEDs and plays the quack sound when the button is pushed. The speaker is driven with PWM so no digital to analog converter is necessary. The data for the quack sound occupy approx. three quarters of the program memory, the rest is available for the program code and the animations. The project is powered from a 4.5-5&amp;amp;thinsp;V supply, e.g. three AA batteries.&lt;br /&gt;
&lt;br /&gt;
Two PWM outputs are used for the speaker, with the second output generating the inverse PWM ratio to the first. In this way, the average voltage between the outputs is twice that of a single output to ground, increasing the volume. To get even more volume, two push-pull stages of two transistors each are used to amplify the AVR&#039;s PWM output signals because the internal resistance of the AVR outputs would limit the output current severely if the signals were used unamplified.&lt;br /&gt;
&lt;br /&gt;
The LEDs are connected in a traditional 6x6 matrix with the last two LEDs missing. The columns are directly connected to the AVR outputs without any current limiting resistors, leaving only the AVR&#039;s internal resistance of approx. 25&amp;amp;thinsp;&amp;amp;Omega; to limit the current through the LEDs. The row ouptuts are amplified with NPN transistors to avoid fluctuations in brightness.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Construction Kit Instructions Rev. 1.0]] for PCB Rev. 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] for ATmega8 or ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] for ATmega8 or ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
The always-on mode can be activated by placing a jumper between pins 4 (PB3) and 6 (ground) on the ISP pin header. In this mode, the duck turns on automatically when voltage is applied and can&#039;t be turned off with the button. To leave this mode, it is sufficient to remove the jumper. &lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In the second version, the controller was replaced with an ATtiny84, providing just 11 I/O-pins. The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk by 50% and use 3&amp;amp;thinsp;mm LEDs.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3 mm LEDs, 50% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|DUCK 3&amp;amp;thinsp;mm Construction Kit Instructions Rev. 1.0]] for PCB Rev. 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] for ATtiny84 or ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Always-on Mode ===&lt;br /&gt;
&lt;br /&gt;
In this version, the ISP pins are shared with the LEDs, so it&#039;s no longer possible to use a jumper. Instead, the always-on mode can be activated by holding down the button while power is applied. To exit this mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
This version is using a low-cost microcontroller with an 8051 core made by STCmicro. The rest of the circuit is identical to version 2.0. &lt;br /&gt;
&lt;br /&gt;
Currently, the only boards using this version are shrunk to 75% size.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% size ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|PCB Layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|DUCK 75% Construction Kit Instructions Rev. 4.1]] for PCB Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
The firmware is written in assembler and supports controller models STC8G1K08 (8&amp;amp;nbsp;KiB Flash) and STC8G1K17 (17&amp;amp;nbsp;KiB Flash). The kit contains STC8G1K08-38I-DIP16 or STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
If you make any changes, use [http://john.ccac.rwth-aachen.de:8000/as/ AS] to assemble the firmware. The microcontroller has a UART bootloader in ROM, so programming only requires a USB to UART converter, a diode and a resistor. The connections are shown in the microcontroller&#039;s datasheet. Instead of the Windows application from STCmicro, I use [https://github.com/grigorig/stcgal stcgal] for programming.&lt;br /&gt;
&lt;br /&gt;
=== Special Modes ===&lt;br /&gt;
&lt;br /&gt;
* Always-on mode (duck can&#039;t be turned off with the button): hold down the button while power is applied, then release.&lt;br /&gt;
* Test mode (LEDs light up one by one in sequence): hold down the button while power is applied and keep holding for at least 5 seconds.&lt;br /&gt;
&lt;br /&gt;
To exit a special mode, power has to be turned off.&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4925</id>
		<title>Duck</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4925"/>
		<updated>2025-08-12T10:38:00Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=5-mm-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Duck&#039;&#039;&#039; (Ente) wurde von der &amp;quot;Ente&amp;quot; der French Embassy auf dem Camp [[OHM2013|Observe. Hack. Make. 2013]] inspiriert. Dort gab es einen [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg großen, mit &amp;quot;Do not press here&amp;quot; beschrifteten Taster], welcher ein Enten-Quaken abspielte, wenn man ihn drückte.&lt;br /&gt;
&lt;br /&gt;
Diese Version besteht aus 34 LEDs auf einer Platine, welche in Entenform angeordnet sind und verschiedene Animationen abspielen. Der Taster befindet sich in einer Ecke der Platine, das Quaken wird über einen Mini-Lautsprecher auf der Platine wiedergegeben.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
&lt;br /&gt;
Es existieren mehrere Varianten der Ente:&lt;br /&gt;
* Eine auf 75% Größe reduzierte Version (nur Prototyp).&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit 3-mm-LEDs.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit SMD-Bauteilen - siehe [[DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animationen ==&lt;br /&gt;
&lt;br /&gt;
Die Animationen werden in einer eigenen Pseudo-Sprache aus Assemblermakros geschrieben. Die Datei &amp;quot;animations/ani_list.asm&amp;quot; enthält die Reihenfolge und Wiederholhäufigkeit der Animationen, in den Kommentaren am Anfang der Datei sind zudem die zur Verfügung stehenden Pseudo-Befehle erklärt. Die restlichen Dateien im &amp;quot;animations&amp;quot;-Verzeichnis sind Beispielanimationen. Um ein eigenes Animationsprogramm zu erstellen kann entweder die gesamte Animations-Abfolge in die Datei &amp;quot;ani_list.asm&amp;quot; geschrieben werden, oder mehrere Animationen können als asm-Dateien gespeichert und dann mit der &amp;quot;.include&amp;quot;-Direktive in &amp;quot;ani_list.asm&amp;quot; eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Das auf Tastendruck abzuspielende Geräusch wird als Liste aus nicht vorzeichenbehafteten 8-Bit-Werten gespeichert, d.h. der Wert 128 (0x80) entspricht der Nulllinie (Stille). Der Wert 0 darf nicht in den Daten vorkommen, da er zur Erkennung des Endes verwendet wird. Der nutzbare Datenbereich ist daher 1 bis 255 (128&amp;amp;plusmn;127). Der Microcontroller wird mit 8&amp;amp;thinsp;MHz getaktet und verwendet eine 8-Bit-PWM zur Erzeugung des Audiosignals, woraus sich eine Abtastrate von 31.25&amp;amp;thinsp;kHz ergibt. &lt;br /&gt;
&lt;br /&gt;
Um das Quaken der Ente durch eine anderes Geräusch zu ersetzen muss dieses zunächst in das beschriene Format gebracht werden (8 Bit, kein Vorzeichen, 31.25&amp;amp;thinsp;kHz Abtastrate), was z.B. mit dem Programm Audacity möglich ist. Mit dem selben Programm kann man auch eventuelle Stille vor und nach der Aufnahme entfernen, da nur sehr begrenzt Speicher für die Audiodaten bereitsteht. Das Programm belegt zusammen mit den Beispiel-Animationen gut 1&amp;amp;thinsp;KiB im Programmspeicher des ATmega8. Für die Audiodaten verbleiben also knapp 7&amp;amp;thinsp;KiB, das entspricht einer Länge von ca. 227&amp;amp;thinsp;ms. Nachdem die Audiodaten mit Audacity exportiert wurden, können Sie mit dem Perlscript im Verzeichnis &amp;quot;audio&amp;quot; in eine Assemblerdatei konvertiert werden, die dann nur noch in das Hauptprogramm &amp;quot;duck.asm&amp;quot; eingebunden werden muss (Zeile unter der Sprungmarke &amp;quot;audio:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|Duck v1.0]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung wird von einem ATmega8 gesteuert, welcher die LEDs multiplext und bei Bedarf das Quaken abspielt. Der Lautsprecher wird per PWM angesteuert, so dass kein Digital-Analog-Wandler benötigt wird. Die Daten für das Quak-Geräusch belegen ca. drei Viertel des Programmspeichers, der Rest wird für den Programmcode und die Animationen verwendet. Das Projekt wird mit 4.5-5&amp;amp;thinsp;V betrieben, z.B. aus drei AA-Batterien.&lt;br /&gt;
&lt;br /&gt;
Für den Lautsprecher werden zwei PWM-Ausgänge verwendet, wobei der zweite Ausgang das inverse PWM-Verhältnis des ersten ausgibt. Auf diese Weise ist die mittlere Spannung zwischen den Ausgängen doppelt so hoch als wenn nur ein Ausgang verwendet würde, die Lautstärke erhöht sich entsprechend. Um noch mehr Lautstärke zu erreichen werden die beiden PWM-Signale von Gegentaktstufen aus je zwei Transistoren verstärkt, da sonst der Innenwiderstand der AVR-Pins den Strom durch den Lautsprecher sehr begrenzen würde.&lt;br /&gt;
&lt;br /&gt;
Die LEDs sind zu einer herkömmlichen 6x6-Matrix verschaltet, wobei allerdings die letzten zwei LEDs fehlen. Die Spalten sind direkt ohne Vorwiderstände mit den Ausgängen des AVR verbunden, so dass nur der interne Widerstand der AVR-Ausgänge von ca. 25&amp;amp;thinsp;&amp;amp;Omega; den Strom durch die LEDs begrenzt. Die Ausgänge für die Zeilen werden von NPN-Transistoren verstärkt, um Helligkeitsschwankungen zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] für ATmega8 oder ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] für ATmega8 oder ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Mit einem Jumper zwischen Pins 4 (PB3) und 6 (Masse) auf der ISP-Stiftleiste kann der Immer-An-Modus aktiviert werden. In diesem Modus schaltet sich die Ente beim Anlegen der Spannungsversorgung automatisch ein und lässt sich auch nicht mit dem Taster abschalten. Um den Modus wieder zu verlassen reicht es, den Jumper wieder abzuziehen.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In der zweiten Version wurde der Controller durch einen ATtiny84 ersetzt. Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen halber Größe mit 3-mm-LEDs verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3-mm-LEDs, halbe Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84 oder ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Da in dieser Version die ISP-Pins auch LEDs ansteuern, kann kein Jumper mehr verwendet werden. Stattdessen wird der Immer-An-Modus aktiviert, indem beim Anlegen der Versorgungsspannung der Taster gedrückt gehalten wird. Um den Modus wieder zu verlassen, muss die Versorgungsspannung wieder abgeschaltet werden. &lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|Duck v4.0 75%]]&lt;br /&gt;
In dieser Version kommt ein besonders kostengünstiger Microcontroller mit 8051-Kern von STCmicro zum Einsatz. Der Rest der Schaltung ist identisch mit Version 2.0.&lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen mit 75% Größe verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|Bausatz-Anleitung DUCK 75% Rev. 4.1]] für Platine Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Assembler geschrieben und unterstützt die Controller-Modelle STC8G1K08 (8&amp;amp;nbsp;KiB Flash) und STC8G1K17 (17&amp;amp;nbsp;KiB Flash). Der Bausatz enthält  einen STC8G1K08-38I-DIP16 oder STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
Wenn die Firmware geändert wurden, kann sie mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] neu assembliert werden. Der  Microcontroller hat einen UART-Bootloader im ROM, so dass zum Programmieren lediglich ein USB-auf-UART-Konverter, eine Diode und ein Widerstand notwendig sind. Die Beschaltung wird im Datenblatt des Controllers gezeigt. zum Programmieren verwende ich [https://github.com/grigorig/stcgal stcgal] anstelle des Windows-Programms von STCmicro.&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Modi ===&lt;br /&gt;
&lt;br /&gt;
* Immer-an-Modus (Ente kann nicht mit dem Taster ausgeschaltet werden): Taster beim Anlegen der Versorgungsspannung gedrückt halten, danach loslassen. &lt;br /&gt;
* Testmodus (LEDs leuchten der Reihe nach einzeln auf): Taster beim Anlegen der Versorgungsspannung gedrückt halten und anschließend für mindestens 5 Sekunden gedrückt halten.&lt;br /&gt;
&lt;br /&gt;
Um einen speziellen Modus zu verlassen muss die Versorgungsspannung abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4924</id>
		<title>Duck</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=Duck&amp;diff=4924"/>
		<updated>2025-08-12T10:37:41Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=Duck&lt;br /&gt;
|Bild=Duck.jpg&lt;br /&gt;
|Jahr=2015&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=5-mm-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;Duck&#039;&#039;&#039; (Ente) wurde von der &amp;quot;Ente&amp;quot; der French Embassy auf dem Camp [[OHM2013|Observe. Hack. Make. 2013]] inspiriert. Dort gab es einen [http://arne.blinkenarea.org/OHM2013/0882%20Do%20not%20press%20here%20%28electronic%20duck%29.jpg großen, mit &amp;quot;Do not press here&amp;quot; beschrifteten Taster], welcher ein Enten-Quaken abspielte, wenn man ihn drückte.&lt;br /&gt;
&lt;br /&gt;
Diese Version besteht aus 34 LEDs auf einer Platine, welche in Entenform angeordnet sind und verschiedene Animationen abspielen. Der Taster befindet sich in einer Ecke der Platine, das Quaken wird über einen Mini-Lautsprecher auf der Platine wiedergegeben.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
&lt;br /&gt;
Es existieren mehrere Varianten der Ente:&lt;br /&gt;
* Eine auf 75% Größe reduzierte Version (nur Prototyp).&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit 3-mm-LEDs.&lt;br /&gt;
* Eine auf 50% Größe reduzierte Version mit SMD-Bauteilen - siehe [[DuckMini]].&lt;br /&gt;
&lt;br /&gt;
== Animationen ==&lt;br /&gt;
&lt;br /&gt;
Die Animationen werden in einer eigenen Pseudo-Sprache aus Assemblermakros geschrieben. Die Datei &amp;quot;animations/ani_list.asm&amp;quot; enthält die Reihenfolge und Wiederholhäufigkeit der Animationen, in den Kommentaren am Anfang der Datei sind zudem die zur Verfügung stehenden Pseudo-Befehle erklärt. Die restlichen Dateien im &amp;quot;animations&amp;quot;-Verzeichnis sind Beispielanimationen. Um ein eigenes Animationsprogramm zu erstellen kann entweder die gesamte Animations-Abfolge in die Datei &amp;quot;ani_list.asm&amp;quot; geschrieben werden, oder mehrere Animationen können als asm-Dateien gespeichert und dann mit der &amp;quot;.include&amp;quot;-Direktive in &amp;quot;ani_list.asm&amp;quot; eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
&lt;br /&gt;
Das auf Tastendruck abzuspielende Geräusch wird als Liste aus nicht vorzeichenbehafteten 8-Bit-Werten gespeichert, d.h. der Wert 128 (0x80) entspricht der Nulllinie (Stille). Der Wert 0 darf nicht in den Daten vorkommen, da er zur Erkennung des Endes verwendet wird. Der nutzbare Datenbereich ist daher 1 bis 255 (128&amp;amp;plusmn;127). Der Microcontroller wird mit 8&amp;amp;thinsp;MHz getaktet und verwendet eine 8-Bit-PWM zur Erzeugung des Audiosignals, woraus sich eine Abtastrate von 31.25&amp;amp;thinsp;kHz ergibt. &lt;br /&gt;
&lt;br /&gt;
Um das Quaken der Ente durch eine anderes Geräusch zu ersetzen muss dieses zunächst in das beschriene Format gebracht werden (8 Bit, kein Vorzeichen, 31.25&amp;amp;thinsp;kHz Abtastrate), was z.B. mit dem Programm Audacity möglich ist. Mit dem selben Programm kann man auch eventuelle Stille vor und nach der Aufnahme entfernen, da nur sehr begrenzt Speicher für die Audiodaten bereitsteht. Das Programm belegt zusammen mit den Beispiel-Animationen gut 1&amp;amp;thinsp;KiB im Programmspeicher des ATmega8. Für die Audiodaten verbleiben also knapp 7&amp;amp;thinsp;KiB, das entspricht einer Länge von ca. 227&amp;amp;thinsp;ms. Nachdem die Audiodaten mit Audacity exportiert wurden, können Sie mit dem Perlscript im Verzeichnis &amp;quot;audio&amp;quot; in eine Assemblerdatei konvertiert werden, die dann nur noch in das Hauptprogramm &amp;quot;duck.asm&amp;quot; eingebunden werden muss (Zeile unter der Sprungmarke &amp;quot;audio:&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck.jpg|thumb|DUCK v1.0]]&lt;br /&gt;
&lt;br /&gt;
Die Schaltung wird von einem ATmega8 gesteuert, welcher die LEDs multiplext und bei Bedarf das Quaken abspielt. Der Lautsprecher wird per PWM angesteuert, so dass kein Digital-Analog-Wandler benötigt wird. Die Daten für das Quak-Geräusch belegen ca. drei Viertel des Programmspeichers, der Rest wird für den Programmcode und die Animationen verwendet. Das Projekt wird mit 4.5-5&amp;amp;thinsp;V betrieben, z.B. aus drei AA-Batterien.&lt;br /&gt;
&lt;br /&gt;
Für den Lautsprecher werden zwei PWM-Ausgänge verwendet, wobei der zweite Ausgang das inverse PWM-Verhältnis des ersten ausgibt. Auf diese Weise ist die mittlere Spannung zwischen den Ausgängen doppelt so hoch als wenn nur ein Ausgang verwendet würde, die Lautstärke erhöht sich entsprechend. Um noch mehr Lautstärke zu erreichen werden die beiden PWM-Signale von Gegentaktstufen aus je zwei Transistoren verstärkt, da sonst der Innenwiderstand der AVR-Pins den Strom durch den Lautsprecher sehr begrenzen würde.&lt;br /&gt;
&lt;br /&gt;
Die LEDs sind zu einer herkömmlichen 6x6-Matrix verschaltet, wobei allerdings die letzten zwei LEDs fehlen. Die Spalten sind direkt ohne Vorwiderstände mit den Ausgängen des AVR verbunden, so dass nur der interne Widerstand der AVR-Ausgänge von ca. 25&amp;amp;thinsp;&amp;amp;Omega; den Strom durch die LEDs begrenzt. Die Ausgänge für die Zeilen werden von NPN-Transistoren verstärkt, um Helligkeitsschwankungen zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-20161204.zip|Firmware Version 2016-12-04]] für ATmega8 oder ATmega8A&lt;br /&gt;
* [[:Media:Duck-20151215.zip|Firmware Version 2015-12-15]] für ATmega8 oder ATmega8A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Mit einem Jumper zwischen Pins 4 (PB3) und 6 (Masse) auf der ISP-Stiftleiste kann der Immer-An-Modus aktiviert werden. In diesem Modus schaltet sich die Ente beim Anlegen der Spannungsversorgung automatisch ein und lässt sich auch nicht mit dem Taster abschalten. Um den Modus wieder zu verlassen reicht es, den Jumper wieder abzuziehen.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v2_50.jpg|thumb|Duck v2.0 50% (3mm LEDs)]]&lt;br /&gt;
In der zweiten Version wurde der Controller durch einen ATtiny84 ersetzt. Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen halber Größe mit 3-mm-LEDs verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 3-mm-LEDs, halbe Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck-3mm-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck-3mm-instructions-rev1.0.pdf|Bausatz-Anleitung Rev. 1.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84 oder ATtiny84A&lt;br /&gt;
&lt;br /&gt;
=== Immer-An-Modus ===&lt;br /&gt;
&lt;br /&gt;
Da in dieser Version die ISP-Pins auch LEDs ansteuern, kann kein Jumper mehr verwendet werden. Stattdessen wird der Immer-An-Modus aktiviert, indem beim Anlegen der Versorgungsspannung der Taster gedrückt gehalten wird. Um den Modus wieder zu verlassen, muss die Versorgungsspannung wieder abgeschaltet werden. &lt;br /&gt;
&lt;br /&gt;
== Version 4.0 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Duck_v4_75.jpg|thumb|DUCK v4.0 75%]]&lt;br /&gt;
In dieser Version kommt ein besonders kostengünstiger Microcontroller mit 8051-Kern von STCmicro zum Einsatz. Der Rest der Schaltung ist identisch mit Version 2.0.&lt;br /&gt;
&lt;br /&gt;
Im Moment wird diese Version nur von Platinen mit 75% Größe verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
==== 75% Größe ====&lt;br /&gt;
&lt;br /&gt;
* [[:File:Duck75-v4.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:Duck75-v4.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-v4.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:Duck75-instructions-rev4.1.pdf|Bausatz-Anleitung DUCK 75% Rev. 4.1]] für Platine Rev. 4.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:duck_v4_2025-04-08.zip|Firmware Version 2025-04-08]]&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Assembler geschrieben und unterstützt die Controller-Modelle STC8G1K08 (8&amp;amp;nbsp;KiB Flash) und STC8G1K17 (17&amp;amp;nbsp;KiB Flash). Der Bausatz enthält  einen STC8G1K08-38I-DIP16 oder STC8G1K17-38I-DIP16.&lt;br /&gt;
&lt;br /&gt;
Wenn die Firmware geändert wurden, kann sie mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] neu assembliert werden. Der  Microcontroller hat einen UART-Bootloader im ROM, so dass zum Programmieren lediglich ein USB-auf-UART-Konverter, eine Diode und ein Widerstand notwendig sind. Die Beschaltung wird im Datenblatt des Controllers gezeigt. zum Programmieren verwende ich [https://github.com/grigorig/stcgal stcgal] anstelle des Windows-Programms von STCmicro.&lt;br /&gt;
&lt;br /&gt;
=== Spezielle Modi ===&lt;br /&gt;
&lt;br /&gt;
* Immer-an-Modus (Ente kann nicht mit dem Taster ausgeschaltet werden): Taster beim Anlegen der Versorgungsspannung gedrückt halten, danach loslassen. &lt;br /&gt;
* Testmodus (LEDs leuchten der Reihe nach einzeln auf): Taster beim Anlegen der Versorgungsspannung gedrückt halten und anschließend für mindestens 5 Sekunden gedrückt halten.&lt;br /&gt;
&lt;br /&gt;
Um einen speziellen Modus zu verlassen muss die Versorgungsspannung abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/Duck/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4923</id>
		<title>DuckMiniEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4923"/>
		<updated>2025-08-09T12:45:58Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=SMD LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DuckMini&#039;&#039;&#039; is the &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt; version of the &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt; [[DuckEnglish|Duck]]. The circuit and software are mostly identical. More detailed information about the circuit and software can be found on the [[DuckEnglish|Duck project page]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The circuit is identical to the full-size duck except for the microcontroller. For cost reasons, the ATmega8 microcontroller was replaced with an ATtiny88 which is only available in an SMD package. Instead of the loose battery holder for 3 AA cells, this version uses a soldered-down holder for 3 AAA cells on the bottom side of the PCB. It is recommended to also stick a piece of double-sided foam tape (mirror mounting tape) in the corner opposite the battery holder&#039;s pins. Above the battery holder, the PCB is just large enough to provide space for the large tantalum capacitor and an &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt; pin header.&lt;br /&gt;
&lt;br /&gt;
Instead of using the large battery holder, the PCB also provides a footprint for a CR2032 button cell holder. Due to the lower voltage and the large internal resistance of the button cell, the quacking of the duck will be very quiet and the LEDs will be dimmer, but for a duck without sound which won&#039;t be turned on for days at a time, the button cell is still a good option.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Kit instructions Rev. 1.1]] for PCB Rev 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In version 2, the controller was replaced with a 14-pin type, either ATtiny84 or ATtiny804/814 can be used.&lt;br /&gt;
&lt;br /&gt;
The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Kit instructions Rev. 2.0]] for PCB Rev 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
As the ISP interface is sharing pins with the LEDs in this version, the always-on jumper as used in version 1 is no longer possible. Instead, the always-on mode can be activated by holding down the button while inserting the batteries. An automatic power-on when voltage is applied is not possible.&lt;br /&gt;
&lt;br /&gt;
ATtiny804/814 don&#039;t support the ISP interface, so the 2x3 pin header becomes useless when using these controllers. In-system programming is still possible by soldering a wire to the unused pin 10 if the controller and connecting it to a UPDI programmer. Of course, ground also has to be connected to the programmer. &lt;br /&gt;
&lt;br /&gt;
The PWM pins are different between ATtiny804/814 and ATtiny84. Pin 6 (PA7/OC0B on ATtiny84) can be set to the PWM signal WO0 with PORTMUX, requiring only a simple register setting at the beginning of the program. On pin 5 (PB2/OC0A on ATtiny84), no PWM signal is available. Instead, the CCL module is used to internally pass the WO1 signal through to LUT1-OUT, which in turn can be output on pin 5. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware version 2022-07-25]] for ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware version 2022-07-24]] for ATtiny804 and ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
For version 3, the controller was replaced again, this time with a one-time programmable Padauk PMS152. Both the 14-pin and 16-pin versions can be used, the extra 2 pins are not used. For development, the pin-compatible PFS154 with flash memory is also supported, but the LED outputs have different pin driver strengths, so some LEDs will be brighter than others. With the PMS152, all pins used for the LEDs have the same drive strength.&lt;br /&gt;
&lt;br /&gt;
As the PMS152 provides only 1280 14-bit words of ROM, an additional 24C64 EEPROM is necessary to hold the audio data. Larger EEPROMs can be used for longer audio. The audio format is the same as described in [[DuckEnglish|Duck]], the raw audio file (with a zero byte at the end!) is programmed into the EEPROM starting at address 0.&lt;br /&gt;
&lt;br /&gt;
Version 3.1 fixes two issues with version 3.0: it adds the missing pull-up resistor on the SDA line (SCL is always driven by the microcontroller) and it swaps PB3 &amp;amp; PB4.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Kit instructions Rev. 3.0]] for PCB Rev 3.0&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Kit instructions Rev. 3.1]] for PCB Rev 3.1&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware must be assembled with [http://john.ccac.rwth-aachen.de:8000/as/ AS] and programmed with the [https://free-pdk.github.io/ Easy-PDK programmer]. As mentioned above, the version 3.0 boards have a layout error that requires a firmware fix. For these boards only, &amp;quot;PCB_30_FIX&amp;quot; has to be set to 1.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware version 3]] for PMS152 and PFS154 (for PCB revisions 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 replaces the combination of Padauk microcontroller and external EEPROM with a cheap ARM microcontroller with 20 KiB of Flash memory. The controller (PY32F002A) can be connected to a programmer (CMSIS-CAP compatible) and re-programmed as desired using solder pads on the Duck PCB.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Kit instructions Rev. 5.0]] for PCB Rev 5.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware is written in Cortex M0+ assembly and can be assembled with the usual GNU tools for ARM controllers (arm-none-eabi-*, Debian package gcc-arm-none-eabi). In the assembly file, there&#039;s an option for boards without transistors in the LED matrix, it should be set to 0 for the Duck Mini. For programming with pyocd, you also need the &amp;quot;Device Family Pack&amp;quot; from the manufacturer, available at https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/. In pyocd.yaml (part of the Duck firmware), you have to change the filename for the pack to match the version you downloaded.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware version 2025-08-04]] for PY32F002A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4922</id>
		<title>DuckMini</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4922"/>
		<updated>2025-08-09T12:45:16Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=SMD-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;DuckMini&#039;&#039;&#039; ist die &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt;-Ausführung der &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt;-[[Duck]] (Ente), die Entstehungsgeschichte ist dort erklärt. Schaltung und Software sind weitgehend identisch.&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Die Schaltung ist bis auf den Microcontroller-Typ identisch mit der [[Duck|&amp;quot;großen&amp;quot; Ente]]. Aus Preisgründen wurde der ATmega8 durch den ausschließlich im SMD-Gehäuse erhältlichen ATtiny88 ersetzt. Anstelle eines losen Batteriehalters mit 3 Mignon-Zellen (AA) wird ein auf der Platinenrückseite angelöteter Batteriehalter für 3 Micro-Zellen (AAA) eingesetzt. Es empfiehlt sich, den Batteriehalter zusätzlich mit einem Stück doppelseitigem Schaum-Klebeband (Spiegel-Montageband) an der den Pins gegenüberliegenden Ecke auf der Platine festzukleben. Über dem Batteriehalter ist die Platine gerade groß genug, um den großen Tantal-Kondensator und eine Stiftleiste für die &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt;-Schnittstelle unterzubringen. &lt;br /&gt;
&lt;br /&gt;
Anstelle des großen Batteriehalters kann die Platine auch einen Knopfzellenhalter für eine CR2032 aufnehmen. Durch die geringere Spannung und den hohen Innenwiderstand der Knopfzelle ist das Quaken der Ente jedoch sehr leise und die LEDs sind etwas dunkler. Für eine Ente ohne Ton, die nicht tagelang eingeschaltet bleibt, ist die Knopfzelle dennoch eine sinnvolle Alternative.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Bausatz-Anleitung Rev. 1.1]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware Version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 2 wurde der Controller durch einen 14-Pin-Typ ersetzt, es können entweder ATtiny84 oder ATtiny804/814 eingesetzt werden. &lt;br /&gt;
&lt;br /&gt;
Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Bausatz-Anleitung Rev. 2.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Da sich die ISP-Schnittstelle in dieser Version die Pins mit den LEDs teilt, ist der Immer-An-Jumper wie in Version 1 nicht mehr möglich. Stattdessen kann man den Taster beim Einlegen der Batterien gedrückt halten, um den Immer-An-Modus zu aktivieren. Ein automatisches Einschalten beim Anlegen der Spannung ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die ATtiny804/814 unterstützen die ISP-Schnittstelle nicht, daher ist die 2x3-Stiftleiste mit diesen Controllern nutzlos. Eine Programmierung im System ist dennoch möglich, indem ein Kabel an den ungenutzten Pin 10 angelötet und mit einem UPDI-Programmer verbunden wird. Zusätzlich muss der Programmer natürlich noch mit Masse verbunden werden. &lt;br /&gt;
&lt;br /&gt;
Die PWM-Pins liegen beim ATtiny804/814 auch anders als beim ATtiny84. Pin 6 (PA7/OC0B beim ATtiny84) unterstützt per PORTMUX das PWM-Signal WO0, so dass eine einfache Register-Einstellung am Beginn des Programms ausreicht. Auf Pin 5 (PB2/OC0A beim ATtiny84) ist jedoch gar kein PWM-Signal verfügbar. Stattdessen wird das CCL-Modul verwendet, um intern das WO1-Signal auf LUT1-OUT durchzureichen, was dann auf Pin 5 ausgegeben werden kann. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware Version 2022-07-24]] für ATtiny804 und ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 3 wurde der Microcontroller erneut ersetzt, diesmal durch den nur einmal programmierbaren Padauk PMS152. Sowohl die 14- als auch die 16-Pin-Version kann eingesetzt werden, die zusätzlichen beiden Pins bleiben ungenutzt. Für Entwicklungszwecke wird auch der pinkompatible PMS154 mit Flash-Speicher unterstützt, allerdings haben die LED-Ausgänge unterschiedlich starke Pin-Treiber, so dass einige LEDs heller leuchten als andere. Mit dem PMS152 haben alle Pins, an denen LEDs angeschlossen sind, gleich starke Pin-Treiber.&lt;br /&gt;
&lt;br /&gt;
Da der PMS152 nur 1280 14-Bit Worte ROM hat, ist ein zusätzliches 24C64-EEPROM nötig, in dem die Audio-Daten gespeichert werden. Mit größeren EEPROMs sind auch längere Audio-Sequenzen möglich. Das Audio-Format ist identisch wie in [[Duck]] beschrieben, die Audio-Rohdaten werden (mit abschließendem Null-Byte!) direkt ins EEPROM geschrieben, angefangen an Adresse 0.&lt;br /&gt;
&lt;br /&gt;
In Version 3.1 sind zwei Fehler der Version 3.0 behoben: der fehlende Pull-Up-Widerstand an SDA wurde ergänzt (SCL wird immer vom Microcontroller getrieben) und PB3 &amp;amp; PB4 wurden vertauscht.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Bausatz-Anleitung Rev. 3.0]] für Platine Rev 3.0 (englisch)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Bausatz-Anleitung Rev. 3.1]] für Platine Rev 3.1 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware muss mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] assembliert und mit dem [https://free-pdk.github.io/ Easy-PDK-Programmer] in den Controller geschrieben werden. Wie oben erwähnt haben die Platinen der Version 3.0 einen Layoutfehler, der eine Firmware-Korrektur erfordert. Nur für diese Platinen muss daher &amp;quot;PCB_30_FIX&amp;quot; auf 1 gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware Version 3]] für PMS152 und PFS154 (für Platinenversionen 3.0 &amp;amp; 3.1)&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5.0]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 verwendet statt der Kombination aus Padauk-Microcontroller und externem EEPROM einen kostengünstigen ARM-Microcontroller mit 20 KiB Flash-Speicher. Der Controller (PY32F002A) kann über Lötflächen auf der Platine mit einem Programmer (CMSIS-DAP-kompatibel) verbunden und umprogrammiert werden.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Bausatz-Anleitung Rev. 5.0]] für Platine Rev 5.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Cortex-M0+-Assembler geschrieben und wird mit den für ARM-Controller üblichen GNU-Programmen (arm-none-eabi-*, Debian-Paket gcc-arm-none-eabi) übersetzt. In der Assemblerdatei gibt es eine Option für Schaltungen ohne Treibertransistoren in der LED-Matrix, für die Duck Mini sollte sie auf 0 gesetzt werden. Zum Programmieren mit pyocd wird außerdem das &amp;quot;Device Family Pack&amp;quot; vom Hersteller benötigt, es kann unter https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/ heruntergeladen werden. In pyocd.yaml (Bestandteil der Enten-Firmware) muß der Dateiname des Packs entsprechend zur heruntergeladenen Version geändert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware Version 2025-08-04]] für PY32F002A&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4921</id>
		<title>DuckMini</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMini&amp;diff=4921"/>
		<updated>2025-08-09T11:02:29Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 Graustufen&lt;br /&gt;
|Leuchtmittel=SMD-LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;DuckMini&#039;&#039;&#039; ist die &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt;-Ausführung der &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt;-[[Duck]] (Ente), die Entstehungsgeschichte ist dort erklärt. Schaltung und Software sind weitgehend identisch.&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Die Schaltung ist bis auf den Microcontroller-Typ identisch mit der [[Duck|&amp;quot;großen&amp;quot; Ente]]. Aus Preisgründen wurde der ATmega8 durch den ausschließlich im SMD-Gehäuse erhältlichen ATtiny88 ersetzt. Anstelle eines losen Batteriehalters mit 3 Mignon-Zellen (AA) wird ein auf der Platinenrückseite angelöteter Batteriehalter für 3 Micro-Zellen (AAA) eingesetzt. Es empfiehlt sich, den Batteriehalter zusätzlich mit einem Stück doppelseitigem Schaum-Klebeband (Spiegel-Montageband) an der den Pins gegenüberliegenden Ecke auf der Platine festzukleben. Über dem Batteriehalter ist die Platine gerade groß genug, um den großen Tantal-Kondensator und eine Stiftleiste für die &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt;-Schnittstelle unterzubringen. &lt;br /&gt;
&lt;br /&gt;
Anstelle des großen Batteriehalters kann die Platine auch einen Knopfzellenhalter für eine CR2032 aufnehmen. Durch die geringere Spannung und den hohen Innenwiderstand der Knopfzelle ist das Quaken der Ente jedoch sehr leise und die LEDs sind etwas dunkler. Für eine Ente ohne Ton, die nicht tagelang eingeschaltet bleibt, ist die Knopfzelle dennoch eine sinnvolle Alternative.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Bausatz-Anleitung Rev. 1.1]] für Platine Rev 1.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware Version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 2 wurde der Controller durch einen 14-Pin-Typ ersetzt, es können entweder ATtiny84 oder ATtiny804/814 eingesetzt werden. &lt;br /&gt;
&lt;br /&gt;
Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch). &lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Bausatz-Anleitung Rev. 2.0]] für Platine Rev 2.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Da sich die ISP-Schnittstelle in dieser Version die Pins mit den LEDs teilt, ist der Immer-An-Jumper wie in Version 1 nicht mehr möglich. Stattdessen kann man den Taster beim Einlegen der Batterien gedrückt halten, um den Immer-An-Modus zu aktivieren. Ein automatisches Einschalten beim Anlegen der Spannung ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die ATtiny804/814 unterstützen die ISP-Schnittstelle nicht, daher ist die 2x3-Stiftleiste mit diesen Controllern nutzlos. Eine Programmierung im System ist dennoch möglich, indem ein Kabel an den ungenutzten Pin 10 angelötet und mit einem UPDI-Programmer verbunden wird. Zusätzlich muss der Programmer natürlich noch mit Masse verbunden werden. &lt;br /&gt;
&lt;br /&gt;
Die PWM-Pins liegen beim ATtiny804/814 auch anders als beim ATtiny84. Pin 6 (PA7/OC0B beim ATtiny84) unterstützt per PORTMUX das PWM-Signal WO0, so dass eine einfache Register-Einstellung am Beginn des Programms ausreicht. Auf Pin 5 (PB2/OC0A beim ATtiny84) ist jedoch gar kein PWM-Signal verfügbar. Stattdessen wird das CCL-Modul verwendet, um intern das WO1-Signal auf LUT1-OUT durchzureichen, was dann auf Pin 5 ausgegeben werden kann. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware Version 2022-07-25]] für ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware Version 2022-07-24]] für ATtiny804 und ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In Version 3 wurde der Microcontroller erneut ersetzt, diesmal durch den nur einmal programmierbaren Padauk PMS152. Sowohl die 14- als auch die 16-Pin-Version kann eingesetzt werden, die zusätzlichen beiden Pins bleiben ungenutzt. Für Entwicklungszwecke wird auch der pinkompatible PMS154 mit Flash-Speicher unterstützt, allerdings haben die LED-Ausgänge unterschiedlich starke Pin-Treiber, so dass einige LEDs heller leuchten als andere. Mit dem PMS152 haben alle Pins, an denen LEDs angeschlossen sind, gleich starke Pin-Treiber.&lt;br /&gt;
&lt;br /&gt;
Da der PMS152 nur 1280 14-Bit Worte ROM hat, ist ein zusätzliches 24C64-EEPROM nötig, in dem die Audio-Daten gespeichert werden. Mit größeren EEPROMs sind auch längere Audio-Sequenzen möglich. Das Audio-Format ist identisch wie in [[Duck]] beschrieben, die Audio-Rohdaten werden (mit abschließendem Null-Byte!) direkt ins EEPROM geschrieben, angefangen an Adresse 0.&lt;br /&gt;
&lt;br /&gt;
In Version 3.1 sind zwei Fehler der Version 3.0 behoben: der fehlende Pull-Up-Widerstand an SDA wurde ergänzt (SCL wird immer vom Microcontroller getrieben) und PB3 &amp;amp; PB4 wurden vertauscht.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Bausatz-Anleitung Rev. 3.0]] für Platine Rev 3.0 (englisch)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Bausatz-Anleitung Rev. 3.1]] für Platine Rev 3.1 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware muss mit [http://john.ccac.rwth-aachen.de:8000/as/ AS] assembliert und mit dem [https://free-pdk.github.io/ Easy-PDK-Programmer] in den Controller geschrieben werden. Wie oben erwähnt haben die Platinen der Version 3.0 einen Layoutfehler, der eine Firmware-Korrektur erfordert. Nur für diese Platinen muss daher &amp;quot;PCB_30_FIX&amp;quot; auf 1 gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware Version 3]] für PMS152 und PFS154&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 verwendet statt der Kombination aus Padauk-Microcontroller und externem EEPROM einen kostengünstigen ARM-Microcontroller mit 20 KiB Flash-Speicher. Der Controller (PY32F002A) kann über Lötflächen auf der Platine mit einem Programmer (CMSIS-DAP-kompatibel) verbunden und umprogrammiert werden.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schaltplan]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schaltplan]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|Platinenlayout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Bausatz-Anleitung Rev. 5.0]] für Platine Rev 5.0 (englisch)&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
Die Firmware ist in Cortex-M0+-Assembler geschrieben und wird mit den für ARM-Controller üblichen GNU-Programmen (arm-none-eabi-*, Debian-Paket gcc-arm-none-eabi) übersetzt. In der Assemblerdatei gibt es eine Option für Schaltungen ohne Treibertransistoren in der LED-Matrix, für die Duck Mini sollte sie auf 0 gesetzt werden. Zum Programmieren mit pyocd wird außerdem das &amp;quot;Device Family Pack&amp;quot; vom Hersteller benötigt, es kann unter https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/ heruntergeladen werden. In pyocd.yaml (Bestandteil der Enten-Firmware) muß der Dateiname des Packs entsprechend zur heruntergeladenen Version geändert werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Taster beim Einlegen der Batterien gedrückt gehalten wird, aktiviert die Firmware den Immer-An-Modus, in dem die Ente nicht mit dem Taster ein- oder ausgeschaltet werden kann (Quaken funktioniert weiterhin). Wird der Taster für 5 Sekunden gedrückt gehalten geht die Firmware in einen Test-Modus, in dem die LEDs langsam nacheinander aufleuchten. Dieser Modus ist nützlich um zu prüfen, ob alles richtig gelötet ist und um Fehler zu finden. Beide Modi können nur durch Herausnehmen der Batterien verlassen werden.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware Version 2025-08-04]] für PY32F002A&lt;br /&gt;
&lt;br /&gt;
== Fotos ==&lt;br /&gt;
&lt;br /&gt;
Mehr Fotos unter http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4920</id>
		<title>DuckMiniEnglish</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=DuckMiniEnglish&amp;diff=4920"/>
		<updated>2025-08-09T11:02:16Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxEnglish&lt;br /&gt;
|Name=DuckMini&lt;br /&gt;
|Bild=DuckMini.jpg&lt;br /&gt;
|Jahr=2019&lt;br /&gt;
|Pixel=34&lt;br /&gt;
|Farben=8 grayscales&lt;br /&gt;
|Leuchtmittel=SMD LEDs&lt;br /&gt;
|Leistung=&lt;br /&gt;
|Kontakt=[[User:ArneRossius|Arne Rossius]]&lt;br /&gt;
|Webseite= &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;DuckMini&#039;&#039;&#039; is the &amp;lt;abbr title=&amp;quot;Surface Mounted Devices&amp;quot;&amp;gt;SMD&amp;lt;/abbr&amp;gt; version of the &amp;lt;abbr title=&amp;quot;Through Hole Technology&amp;quot;&amp;gt;THT&amp;lt;/abbr&amp;gt; [[DuckEnglish|Duck]]. The circuit and software are mostly identical. More detailed information about the circuit and software can be found on the [[DuckEnglish|Duck project page]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
[[File:Duck-mini_v1_bottom.jpg|thumb|Version 1]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
The circuit is identical to the full-size duck except for the microcontroller. For cost reasons, the ATmega8 microcontroller was replaced with an ATtiny88 which is only available in an SMD package. Instead of the loose battery holder for 3 AA cells, this version uses a soldered-down holder for 3 AAA cells on the bottom side of the PCB. It is recommended to also stick a piece of double-sided foam tape (mirror mounting tape) in the corner opposite the battery holder&#039;s pins. Above the battery holder, the PCB is just large enough to provide space for the large tantalum capacitor and an &amp;lt;abbr title=&amp;quot;In-System Programming&amp;quot;&amp;gt;ISP&amp;lt;/abbr&amp;gt; pin header.&lt;br /&gt;
&lt;br /&gt;
Instead of using the large battery holder, the PCB also provides a footprint for a CR2032 button cell holder. Due to the lower voltage and the large internal resistance of the button cell, the quacking of the duck will be very quiet and the LEDs will be dimmer, but for a duck without sound which won&#039;t be turned on for days at a time, the button cell is still a good option.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev1.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev1.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev1.1.pdf|Kit instructions Rev. 1.1]] for PCB Rev 1.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
* [[:Media:DuckMini-20190501.zip|Firmware version 2019-05-01]]&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
[[File:Duck-mini_v2_bottom.jpg|thumb|Version 2]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
In version 2, the controller was replaced with a 14-pin type, either ATtiny84 or ATtiny804/814 can be used.&lt;br /&gt;
&lt;br /&gt;
The LEDs are now controlled with Charlieplexing, requiring only 7 pins. The transistors have been rewired to an emitter follower configuration, eliminating the need for base resistors and making the arrangement compatible with Charlieplexing. One column of LEDs is selected by driving the corresponding pin high, causing the transistor to supply the LED anodes with voltage, and the cathode pins for all LEDs in that column which should light up are driven low, while the remaining pins remain floating (set to input). This cycles through all 6 columns and repeats (like multiplexing).&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev2.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev2.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev2.0.pdf|Kit instructions Rev. 2.0]] for PCB Rev 2.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
As the ISP interface is sharing pins with the LEDs in this version, the always-on jumper as used in version 1 is no longer possible. Instead, the always-on mode can be activated by holding down the button while inserting the batteries. An automatic power-on when voltage is applied is not possible.&lt;br /&gt;
&lt;br /&gt;
ATtiny804/814 don&#039;t support the ISP interface, so the 2x3 pin header becomes useless when using these controllers. In-system programming is still possible by soldering a wire to the unused pin 10 if the controller and connecting it to a UPDI programmer. Of course, ground also has to be connected to the programmer. &lt;br /&gt;
&lt;br /&gt;
The PWM pins are different between ATtiny804/814 and ATtiny84. Pin 6 (PA7/OC0B on ATtiny84) can be set to the PWM signal WO0 with PORTMUX, requiring only a simple register setting at the beginning of the program. On pin 5 (PB2/OC0A on ATtiny84), no PWM signal is available. Instead, the CCL module is used to internally pass the WO1 signal through to LUT1-OUT, which in turn can be output on pin 5. &lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-25.zip|Firmware version 2022-07-25]] for ATtiny84&lt;br /&gt;
* [[:Media:Duck-tn84-2022-07-24.zip|Firmware version 2022-07-24]] for ATtiny804 and ATtiny814&lt;br /&gt;
&lt;br /&gt;
== Version 3.0/3.1 ==&lt;br /&gt;
[[File:Duck-mini_v3_bottom.jpg|thumb|Version 3]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
For version 3, the controller was replaced again, this time with a one-time programmable Padauk PMS152. Both the 14-pin and 16-pin versions can be used, the extra 2 pins are not used. For development, the pin-compatible PFS154 with flash memory is also supported, but the LED outputs have different pin driver strengths, so some LEDs will be brighter than others. With the PMS152, all pins used for the LEDs have the same drive strength.&lt;br /&gt;
&lt;br /&gt;
As the PMS152 provides only 1280 14-bit words of ROM, an additional 24C64 EEPROM is necessary to hold the audio data. Larger EEPROMs can be used for longer audio. The audio format is the same as described in [[DuckEnglish|Duck]], the raw audio file (with a zero byte at the end!) is programmed into the EEPROM starting at address 0.&lt;br /&gt;
&lt;br /&gt;
Version 3.1 fixes two issues with version 3.0: it adds the missing pull-up resistor on the SDA line (SCL is always driven by the microcontroller) and it swaps PB3 &amp;amp; PB4.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev3.1-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev3.1.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.0.pdf|Kit instructions Rev. 3.0]] for PCB Rev 3.0&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev3.1.pdf|Kit instructions Rev. 3.1]] for PCB Rev 3.1&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware must be assembled with [http://john.ccac.rwth-aachen.de:8000/as/ AS] and programmed with the [https://free-pdk.github.io/ Easy-PDK programmer]. As mentioned above, the version 3.0 boards have a layout error that requires a firmware fix. For these boards only, &amp;quot;PCB_30_FIX&amp;quot; has to be set to 1.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-pdk-v3.zip|Firmware version 3]] for PMS152 and PFS154&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
[[File:Duck-mini_v5_bottom.jpg|thumb|Version 5]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Version 5 replaces the combination of Padauk microcontroller and external EEPROM with a cheap ARM microcontroller with 20 KiB of Flash memory. The controller (PY32F002A) can be connected to a programmer (CMSIS-CAP compatible) and re-programmed as desired using solder pads on the Duck PCB.&lt;br /&gt;
&lt;br /&gt;
* [[:File:DuckMini-rev5.0-schematic.png|Schematic]] (PNG)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.sch|Schematic]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-rev5.0.brd|PCB layout]] (EAGLE 4.x)&lt;br /&gt;
* [[:Media:DuckMini-instructions-rev5.0.pdf|Kit instructions Rev. 5.0]] for PCB Rev 5.0&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The firmware is written in Cortex M0+ assembly and can be assembled with the usual GNU tools for ARM controllers (arm-none-eabi-*, Debian package gcc-arm-none-eabi). In the assembly file, there&#039;s an option for boards without transistors in the LED matrix, it should be set to 0 for the Duck Mini. For programming with pyocd, you also need the &amp;quot;Device Family Pack&amp;quot; from the manufacturer, available at https://www.keil.arm.com/packs/py32f0xx_dfp-puya/versions/. In pyocd.yaml (part of the Duck firmware), you have to change the filename for the pack to match the version you downloaded.&lt;br /&gt;
&lt;br /&gt;
If you hold down the button while inserting batteries, the firmware will enter always-on mode, which disables the power-on/off with the button (quacking still works).  If you keep holding the button for 5 seconds, the Duck will enter a test mode in which the LEDs slowly light up in sequence. This mode is useful for checking that everything is soldered correctly and finding mistakes. Both modes can only be left by removing the batteries.&lt;br /&gt;
&lt;br /&gt;
* [[:Media:Duck-puya-20250804.zip|Firmware version 2025-08-04]] for PY32F002A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
More photos at http://arne.blinkenarea.org/duck-mini/gallery.htm.&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
	<entry>
		<id>https://wiki.blinkenarea.org/index.php?title=File:DuckMini-instructions-rev5.0.pdf&amp;diff=4919</id>
		<title>File:DuckMini-instructions-rev5.0.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.blinkenarea.org/index.php?title=File:DuckMini-instructions-rev5.0.pdf&amp;diff=4919"/>
		<updated>2025-08-09T11:00:51Z</updated>

		<summary type="html">&lt;p&gt;ArneRossius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ArneRossius</name></author>
	</entry>
</feed>