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

<channel>
	<title>Raspberry Pi-Archiv - flohs blog</title>
	<atom:link href="https://blog.florianehrle.de/en/category/hardware-en/sbc/sbc-raspberry-pi/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.florianehrle.de/en/category/hardware-en/sbc/sbc-raspberry-pi/</link>
	<description>reboot tut gut</description>
	<lastBuildDate>Wed, 04 Feb 2026 09:11:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://blog.florianehrle.de/wp-content/uploads/2025/10/cropped-icon-32x32.png</url>
	<title>Raspberry Pi-Archiv - flohs blog</title>
	<link>https://blog.florianehrle.de/en/category/hardware-en/sbc/sbc-raspberry-pi/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Lazarus with hardware access on the Raspberry Pi &#8211; rpi_hal</title>
		<link>https://blog.florianehrle.de/en/2025/03/04/lazarus-with-hardware-access-on-the-raspberry-pi-rpi_hal/</link>
					<comments>https://blog.florianehrle.de/en/2025/03/04/lazarus-with-hardware-access-on-the-raspberry-pi-rpi_hal/#respond</comments>
		
		<dc:creator><![CDATA[Florian Ehrle]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 07:04:00 +0000</pubDate>
				<category><![CDATA[Object Pascal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">https://blog.florianehrle.de/?p=7933</guid>

					<description><![CDATA[<p>A blessing for anyone who writes programs in Object Pascal on and for the Raspberry Pi. The strongest argument for using a single-board computer is direct access to [&#8230;]</p>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2025/03/04/lazarus-with-hardware-access-on-the-raspberry-pi-rpi_hal/" data-wpel-link="internal">Lazarus with hardware access on the Raspberry Pi &#8211; rpi_hal</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div style="height:18px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



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



<p class="wp-block-paragraph">A blessing for anyone who writes programs in Object Pascal on and for the Raspberry Pi. The strongest argument for using a single-board computer is direct access to hardware, which is no longer easily possible with x86-based computers.</p>



<p class="wp-block-paragraph">To greatly simplify this access when programming with Lazarus, there is a <strong><a href="https://github.com/rudiratlos/rpi-hal" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">great hardware abstraction layer</a></strong> from <a href="https://github.com/rudiratlos" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">rudiratlos </a>on GitHub:</p>



<h4 class="wp-block-heading"><strong>rpi_hal</strong></h4>



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



<p class="wp-block-paragraph">As usual, integration is done via uses. To do this, <em>rpi_hal.pas</em> and optionally <em>pfio.pas</em> must be located in the project folder:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#e1e4e8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>uses
  RPi_HAL, PFIO;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark" style="background-color: #24292e" tabindex="0"><code><span class="line"><span style="color: #F97583">uses</span></span>
<span class="line"><span style="color: #E1E4E8">  RPi_HAL, PFIO;</span></span></code></pre></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Among other things, I have successfully used this HAL in the Macintosh SE digital picture frame project. There is no easier way to use the GPIOs with Pascal!</p>



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



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2025/03/04/lazarus-with-hardware-access-on-the-raspberry-pi-rpi_hal/" data-wpel-link="internal">Lazarus with hardware access on the Raspberry Pi &#8211; rpi_hal</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.florianehrle.de/en/2025/03/04/lazarus-with-hardware-access-on-the-raspberry-pi-rpi_hal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Macintosh SE, or: Digital picture frame with history</title>
		<link>https://blog.florianehrle.de/en/2025/03/04/macintosh-se-or-digital-picture-frame-with-history/</link>
					<comments>https://blog.florianehrle.de/en/2025/03/04/macintosh-se-or-digital-picture-frame-with-history/#respond</comments>
		
		<dc:creator><![CDATA[Florian Ehrle]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 01:37:00 +0000</pubDate>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">https://blog.florianehrle.de/?p=7765</guid>

					<description><![CDATA[<p>A few years ago, I came across a Macintosh SE 1/40. After a quick inspection, it was clear that at least the motherboard was beyond repair due to [&#8230;]</p>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2025/03/04/macintosh-se-or-digital-picture-frame-with-history/" data-wpel-link="internal">Macintosh SE, or: Digital picture frame with history</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div style="height:18px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



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



<p class="wp-block-paragraph">A few years ago, I came across a Macintosh SE 1/40. After a quick inspection, it was clear that at least the motherboard was beyond repair due to moisture damage. The battery had also leaked, causing half of the motherboard to oxidize. This model then sat around in storage for years.</p>



<p class="wp-block-paragraph">This Macintosh had been used regularly and enjoyed by the person who gave it to me during my student days, so it holds a lot of memories. That was the basis for turning this defective and unusable computer into a kind of time capsule. It was the original owner&#8217;s 60th birthday, so it was the perfect gift.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1536" height="2048" data-id="6447" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789.jpg" alt="" class="wp-image-6447" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0789-1152x1536.jpg 1152w" sizes="(max-width: 1536px) 100vw, 1536px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1536" height="2048" data-id="6449" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790.jpg" alt="" class="wp-image-6449" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0790-1152x1536.jpg 1152w" sizes="(max-width: 1536px) 100vw, 1536px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1536" height="2048" data-id="6448" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791.jpg" alt="" class="wp-image-6448" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0791-1152x1536.jpg 1152w" sizes="(max-width: 1536px) 100vw, 1536px" /></figure>
</figure>



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



<h4 class="wp-block-heading">Condition</h4>



<p class="wp-block-paragraph">First, I took the entire computer apart to see what would fit and to assess the space available:</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2048" height="1536" data-id="6452" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793.jpg" alt="" class="wp-image-6452" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793.jpg 2048w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793-300x225.jpg 300w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793-1200x900.jpg 1200w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793-768x576.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0793-1536x1152.jpg 1536w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1536" height="2048" data-id="6451" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795.jpg" alt="" class="wp-image-6451" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0795-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1536" height="2048" data-id="6450" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796.jpg" alt="" class="wp-image-6450" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0796-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>
</figure>



<p class="wp-block-paragraph">This should be workable!</p>



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



<h4 class="wp-block-heading">The base</h4>



<p class="wp-block-paragraph">What is the most important thing about a digital picture frame?<br>That&#8217;s right &#8211; the image quality.</p>



<p class="wp-block-paragraph">It doesn&#8217;t get any cooler than using components from much newer Apple products:<br>I opted for <strong><a href="https://s.click.aliexpress.com/e/_c4CPeaWn" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">a complete set from China*</a></strong> based on an iPad 3 Retina display.</p>



<p class="wp-block-paragraph">The technical specifications are almost exactly what I had in mind:</p>



<ul class="wp-block-list">
<li>9.7&#8243;</li>



<li>Aspect ratio 4:3, perfect for the screen opening in the Macintosh SE case</li>



<li>2048 x 1536 pixels at 60 Hz</li>



<li>264 ppi</li>



<li>IPS panel, 440 nits brightness</li>



<li>Signal via HDMI</li>
</ul>



<p class="wp-block-paragraph">The project needs to be capable of continuous operation, so an IPS panel with LED backlighting based on E-Ink technology is essentially the best option. Excellent, so the most important component is clear.</p>



<p class="wp-block-paragraph">I attached the panel with 3D-printed adapters that fit the original hole pattern. I elegantly compensated for the round shape of the former CRT screen with Kompriband, which has several advantages:<br>Soft, self-adjusting, and rather matte, it nicely conceals the gap.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1536" height="2048" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826.jpg" alt="First test of the built-in display. Better than expected, the image quality is really good, despite the touchscreen on top!" class="wp-image-6456" style="width:300px" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0826-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<p class="wp-block-paragraph">The display is controlled via <strong><a href="https://amzn.to/4qmAcxf" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">Raspberry Pi 3 B+*</a></strong> using the HDMI output.</p>



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



<h4 class="wp-block-heading">The structure</h4>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1536" height="2048" data-id="6455" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867.jpg" alt="" class="wp-image-6455" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0867-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1536" height="2048" data-id="6454" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868.jpg" alt="" class="wp-image-6454" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0868-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1536" height="2048" data-id="6453" src="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866.jpg" alt="" class="wp-image-6453" srcset="https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866.jpg 1536w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866-225x300.jpg 225w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866-900x1200.jpg 900w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866-768x1024.jpg 768w, https://blog.florianehrle.de/wp-content/uploads/2025/03/IMG_0866-1152x1536.jpg 1152w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></figure>
</figure>



<p class="wp-block-paragraph">The device is primarily operated by touch, but I have implemented three functions as buttons—these can be seen in the third photo, protruding from the slot of the former floppy disk drive. They are stylishly designed in black, resembling floppy disks.</p>



<p class="wp-block-paragraph">In addition, the original LEDs are used to indicate the status of various functions. Both buttons and LEDs are controlled via the GPIOs of the Raspberry Pi used.</p>



<p class="wp-block-paragraph">Sound comes from <strong><a href="https://amzn.to/4a2YINC" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">two simple 5-watt RMS speakers powered by USB*</a></strong>, which are connected to the Raspberry via a 3.5 mm jack. The system and software are stored on a 32 GB MicroSD card (<strong><a href="https://amzn.to/3M4RIbk" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">SanDisk Ultra*</a></strong>), while the actual data (sounds, music, and especially photos and videos) are stored on a 128 GB USB 2.0 stick (<strong><a href="https://amzn.to/4qVmuCp" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">SanDisk Cruzer Blade*</a></strong>).</p>



<p class="wp-block-paragraph">In addition to the “permanently installed” data, there is a USB 2.0 port on the back of the Macintosh, next to the <strong><a href="https://amzn.to/4kmCUSa" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">IEC connector*</a></strong> and power switch, which can be used to add new photos externally (there is a separate menu item for this purpose).</p>



<p class="wp-block-paragraph">An <strong><a href="https://amzn.to/4a2YTsg" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">RTC*</a></strong> is also installed so that special actions can be performed once a year on the recipient&#8217;s birthday (this requires the date and time to be stored).</p>



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



<h4 class="wp-block-heading">Software</h4>



<p class="wp-block-paragraph">Unfortunately, I can&#8217;t go into much detail about the software I created, as it contains personal information about the “target person.” The actual slideshow is based on “<a href="https://github.com/helgeerbe/picframe" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">Picframe</a>”, partly because of its really nice animation options and good performance.</p>



<p class="wp-block-paragraph">I programmed the entire control system and GUI with Lazarus in Object Pascal, also on a Raspberry 3 B+. Pascal is my favorite programming language, along with C#. After HTML, Pascal and C++ were my introduction to the world of scripting and programming as a child, and I have largely stuck with them to this day (Borland Delphi, Embarcadero RAD Studio, Lazarus, Visual Studio, VSCode). Lazarus in particular is a very underrated IDE due to its cross-platform capabilities.</p>



<p class="wp-block-paragraph">Subfunctions are outsourced as scripts, then in Bash.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">The three buttons, which are visually hidden in the disk drive, have the following functions:</p>



<p class="wp-block-paragraph">Left:<br><strong>MENÜ</strong><em> &#8211; Essentially the “Home” button</em></p>



<p class="wp-block-paragraph">Middle:<br><strong>PAUSE</strong><em> &#8211; Pause slideshow (yellow LED flashes when paused)</em></p>



<p class="wp-block-paragraph">Right:<br><strong>MUTE</strong><em> &#8211; Mute sound, press and hold for music information (red LED lights up when muted)</em></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">The main menu has a very specific geometric design and includes Easter eggs and hidden functions. Since the recipient is a fan of <strong><a href="https://amzn.to/4a2Z1rK" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">Udo Lindenberg*</a></strong>, music by this artist plays continuously in the background in shuffle mode. The volume can be controlled centrally via software, and playback is handled by “<a href="https://github.com/libsdl-org/mpg123" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">mpg123</a>”.</p>



<p class="wp-block-paragraph">Videos are downsampled to 720p, as playback was otherwise jerky, and are played via “<a href="https://github.com/videolan/vlc" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">cvlc</a>”. Every keystroke or touchscreen touch is acknowledged by sound effects. However, the photos and graphics were created in the very high native resolution of the display via Photoshop template as JPG or PNG respectively and look very good in terms of quality.</p>



<p class="wp-block-paragraph">There is a “startup animation” and the Rasbian boot is set to <strong>verbose </strong>for the “fancy computer look”. The main program ended up with just over 2,000 lines of code.</p>



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



<h4 class="wp-block-heading">Thoughts on the project</h4>



<p class="wp-block-paragraph">Since the entire project was developed under significant time pressure, there are (unfortunately) only a few photos. I really enjoyed the implementation, and it was another opportunity to test and expand my limits.</p>



<p class="wp-block-paragraph">I had hardly any experience with GPIO and ARM programming, and then to dive right in like this &#8211; well. It was frustrating at times, with several nights spent programming and designing, making many mistakes and ironing them out. Being a perfectionist did more harm than good, but at least the quality level I aimed for and achieved is high.</p>



<p class="wp-block-paragraph">Despite the circumstances, the result is impressive. All things considered, you couldn&#8217;t build a more personalized picture frame—it&#8217;s bursting with memories, little gimmicks, and references. I would build something like this again in the future.</p>



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



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2025/03/04/macintosh-se-or-digital-picture-frame-with-history/" data-wpel-link="internal">Macintosh SE, or: Digital picture frame with history</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.florianehrle.de/en/2025/03/04/macintosh-se-or-digital-picture-frame-with-history/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
