Maggi Snorrason built two connected digital picture frames, one on each side of a long-distance relationship, where each partner holds a remote for the other person's frame: you choose which photos appear on their nightstand, and you can send a message that shows up on their screen. Maggi, an MSc student in Computer and Embedded Systems Engineering at TU Delft, designed the whole thing end to end, from a Raspberry Pi Compute Module 5 and a 2560x1600 display to a wooden frame with a 3D-printed back, a React interface in kiosk mode, and a cloud remote running on a rented server.

  • Two frames, two remotes: each partner controls what the other partner's frame displays, and can send on-screen messages.
  • The hardware is a Raspberry Pi Compute Module 5 driving an 8.9-inch 2560x1600 IPS panel in a wooden frame with a 3D-printed rear cover.
  • The hardest problem was Wi-Fi: a frame that cannot get online is just a photo, so it creates its own hotspot and captive portal to be set up without a keyboard.
  • The build survived a flight in checked luggage, and the project is open under the PolyForm Noncommercial licence.
How the two linked picture frames talk to each otherEach frame runs a React kiosk interface and a local FastAPI service on a Raspberry Pi Compute Module 5 and reaches the internet through a Cloudflare Tunnel. A shared remote controller app runs in Docker on a Hetzner server. Partner A's remote changes the pictures on frame B and partner B's remote changes frame A. Cloudflare Access restricts who can reach the frames. YOUR REMOTE, THEIR FRAME FRAME A Pi Compute Module 5 React kiosk + FastAPI 8.9in 2560x1600 panel Cloudflare Tunnel FRAME B Pi Compute Module 5 React kiosk + FastAPI 8.9in 2560x1600 panel Cloudflare Tunnel CLOUD REMOTE Docker on a Hetzner VPS Partner A's remote picks photos + messages on Frame B Partner B's remote picks photos + messages on Frame A No Wi-Fi? The frame opens its own hotspot and captive portal for setup. answer: a shared nightstand across two countries genztech.blog
Fig 1 The frames never talk to each other directly. Each exposes its own small API through a Cloudflare Tunnel, and the shared remote app, hosted separately, is the only thing allowed to change what they show.

What did Maggi build, exactly?

"There are two digital picture frames, one for each partner," Maggi told us. "Each partner receives a remote for the other partner's picture frame, allowing them to select the pictures displayed on it. A partner can also send messages that display on the other partner's picture frame." The twist is in that middle sentence. A normal smart frame is something you curate for yourself. This one hands the curation to the person you miss, so the photo on your nightstand in the morning is one they chose for you.

RelatedThis Student Built a Powerbank With Batteries You Can Actually Replace

The idea started with an ordinary object. On the project page Maggi explains that the couple lives in different countries while they both study, video calls a lot, and plays online board games and holds virtual movie nights. A printed photo of the partner sat on the nightstand, and looking at it while hunting for a project idea turned into the brief: make the photo live.

Why go through the whole hardware process?

"I wanted to go through the whole process of making a product end to end, starting with the requirements and ending with a functional physical object," Maggi said. "I also wanted to use the opportunity to make something nice for my partner who currently lives in another country." The project page lays that process out in the order a product team would: write requirements, source components, design the 3D model, build the frame, assemble, write the code, deploy. The first frame became the prototype, and the second one, the one that travelled to the partner, was built from what the first taught.

The bill of materials reads like a real product spec rather than a weekend kit. Alongside the Compute Module 5, its mini base board, cooler and antenna kit, there is a Raspberry Pi Camera Module 3 Wide, a mini USB microphone, two 4-ohm 3W speakers driven by a MAX98357A I2S amplifier, a USB-C panel-mount power input and a GPIO terminal breakout. The camera, mic and amplifier are there for a planned video-call mode that Maggi is upfront has not been built yet. The wooden front is screwed onto the black 3D-printed rear cover, every component is fastened down, and the result was sturdy enough to survive a flight in checked luggage.

What was the hardest part?

"The hardest part was making the Wi-Fi connection process robust, as connecting the picture frame to the Wi-Fi was vital," Maggi said. "Without a connection, the remotes would not be able to change the pictures on the frames." It is the classic embedded-product trap. A frame that ships to someone in another country cannot rely on a keyboard and monitor being plugged in to type a new network password, and the person receiving it should not need to know what SSH is.

The solution is the one consumer smart-home gear uses. When the frame boots and cannot reach the internet, it starts its own Wi-Fi access point and a captive portal, so you connect a phone to the frame, pick the home network, type the password, and the frame joins it and carries on. Once online, each frame runs its React interface full screen in Chromium kiosk mode with a local FastAPI backend, both starting automatically at boot. Each frame is reachable through its own Cloudflare Tunnel, the remote controller is a separate React and FastAPI app running in Docker on a Hetzner VPS, and Cloudflare Access restricts who can reach the frames and their APIs. Nothing needs a port opened on the partner's home router.

RelatedThe Quiet Engineering Behind a Good Mechanical Keyboard

TraitMaggi's framesTypical store-bought smart frame
Who picks the photosYour partner, remotelyYou, or a shared album
Messages on screenYes, sent from the remoteRarely
Display8.9in, 2560x1600 IPSVaries by model
Wi-Fi setupOwn hotspot + captive portalCompanion app
SoftwareOpen source, noncommercial licenceClosed, vendor cloud
  1. Oct 2025Repository started requirements, parts and first frame
  2. Dec 2025Build photos frame routed, glued and assembled
  3. Apr 2026Latest code push both frames and the cloud remote running
  4. NextVideo calling camera, mic and amp already fitted

Our take

Most Raspberry Pi photo frames stop at "it shows a slideshow". This one is interesting because every design decision is driven by the person on the other end: remote curation instead of self-curation, a captive portal because the recipient should never see a terminal, tunnels and access rules so nothing on a stranger's router has to change, and a build solid enough to go through airport baggage handling. It is also honest about scope. The video-call hardware is fitted and waiting, and Maggi says so rather than demoing a feature that does not exist. That is exactly the end-to-end product thinking the project set out to practise, and it produced something a person actually uses every day.

The linked picture frames were built by Maggi Snorrason, an MSc student in Computer and Embedded Systems Engineering at TU Delft. Read the build log or the code: project page · GitHub.

Campus Radar, get featured
  • Built something? Doesn't need to be finished or fancy: a side project, a hackathon build, or a class project you're proud of counts.
  • Email hello@genztech.blog with what you built, why you built it, a link, and your name plus college.
  • See every spotlight so far at genztech.blog/campus-radar.
Primary sources

Reporting based on a direct interview with Maggi Snorrason and the published build log. Hero photo by Maggi Snorrason.