The Raspberry Pi Foundation has made something rather special with the Raspberry Pi 400. It evokes nostalgia for the computers of the 80s; but, it does so thoughtfully. The nostalgia feels like the natural outcome of reexperiencing a fundamentally good design, a design which considers how the computer will fit into a home. Similarly, Logo presents a view of coding which considers how software will fit into people’s lives, rather than insisting people change in order to meet the requirements of software. I don’t see either of them as a walk down memory lane so much as complementary paths into a future where humans drive technology.
The following are my notes on using the two together – building and installing ucblogo (Berkeley Logo) on the Raspberry Pi 400. Hopefully, others will take this journey too.
This walkthrough assumes general familiarity with Raspberry Pi OS and use of the Terminal. It also assumes the Raspberry Pi has a connection to the Internet.
I have tried throughout to provide links to the technologies being discussed for anyone who wants to dig a little deeper, as well as provide a bit of “why” to go with the “how”.
The steps below will install the latest version of ucblogo under active development. This means it will contain features and bugfixes not in the more stable released versions; but, it also means it is likely to contain some bugs not in the more stable released versions. This lines up with my needs and expectations; but, may not work for everyone. If there is interest, I will write up alternate instructions for installing a more stable released version.
Updating Existing Packages
As is traditional with Raspberry Pi guides, I’ll suggest updating and upgrading existing packages before going further.
To do so, run the following:
sudo apt update sudo apt full-upgrade
The ucblogo project has some dependencies which need to be installed prior to building:
- autoconf-archive for producing the configuration script
- build-essential for various compilers and build tools
- texinfo & texlive for producing the HTML and PDF documentation
- wxWidgets for the user interface.
To install these, run the following:
sudo apt-get -y install build-essential autoconf-archive libwxgtk3.0-dev texinfo texlive
Building from Source and Installing
To get the latest source code, run the following:
git clone https://github.com/jrincayc/ucblogo-code.git
The project then needs to be configured to the specifics of the current system using the
autoreconf command and the generated
configure script. In this case,
--enable-gitid tells the compiler to note the version of source code being built when displaying the version number inside Logo. This can help in understanding where a bug or feature was introduced relative to the version being run. Finally,
make to use the Raspberry Pi’s four cores when building.
To build Logo, run the following:
autoreconf --install./configure --enable-gitid make -j4
To install Logo, run the following:
sudo make install
At this point, you can exit the terminal and reboot (there is likely an easier way to have the application show up in the right places; but, I have not found it yet).
After rebooting, Berkeley Logo (ucblogo) will be available in the Programming menu of the Pi:
If you select it, Logo will open in text screen mode (which looks very similar to the terminal used during installation):
Drawing a Square
One of the classic starting points with Logo is drawing a shape using turtle graphics. To try this out, you can enter the following at the Logo prompt:
REPEAT 4 [ FORWARD 50 RIGHT 90 ]
And the following screen is the result:
Translating to Pig Latin
Logo can also do a large number of things besides draw with turtles. As an example, in History of Logo, a program is presented in 11 lines of Logo to translate English into Pig Latin:
Here are a few starting points for further exploration:
- The Logo Foundation’s Page on Logo – an overview of Logo including examples in Logo
- Logo Things – Cynthia Solomon’s collection of the history of Logo including programs in Logo
- Brian Harvey’s home page – including links to his Computer Science Logo Style series