# Pico Logo—A fun language for learning

**URL:** <https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833>\
**Category:** PicoCalc\
**Tags:** opensource, software, language, picocalc, logo\
**Created:** [December 21, 2025, 2:21pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833 "2025-12-21T14:21:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 21, 2025, 2:21pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/1 "2025-12-21T14:21:28Z")

</div>

## I am happy to announce the release of Pico Logo for the PicoCalc.

 ![spiral](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/7/71b32963715af4c690fdcf6bb69b20e278124aa6.png)

Logo is a fun and easy way to program your PicoCalc! The project site includes a [full reference manual](https://github.com/BlairLeduc/pico-logo/blob/main/reference/Pico_Logo_Reference.md) to get you started with classic Logo fundamentals. In addition, the internet is full of resources to get started and then to advance to more complex solutions.

Feature Highlights:

- 320×320 resolution turtle graphics with 256 colours (from a palette of 65K colours)
- Three simultaneous display modes: full screen text for programs without graphics, full screen graphics for running graphical programs, and split screen for interactive use
- Full line editing and history
- Compatible with Logo books and manuals from the 1980s and 1990s.
- Variables, procedures, control structures (`if`, `repeat`), lists, arithmetic, and logical operations.
- Uses 32-bit floats for numerical calculations, with fallback for integer-only hardware.
- Manage files (`catalog`, `setprefix`, `erasefile`, …) and `load` and `save` Logo programs to and from a SD card formatted as FAT32.

**I will use this thread to post updates on this project.**

> **[GitHub - BlairLeduc/pico-logo: This is a implementation of classic Logo for the...](https://github.com/BlairLeduc/pico-logo)**
>
> This is a implementation of classic Logo for the Raspberry Pi Pico.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 21, 2025, 2:24pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/2 "2025-12-21T14:24:32Z")

</div>

# Release 1

This is the initial release. These will be bugs here and there.

The release is not optimized. I looking for correct first then I can make it fast.

Please help with providing feedback and reporting any problems you find.

Extract the archive, logo.zip, onto your SD Card in a subfolder named “Logo”.

* * *

> **[Release Release 1 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v1)**
>
> This is the initial release of Pico Logo.

---

<div class="post-metadata">

**Author:** ![maple](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/maple/32/12677_2.png) [@maple](https://forum.clockworkpi.com/u/maple)\
**Post date:** [December 21, 2025, 7:37pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/3 "2025-12-21T19:37:21Z")

</div>

LOGO was my introduction to programming, many many many moons ago. fantastic work!

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 22, 2025, 2:00am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/4 "2025-12-22T02:00:37Z")

</div>

# Release 2

## What’s Changed

- Update color palette definitions and improve documentation clarity
- Improved LCD initialization
- Added science-based books to README.md

## Tips

- `setbg` changes the colour of the background, examples
  - `setbg 42` - purple
  - `setbg 104` - green
  - `setbg 74` - blue (default)

* * *

> **[Release Release 2 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v2)**
>
> What's Changed
> 
> Update color palette definitions and improve documentation clarity by @BlairLeduc in #24
> Added science books by @BlairLeduc in #25
> 
> Full Changelog: v1...v2

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 22, 2025, 9:18pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/5 "2025-12-22T21:18:23Z")

</div>

# Release 3

## What’s Changed

- Enhance turtle movement and boundary handling
- Add the toot primitive
- Implement reverse video support for character and string rendering

## Tips

- Mono sound can be produced with `toot 500 440` (quarter note A) or stereo with `(toot 500 330 440)` (quarter note of A and E)
- `wrap` (default) the drawing wraps from one edge to the opposite edge, `window` only show the drawing that are drawn in the coordinates of the screen, or `fence` displays an error if the turtle moves beyond the screen edges.

* * *

> **[Release Release 3 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v3)**
>
> What's Changed
> 
> Enhance turtle movement and boundary handling by @BlairLeduc in #26
> Add the toot primitive by @BlairLeduc in #27
> Implement reverse video support for character and string rendering b...

---

<div class="post-metadata">

**Author:** ![jonathanp](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@jonathanp](https://forum.clockworkpi.com/u/jonathanp)\
**Post date:** [December 23, 2025, 10:40am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/6 "2025-12-23T10:40:09Z")

</div>

Wow, looks like an incredible piece of work! Looking forward to experimenting with it over the Christmas break.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 23, 2025, 6:11pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/7 "2025-12-23T18:11:36Z")

</div>

# Release 4

## What’s Changed

- Correct the primitive `towards`
- Add screensaver functionality to prevent LCD image persistence
- Implement flood fill functionality for turtle graphics
- Add shape management primitives
- Bug fixes around input on the split screen

## Tips

- I noticed that the PicoCalc’s display is susceptible to LCD image persistence (not permanent). In this release, after 5 minutes of waiting for input, the screen will start cycling shades and hues (as the Atari 8-bits do). Any key press will return the screen to normal.
- Flood fill arrives!
- You can change the shape of the turtle (up to 15 shapes), examples:
  - alien - `putsh 1 [24 60 126 90 90 90 126 231 189 189 165 36 36 36 102 0]`
  - turtle - `putsh 2 [8 28 28 8 93 127 62 127 127 127 127 127 62 62 93 65]`
  - See `getsh` and `putsh` in the reference guide. Use `setsh` to change the turtle’s shape.

* * *

> **[Release Release 4 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v4)**
>
> What's Changed
> 
> Correct the primitive towards by @BlairLeduc in #29
> Add screensaver functionality to prevent LCD image persistence by @BlairLeduc in #30
> Implement flood fill functionality for turtl...

---

<div class="post-metadata">

**Author:** ![randorandus](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/randorandus/32/14322_2.png) [@randorandus](https://forum.clockworkpi.com/u/randorandus)\
**Post date:** [December 23, 2025, 9:30pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/8 "2025-12-23T21:30:01Z")

</div>

This is a very cool app. I especially like the switch between text mode, combined and graphic with f1,2,3. Thanks!

I tried a few sample from: [Logo Workshop Homepage](https://fmslogo.sourceforge.io/workshop/), chapter basic loops, all work!

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 23, 2025, 11:57pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/9 "2025-12-23T23:57:34Z")

</div>

Thank you!

Please let me know if you find any problems. Note that some primitives may be different so check the reference guide to see how to do what you need to do in Pico Logo.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 29, 2025, 4:19am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/10 "2025-12-29T04:19:27Z")

</div>

# Release 5

The release moves from alpha quality of the previous releases to beta quality.

Overall stability and proper operation was the focus of this release, along with a full-display editor that allows you to edit procedures, variables and files on the SD Card.

Please let me know if you find any problems. I would appreciate any feedback you wish to provide.

## What’s Changed

- Implement infix equality operator for words and numbers
- Refactor number formatting
- Full screen editor
- Screen mode switching during execution
- Refactor turtle background handling
- Optimize line drawing
- Edit improvements
- Implement pause and freeze functionality
- Improved memory safety
- Enhance error propagation and control flow handling in eval and catch
- Refactor error handling to enhance error message formatting
- Fix Label/go and error messages
- Implement step-by-step execution for procedures
- Report error in procedure
- Update input\_can\_read to handle mode-switching keys
- Add ‘savel’ command to save specified procedures and variables to a file
- Improve file handling
- Use memmove and optimize memory operations in editor
- Bug fixes

* * *

> **[Release Release 5 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v5)**
>
> What's Changed
> 
> Implement infix equality operator for words and numbers by @BlairLeduc in #34
> Refactor number formatting by @BlairLeduc in #35
> Full screen editor by @BlairLeduc in #36
> Screen mode s...

---

<div class="post-metadata">

**Author:** ![jolephoto](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/jolephoto/32/9920_2.png) [@jolephoto](https://forum.clockworkpi.com/u/jolephoto)\
**Post date:** [December 30, 2025, 3:01am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/11 "2025-12-30T03:01:14Z")

</div>

Nice work! Ran a few demos dreamt up by AI:

 ![IMG_6321](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/4/472c1b44b4d0b32aff85375a142e50e188106471.jpeg)

 ![IMG_6322](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/8/87e6d3c904e5df8e4ea43bc991028f6d1dbf2070.jpeg)

☺

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 30, 2025, 1:05pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/12 "2025-12-30T13:05:46Z")

</div>

I guess AI can create art in in Logo as well! 😀

---

<div class="post-metadata">

**Author:** ![randorandus](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/randorandus/32/14322_2.png) [@randorandus](https://forum.clockworkpi.com/u/randorandus)\
**Post date:** [December 30, 2025, 2:04pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/13 "2025-12-30T14:04:19Z")

</div>

Tried the ‘save “startup” command (with buryall and others), and got this:

I’m having trouble with the disk.

(Maybe something trivial, I did not yet read your code to search cause).

---

<div class="post-metadata">

**Author:** ![randorandus](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/randorandus/32/14322_2.png) [@randorandus](https://forum.clockworkpi.com/u/randorandus)\
**Post date:** [December 30, 2025, 2:07pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/14 "2025-12-30T14:07:18Z")

</div>

I also tried to edit “startup with editor, quit with esc, nothing saved, catalog does not list anything.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 30, 2025, 2:21pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/15 "2025-12-30T14:21:58Z")

</div>

It looks like Logo cannot mount the SD Card. Logo can only read cards formatted with FAT32.

It’s really tough to diagnose these problems as each SD Card is a hardware device that you are inserting, unlike a floppy where the floppy drive (hardware device) is part of the computer and you are inserting media.

Would you be able to try a different SD Card? I have tested Logo with the SD Card that came with the PicoCalc.

I did test with all the cards I own (a few different brands) and I did have to made changes to the code to get them all to work.

Logo uses the same driver as the PicoCalc Text Starter Kit. It would be interesting to see if your card also fails with it as well.

What card are you using?

---

<div class="post-metadata">

**Author:** ![randorandus](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/randorandus/32/14322_2.png) [@randorandus](https://forum.clockworkpi.com/u/randorandus)\
**Post date:** [December 30, 2025, 2:26pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/16 "2025-12-30T14:26:52Z")

</div>

The one provided by clockworkpi with picocalc. Picocalc-text-starter can list files with the dir command, but after reboot, pico-logo not. Strange enough. I have a debug-probe, can it be useful for the diagnostic? I never used it 🙂

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 30, 2025, 7:24pm UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/17 "2025-12-30T19:24:35Z")

</div>

I’m going to go with a simple cause first. Can you try:

```auto
?setprefix “/
?catalog

```

---

<div class="post-metadata">

**Author:** ![randorandus](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/randorandus/32/14322_2.png) [@randorandus](https://forum.clockworkpi.com/u/randorandus)\
**Post date:** [December 31, 2025, 7:55am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/18 "2025-12-31T07:55:19Z")

</div>

Thanks, this works, I can see the root directory of the sd card and able to create files, directories.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [December 31, 2025, 11:59am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/19 "2025-12-31T11:59:48Z")

</div>

My fault, I should have made the documentation clearer.

I have already updated the reference manual and I have made some code changes to let you better know what is happening, which will be in the next release.

---

<div class="post-metadata">

**Author:** ![BlairLeduc](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/blairleduc/32/11808_2.png) [@BlairLeduc](https://forum.clockworkpi.com/u/BlairLeduc)\
**Post date:** [January 1, 2026, 1:26am UTC](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833/20 "2026-01-01T01:26:13Z")

</div>

# Release 6

This release adds many quality of life improvements to the editor: auto-indentation, auto-closing of brackets, modern home behaviour, editing of your workspace with `edall`, and more. Also I added prefix filtering to the prompt to search through your history easier.

I corrected `define`/`text` to match Logo semantics and additional bug fixes. I also improved `setprefix` to display an error message if the directory does not exist.

I refactored many areas in the code base for clarity and maintainability.

Now I include the Pico Logo Reference as a PDF (a little over 100 pages!) with each release.

## What’s Changed

- Editor improvements
- Check setprefix valid; add erf for erasefile
- Add prefix-based history search functionality in input handling
- Refactor procedure body structure to use list-of-lists
- Refactor for simplicity and clarity

* * *

> **[Release Release 6 · BlairLeduc/pico-logo](https://github.com/BlairLeduc/pico-logo/releases/tag/v6)**
>
> What's Changed
> 
> Editor improvements by @BlairLeduc in #53
> Check setprefix valid; add erf for erasefile by @BlairLeduc in #54
> Add prefix-based history search functionality in input handling by @Blai...

[Next page](https://forum.clockworkpi.com/t/pico-logo-a-fun-language-for-learning/20833.md?page=2)
