Create your own teletext service

Feeling retro? In the latest issue of The MagPi magazine, PJ Evans shows you how to turn any Raspberry Pi into a teletext broadcast service, make your own pages, and even generate content from the web.

The web? A bit overrated if you ask us. What was wrong with the beautiful teletext pages that came into our homes in the 1980s? The latest news, pop gossip, holiday bargains, and of course Digitiser. Did you think teletext was gone forever? Well, not only have a small group of dedicated archivists been saving and transcribing old teletext signals, but they have produced Raspberry Pi software that can generate the signals required to deliver those pages to your TV. Teletext is back! Here, we’ll show you how to get a teletext service running and even create your own pages.

01 Get your kit together

We’re basing this project on our Raspberry Pi Zero 2 W build from issue 113 of The MagPi to which we added composite video output last month. The computing requirement of the project is quite low, so a Zero-class device is perfect and cheap too. That said, this tutorial will work with any Raspberry Pi with a composite video signal out. You’ll also need a TV with a built-in teletext decoder. These are hard to find new but are plentiful second hand. You can normally see from the remote control whether it has the capability. Older CRT televisions will also give a truly retro feel to the project.

02 Choose your operating system

Teletext works by adding encoded data to the top few lines of the PAL video signal, which is why we cannot use HDMI for this project. The software we are going to use creates this encoded information, which the TV will detect as a teletext signal. This is done at the frame buffer level, which means a graphical user interface, such as Raspberry Pi Desktop, is not required. So, it’s up to you. You can install either full Raspberry Pi OS or the Lite version, which is preferable if you’re going to be displaying teletext all the time.

03 Preparation

Once your OS is installed, open a command line, or SSH into your Raspberry Pi and before continuing, make sure everything is up-to-date with sudo apt -y update && sudo apt -y upgrade. If you are using Bullseye, the latest major release of Raspberry Pi OS, then Raspberry Pi requires a little configuration change. Open the main configuration file as follows:

 sudo nano /boot/config.txt

Near the bottom of the file, look for a line that reads:


Comment it out so it looks like this:


Now save and exit (CTRL+X followed by Y). Reboot before continuing.

04 Check video output

Make sure your composite output is working from boot. Disconnect any HDMI cable you have been using, and make sure you have a working display. If not, run sudo raspi-config and enable composite output in Display Options > Composite. Also, for the teletext software to work, the TV has to be able to ‘see’ the encoded data at the top of the screen. If you have configured overscan compensation in raspi-config then it will not be able to do so. Double-check Display Options > Underscan is set to ‘No’. You may need to reboot.

05 Install VBIT2

Time for the magic part. The software that generates the teletext signal for us is called VBIT2 by Peter Kwan, with the help of raspi-teletext by Alistair Buxton. Thankfully, the community has made the installation of this collection of software a piece of digital cake. To install VBIT2, raspi‑teletext, and all its dependencies, run this from the command line:

peterkvt80/vbit2/master/getvbit2 | bash

This will also install a configuration utility, similar to raspi-config, that will help you get set up quickly and easily. After downloading everything it needs, it will go straight into the configuration menu.

06 Configuration

You should now see a rather lonely ‘Install service’ menu item. That’s because VBIT2 cannot run until it’s got some content to work with. Tap ENTER to select and then review the choices. Out-of-the-box, VBIT2 offers a selection of teletext services. Some are community projects; others are archives of commercial services such as Ceefax, the BBC teletext service. We chose ‘Teefax’. If you get an error at this point, try another option and then select ‘Update services’. When you return to the main menu, a few new items will have appeared. Select ‘Options’ and then both items to make sure you keep up to date and start the service on boot.

07 Start and test

VBIT2 is now ready to start. From the configuration menu, select ‘Start VBIT2’ and then exit the utility. At this point, you should be dropped back to the command prompt. Try pressing the teletext button on your remote control. Hopefully, you’ll get a colourful home page (page 100). If it didn’t work, check whether you can see the encoded lines at the top of the screen. If so, you’ll need to change the underscan options in raspi-config (see Step 4) and try again. If all is well, enjoy moving from page to page by entering prompted page numbers.

08 Try a different service

As mentioned earlier, you can switch between services to vary your output. At any time, run vbit-config from the command line and change the way VBIT2 behaves. You can also ‘Update services’ which will check for newer collections of pages and updates to existing ones. Some are art collections, while others are collections of popular pages from the past (such as the writings of Mr Biffo and the Bamboozle quiz games). Others are snapshots of an entire service in a moment of time. Some even dynamically update from news feeds. Just ‘Select service’ to change what is being broadcast in real time.

09 Add some music

Giles Booth was looking to recreate the late-night feel of Ceefax pages cycling on TV with groovy background music. If you’ve got sound capability on your Raspberry Pi computer, let’s add some tunes. From the command line, run the following:

  sudo apt install mpc mpd
  mpc add
  mpc play 1

Now add audio cabling from your Raspberry Pi to your TV’s A/V input for relaxing sounds to accompany your teletext. You can choose any music you like of course. Be warned, the music will restart on boot.

10 Add Twitter!

Tweets as teletext pages. What’s not to like? Mark Pentler has developed an additional service for VBIT2 that will generate pages from your Twitter feed. This Python script will run in the background and generate teletext pages using the TTI format supported by VBIT2. It requires a bit of setup, including creating API keys for your Twitter account. Luckily, it’s all very well detailed on the project’s GitHub page. Mark himself describes the project as ‘useless’, but we think it’s a great bit of fun.

11 Create your own service

So, you’ve trawled Ceefax as it was on the 14 August 1987, played a few games, and found out that the amazing holiday offer has now expired. Never mind, why not start creating your own teletext service? VBIT2 uses the TTI format for storing pages. This is a simple text format, but there’s a lot of commands. To make your own service, you’ll need to create a git repo that VBIT2 can clone and install. Have a look at the ~/.teletext-services/ directory and here for more information.

12 What’s next?

This is one of those projects which is done because it can be. That said, Teletext’s blocky format can be very eye-catching with its bright primary colours, and it could well serve as an attractive retro display for a shop window or makerspace. The art community is thriving and the ability of VBIT2 to live-update pages via a network interface means it can be hooked up to anything on the internet and turned into a cool display. Plus, there’s always the benefit of upcycling an old, unloved CRT box. So, what will you do with it?

Get The MagPi #114 NOW!

You can grab the brand-new issue right now from Tesco, Sainsbury’s, Asda, WHSmith, and other newsagents, including the Raspberry Pi Store in Cambridge. You can also get it via our app on Android or iOS. And there’s a free PDF you can download too.

magpi 114

You can also subscribe to the print version of The MagPi. Not only do we deliver it globally, but people who sign up to the twelve-month print subscription get a FREE Raspberry Pi Zero 2 W!


stan423321 avatar

Back in the years, we had a CRT with a seemingly rare ability of buffering teletext subpages. This made the whole thing way more comfortable to use; I’d say it was better than WWW over dial-up!
Teletext services are still available in Poland, although the pages themselves were way less varied the last time I checked compared to back in the day. The rumour is, the top users these days are families of prisoners.
That reminds me though, what is the status of TV hat with HEVC over DVB-T2? For LAN TV, does one need an entirely separate Pi 4 setup per concurrently used mux?

Anders avatar

Ceefax on BBC could download programs for the BBC Micro. Oracle on ITV became ITV Teletext and became overrun with package holiday deals.
I remember my numbers, 301 Sports, 302 football results. Before Red button fasttext with buffered pages I wasted much time waiting for that counter to come round.

Gizmo avatar

It can’t be just me that immediately thought of output text based emulators over this? Like Amiga and commodore and commodore 64 and ZX spectrum

You have ASCII and foreground/background colors…

fanoush avatar

or simply provide generic text console with shell, on some TVs this could produce crisper text than showing composite signal

drgeoff avatar

That comment shows you don’t understand teletext. The displayed characters are crisp because they are RGB generated within the teletext decoder of the TV. They never go through being encoded as composite video.

Mark Pentler avatar

Ahhh nice to see this come around again. I am slightly worried that the Twitter API has changed so much that this is broken now, but hopefully someone can confirm…

Stef avatar

It’s still used in Germany to this day. By whom? I don’t know. My gf uses it to check the schedule, but i don’t watch TV.

Alan Robertson avatar

Hehe I love that this exists – the Pi is just amazing for retro stuff!

Andrina avatar

I went to a Ceefax demo at Farnborough (Hants) Amateur radio club in c1976, there was actually a dedicated page greeting us!

Steve avatar

At last!
Now I have a use for the BBC Teletext decoder adapter for my BBC micro.

Jordan Farrar avatar

Ahh Teletext, I’d forgotten all about this old gizmo. Is this still a thing? What a nostalgic post..

Bridge Troll without a Bridge avatar

I own an old Teletext terminal that I would love to connect to some person’s Pi server around the world. Is there any dialup Teletext/Videotex numbers compilation floating around?

Comments are closed