element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents ESP32 Duolingo Owl Project: Never Miss a Lesson Again -- Episode 679
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: cstanton
  • Date Created: 18 Aug 2025 2:38 PM Date Created
  • Last Updated Last Updated: 21 Aug 2025 2:19 PM
  • Views 4951 views
  • Likes 6 likes
  • Comments 15 comments

ESP32 Duolingo Owl Project: Never Miss a Lesson Again -- Episode 679

Miloš builds a custom Duolingo-inspired owl that sits on his monitor and reminds him to complete his Spanish lessons. Using an ESP32-C6, dual LCD displays for expressive eyes, a DFPlayer Mini for sound, and a 3D printed model, the owl can show emotions, play sounds, and even get angry if lessons are skipped. All design files, code, and details are available below.

Watch the Project

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Why Build a Real Duolingo Owl?

If you’ve ever tried learning a language with your phone, chances are you’ve come across Duolingo, the world’s most popular language learning app. Duolingo is well known not only for its lessons but also for its persistent notifications that remind users to keep their streak alive.

Miloš, who uses the app to study Spanish, knows those reminders all too well. In fact, he thought it would be fun, and a little unsettling, to bring the experience off the screen and onto his desk. His idea was to create a physical version of the Duolingo mascot, the green Duo owl, that would sit on his monitor and remind him to complete his daily lesson. Inspired by the app’s playful (and sometimes intimidating) prompts, Miloš set out to design and build a small owl that could react with sounds and animated eyes depending on whether he had done his Spanish practice for the day.

imageimageimage

imageimage

image

Turning the Owl into a Desktop Reminder

Miloš wanted his project to go beyond a simple 3D print. His goal was to create a small green Duolingo owl that could track whether he had completed his Spanish lesson each day and then react accordingly. To achieve this, he planned to connect the owl to Wi-Fi so it could check his Duolingo streak online and compare it to the current date. If the streak was updated, the owl would look happy, but if it was not, the owl would become increasingly angry as the day went on.

To make the owl expressive, Miloš decided to use a dual round LCD module placed behind Duo’s eyes. These screens would display animations ranging from normal and happy eyes to progressively more intense expressions such as cat eyes, dragon eyes, and even Sharingan-style eyes. Alongside the displays, he added a DFROBOT MP3 Player Mini and a small speaker so the owl could also produce sounds. These ranged from neutral tones early in the day to more aggressive noises if lessons were still left undone.

The owl was designed to sit on top of a monitor, so Miloš modelled custom feet in CAD that could clip securely to his own screen.

 image

Choosing Components and Overcoming Software Challenges

Choosing the right electronics turned out to be pretty easy for this project, since Milos found the perfect module made by WaveShare in the form of two round LCDs, mounted on a single PCB with a single SPI connector.

imageimage

Milos decided to use a small ESP32 C6 and the DFROBOT Player Mini. While the component count is small, the issues started appearing when he tried writing software for this module. This LCD module uses a LCD driver that is not well supported, and to get it to work, he had to jump through a lot of hoops, using modified libraries and specific board versions. He goes into more detail for what it took in the video, but you can find the module in question as well as the manufacturers demo on this link below.

The MP3 player by DFROBOT was really easy to use with the official library, but here are a few pointers and tips from Milos if you end up using this module:

  • Make sure that the files are named 0001.mp3, 0002.mp3 and so on. Make sure that they are in the xxxx.mp3 format.
  • Besides this, even if you have all of the files named like this, there is still a chance that they might not be played in the sequence you expect, to ensure that you are playing the audio file that you want (library calls allows you to just play the number of the file without specifying the name), Milos recommends copying all of the files to a microSD in the order by one from 0001.mp3 and so on. In this way, when you use the library call to play for example track 3, you will be sure that it will play the file 0003.mp3.

While audio files are the standard MP3 type, all of the GIFS and pictures you want to load into the ESP32 need to be in .h or .c format. To do this, there is an amazing free tool available on GitHub that you can find below.What this allows you to do is to select any image using the GUI and it will convert it into the adequate format so that you can easily play it on the LCDs!

Milos had issues with flipping just one of the LCDs using this library, so make sure that the GIFs and images you want to use are symmetric, since the displays are flipped compared one to the other.

Designing and 3D Printing Duo

Last thing left to do was to design Duo in CAD and to 3D print it. While searching the web, Milos came across this free 3D model. While the model was in mesh form, he managed to convert it into a solid so he can easily edit it in Fusion 360. It really helped him with this project to find such a nice model, and it wasn’t a lot of work to modify it so that all of the electronics fit inside.

imageimage

If you want to get the full Duo look, you will need 2 shades of green filament, white filament and orange filament. In the resources for this video, you will be able to find all of the STL and STEP files so you can easily adjust any of them if you wish to recreate this project. Milos designed the feet to fit his monitor, so this is one part that will probably need some adjustment from your end! Here are some of the eyes of the Duolingo!

imageimageimage

Supporting Links and Files

- https://www.waveshare.com/wiki/0.71inch_DualEye_LCD_Module 

-  Episode 679 Resources  

- https://github.com/bitbank2/image_to_c

- https://sketchfab.com/3d-models/duo-owl-b44dc9c1bd6843868ab341c5c35327fa 

Bill of Materials

Product Name Manufacturer Quantity Buy Kit
DFR0299 DFROBOT 1 Buy Now
MC011451 MULTICOMP PRO 1 Buy Now
PA06006 POLYMAKER 1 Buy Now
MP015135 MULTICOMP PRO 1 Buy Now
 
  • diy duolingo owl
  • duolingo streak tracker
  • wifi connected reminder
  • duolingo owl project
  • diy language learning gadget
  • talking duolingo owl
  • 3d printing electronics project
  • esp32 lcd eyes
  • 3d printed duolingo
  • esp32 duolingo
  • diy esp32 project
  • arduino duolingo owl
  • duolingo inspired electronics
  • duolingo streak reminder
  • esp32 project with display
  • friday_release
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • beacon_dave
    beacon_dave 24 days ago +1
    Another nice idea and build. Is there anything in the API that would perhaps allow you to take this to the next level ? Being able to have the owl repeat some relevant phrases in the language you are…
  • milosrasic98
    milosrasic98 23 days ago in reply to DAB +1
    Same level of nightmare fuel!
Parents
  • Workshopshed
    Workshopshed 23 days ago

    Great project

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • milosrasic98
    milosrasic98 23 days ago in reply to Workshopshed

    Thank you, glad you like it!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • milosrasic98
    milosrasic98 23 days ago in reply to Workshopshed

    Thank you, glad you like it!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube