Digital version of the classic mechanical orrery

dr-mod, updated 🕥 2022-09-11 15:43:34

Pico Solar System

A miniature device depicting the relative position of the planets in Solar System.



  • Raspberry Pi Pico and time source
  • Pico + Precision RTC Module (DS3231)
  • OR Pico W + available Wi-Fi network
  • Pico Display Pack



The software is written in MicroPython 1.19 and uses a custom build from Pimoroni which includes drivers for the display. Download it from the official Pimoroni repository here. Please note that Pico and Pico W require different UF2 files. Here is a direct link for Pico and for Pico W

  1. Download the MicroPython UF2.
  2. Push and hold the BOOTSEL button and plug your Pico into the USB port of your computer. Release the BOOTSEL button after your Pico is connected.
  3. It will mount as a Mass Storage Device called RPI-RP2.
  4. Drag and drop the MicroPython UF2 file onto the RPI-RP2 volume.


To upload and configure your Pico Solar System you will need to install rshell. Make sure you have pip installed. pip3 install rshell

Installing Pico Solar System

  1. Download Pico Solar System git clone
  2. Open the directory with the source code cd pico-solar-system
  3. (If using Wi-Fi), rename to and edit to include your Wi-Fi information

  4. Copy required python files to your pico rshell cp *.py /pyboard/

  5. (If using RTC) Set time & configure the RTC module ``` repl

import time import ds3231 rtc = ds3231.ds3231() rtc.set_time(time.time()) To account for a timezone you might want to apply an offset to the UTC timestamp in seconds: rtc.set_time(time.time() + 60 * 60 * (+ OFFSET_IN_HOURS) ) ```


A 3d printable case for this project can be found here.

A remixed case for the Pico W and display (without the RTC) can be found here.

Support the project

If you would like to support what I do and keep me caffeinated, you can do it here:

"Buy Me A Coffee"



opened on 2023-03-15 12:54:34 by condor13

I got it working a few months ago and all was good..i updated to the new release uf2. Updated the py scripts. Not able to get it working again. ds3231 inst defined. Using a Pico (no wifi) and a generical DS3231 board wired to i2c (pin 20 and 21). Tried rshell on ubuntu and Thony on windows. The REPL comands worked, no errors :)

Traceback (most recent call last): File "", line 218, in File "", line 90, in main File "", line 188, in set_time "NameError: name 'ds3231' isn't defined"

Any ideas? Thanks

Dmytro Panin
GitHub Repository

raspberry-pi-pico planets solar-system micropython clock