Technical details

The idea is the following: get the read headlines using RSS, rewrite those headlines with ChatGPT for a happy and optimistic tone, use TTS to create an audio file and finally play the audio file while moving a mechanical mouth.

Due to the software requirements, Raspberry Pi was my first thought but I have received an interesting hardware from DFRobot I wanted to try: the Unihiker.

What is the Unihiker? You can think of it as some sort of Raspberry Pi with an integrated touchscreen. Going in detail, the Unihiker is a Debian SBC with Quad-Core ARM Cortex- A35 1.2GHz, 2.8 colour touchscreen, buttons, WiFi, BlueTooth, mic, light sensor, buzzer, accelerometer, gyroscope and microSD slot. It is my first time with this device, so I’m expecting some obstacles ahead.

Parts required

Software configuration

Connect the Unihiker with a USBC cable to the PC.

Load in the browser

Configure your WiFi SSID and password and obtain the IP of the Unihiker

Now open Putty or some other SSH client and connect to the Unihiker with the IP, user root and password dfrobot

Run the following:

pip install reader

pip install openai

pip install gTTS

pip3 install simpleaudio

Go to and sign up for the API. There is a free credit enough for several months of this project. Go to and create a new secret key.

Open Yrigoyen_en.ino code and enter your OpenAI API key.

openai.api_key = ""

You can edit the OpenAI model:

model_to_use ="text-davinci-003"

The prompt:

prompt = "Rewrite the following news headline with a joyful and optimistic tone:"

The RSS source:

feed_url = ""

Now connect with Filezilla/ SFTP or any other FTP client using the same IP, user and password as with the SSH client.

Upload and background.png to /home folder.

Turn on the Bluetooth speaker.

Run the following:



power on

scan on


trust xx:xx:xx:xx:xx:xx (Device MAC ID)

pair xx:xx:xx:xx:xx:xx (Device ID)

connect xx:xx:xx:xx:xx:xx (Device ID)

You only have to do BlueTooth pairing once. Then it will reconnect automatically.

Hardware configuration

Gpio ports can be accessed using one of the cables provided. Connect the cable to D22 pin on the side of the Unihiker. Connect 3 male to male jumper cables to the Servo respecting the +, - and signal.

Download and print the servo base.

Remove all the inner parts of the jaw and glue the servo arm to the side.

How does it work

Everything should be ready now. Go back to the SSH client and run:

/home python

/home python

Small issues with USB connection

In Windows 10 Pro, something related to the USB connection to the Unihiker could cause a Blue Screen. If you face that problem, Unihiker WiFi credentials should be configured again from but at this point they will produce a WiFi connection error. Restarting the router and the Unihiker eventually makes the trick.

Demo video


Ping pong Python library for the Unihiker

Hipolito Yrigoyen