Overview
Tired of all the action and puzzle games on the Adafruit Fruit Jam? Want to try something new? Well, you've got a treat in store for you with the new game, Ssspeed Dating. Dive into a world full of fun snakes looking to spice up their lives by meeting someone new. Chat with 6 unique characters during quick-fire speed dating rounds hosted by the familiar CircuitPython mascot, Blinka, and do your best to charm the snake of your dreams.
Ssspeed Dating has the following major features:
- Simple branching dialogue for 6 characters with different personalities and traits
- 6 unique endings depending on the character your match best with
- 320x240 HDMI video output
- Pre-recorded 11025hz 8-bit mono music, voice acting, and sound effects
- USB keyboard, USB mouse, and hardware buttons input
- Easy customization to support user-created content using JSON and BMP assets
Controls
Mouse
You can control all aspects of this application using a USB mouse to control the on-screen cursor. All actions are completed with a left click. Some events require that an object be hovered over and then clicked while others you can click anywhere on the screen to proceed.
In order to exit while playing the game, click the door icon in the top right corner. This will bring up a confirmation prompt which will return you back to the title screen. At this point, you can reload the device by clicking the "Quit" option on the title screen. If the application is installed within Fruit Jam OS, it will return to the main menu of the operating system.
Keyboard
A standard USB keyboard or REPL prompt can be used to control all aspects of this application.
| Key | Action |
|---|---|
| Arrow keys | Navigate menus and dialog options |
| Enter or space | Select highlighted item or continue to next dialog |
| Escape | Open exit prompt to return to title screen |
| Letter keys (upper/lower) | If on-screen keyboard is active, appends character to input |
| Backspace | If on-screen keyboard is active, remove last character from input |
Buttons
The 3 buttons on the Fruit Jam device can be used for basic control of this application.
| Button | Action |
|---|---|
| Button #1 | Select highlighted item or continue to next dialog |
| Button #2 | Navigate down menus and dialog options |
| Button #3 | Navigate up menus and dialog options |
Gamepad
USB gamepads are currently not supported but planned to be added in a future release.
Parts
I am using a production revision D Fruit Jam board. Most additional components can likely be found around the house such as HDMI cable & display, headphones, power supply, etc.
The USB keyboard system uses the CircuitPython core sys.stdin module (learn more), so most boot keyboard compatible devices should work.
The USB mouse system uses the library, Adafruit_CircuitPython_USB_Host_Mouse which supports most boot mouse compatible devices.
It is possible to use a Metro RP2350 which is discussed in learn guides such as Larsio Paint Music., but this guide will not discuss that procedure nor has the software been tested within that environment.
From the Adafruit Shop
Installation
Updating CircuitPython
At this time (August 13th, 2025), CircuitPython 10.0.0-beta.3 is the most recent build for Fruit Jam. It is recommended but not necessary to use the absolute newest firmware version for Fruit Jam to ensure all application features are supported. This application has not yet been tested with CircuitPython version 9.x.x, but the project bundle includes a 9.x package in case that is desired.
To install the UF2 File:
- Connect your board to a computer with a USB data cable (charge-only cables won't work!)
- Press and hold the board's boot button (Button #1 on Fruit Jam)
- Press and release the reset button
- Release the boot button
- When the removable drive named RP2350 appears, copy the UF2 file onto it. After the copy finishes, you should see the RP2350 drive disappear and soon after that a new CIRCUITPY drive should appear.
Install Project Bundle
You can view the code on the relic-se/Fruit_Jam_Ssspeed_Dating code repository on GitHub. It is recommended to download the Fruit_Jam_Ssspeed_Dating.zip asset from the most recent project release to obtain a pre-packaged version of the program with all library dependencies.
To copy the project bundle files to your CIRCUITPY drive:
- Visit the project releases page and download the latest release's Fruit_Jam_Ssspeed_Dating.zip file using the "Download Project Bundle" button above.
- Expand the zip file by opening it, or use unzip in a Terminal. The zip archive should expand to a folder. When you open the folder, it should contain subfolders for the supported versions of CircuitPython. Open the desired version subfolder which should contain a code.py file and a handful of other files and folders.
- Copy all of this folder's contents to your CIRCUITPY drive so that code.py is in the root folder.
To learn more about copying libraries to your CIRCUITPY drive, check out the CircuitPython Libraries section of the Welcome to CircuitPython! learn guide.
Alternate Installation: Fruit Jam OS
Ssspeed Dating is compatible with Fruit Jam OS and will show up as a valid application to load into and back out of. If you are using Fruit Jam OS on your device, follow the above installation instructions but instead of copying the program assets into the root folder in step #3, do the following:
- Create a new folder within apps called Fruit_Jam_Ssspeed_Dating so that your folder path is CIRCUITPY/apps/Fruit_Jam_Ssspeed_Dating/.
- Copy all files (including the lib folder) into that location.
| Module | Use |
|---|---|
boot.py |
Disable auto-reload to improve stability |
code.py |
Main application entry point, contains control loops |
hardware.py |
Initialize device peripherals and setup audio mixer |
sound.py |
Load sound files and handle basic playback tasks |
graphics.py |
Configure display, load graphics assets, handle mouse cursor, and provide display entity classes |
engine.py |
Handle multiple event objects, provide interactive entities classes, and connect with player actions |
scene.py |
Manage gameplay scenes which control the execution and stream of events |
If you would like to experiment with aspects of the game engine and controls, a number of scripts are available within /tests/ (view on GitHub) which run individual components of the system.
This page (Fruit Jam Ssspeed Dating) was last updated on September 10, 2025.
Text editor powered by tinymce.