Skip to content

StefanoGaivota/Optical-Data-Channel-JellyLoad-Hardware

Repository files navigation

Jelly Load is touted as one of the most inconvenient (but also most fun) ways of loading data into your 8 bit computer.
The concept is the collaborative creation of Dave Curran (Tynemouth Software) and Rod Hull (The Future Was 8 bit).

Jelly-Load_Video-Excerpt


Data and clock signals are encoded into a video stream as a matrix of black or white areas.
The receiving interface senses the optical channel bit state and converts the result into an 8 bit data word for interpretation by the target computer upon receiving valid clock edge.

Take a look here:
https://www.tfw8b.com/introducing-jelly-load/
for a historical account.

The loader binaries for VIC20 can be found here:
https://www.tfw8b.com/wp-content/uploads/2024/09/JellyLoad-VIC20-240908.zip
(different ones depending upon your RAM configuration)

This repository is my own effort at creating a JellyLoad receive interface for Commodore computer user port.

It comprises two separate boards which connect to each other via a 14way IDC cable assembly along with associated opto-mechanical components.
KiCAD source is available for schematic and PCB of each board.
FreeCAD source is available for the mechanical elements (Optical Housing and Monitor Guide).
Manufacturing data generated from these sources is detailed later in this document.

Printed Circuit Board parts


  • Optical Interface board: Sensor-array-board Phototransistors are arranged in the required matrix, photocurrent converted to voltage at input of Schmitt inverter. Inverter outputs are routed to 14 Way IDC.
    Clock signal is indicated by an LED for visual feedback of correct operation.
    Originally developed to use the OSRAM SFH3710 phototransistor, this seems to be superceded by the SFH3716 (as of December 2025). Should be a drop-in replacement but YMMV.

  • Target Interface board: Target-Interface-Board Target interface connects the 14Way IDC pins and routes logic signals to target computer User Port connector.
    Solder blob config pads route the CLK signal to the user port pin required by the target computer.
    This differs between PET, VIC20 and C64. Blob your required option.
    Board profile is configured to fit inside a C64 cartridge case.
    Case mechanics are shown on layer User.Eco1.
    PDF of machining dimensions is made available for convenience.


Mechanical components


  • Optical Housing:

Optical-Housing

The Optical Interface board is fitted with this Optical Housing for the purpose of reducing ambient light interference and to help align with the optical channel.
Optical aperture adaptors (glass spheres) are accommodated in this section to match the sensor aperture to the available width. A specification for suitable spheres is available in the mechanical data directory. Basically 6.0mm glass balls of good optical clarity.
The graphical calculations shown here are based on a refractive index of 1.4.

Optics-Calculations
The sensor array will work adequately without the aperture adaptors but sensitivity will be reduced so you will need to use higher monitor brightness for reliable transmission.
The housing can be secured to the sensor board with your adhesive of choice, (sticky tape, cyanoacrylate, blu-tack, toffee etc) or careful heat-staking of the retaining lugs.

  • Monitor Guide:

Monitor-Guide

The Monitor Guide is attached to the receiving monitor screen, aligned with the appropriately scaled JellyLoad optical channel.

Manufacturing Data


Manufacturing Data for production of Printed Circuit Boards and 3D printed mechanics is available in the "Manufacturing Data" folder.

Bill-Of-Materials (BOM) with Digikey stock codes. BOM and pick/place files for use with JLC (A cheap and cheerful PCB Assembly company)
Gerber+Drill zip for PCB manufacture.

Assembly tooling holes are 1.152mm top-left and bottom right of layout. With JLC, specify "Tooling holes added by customer" at assembly stage.

STL exports of Optical Housing and Monitor Guide can be used with most additive manufacturing processes.

Once assembled, it should all look something like this:


Then it's time to connect it up and try it out.
Adjust monitor brightness to give reliable transition of CLOCK LED when presented with light or dark segments at the monitor.
A usable Paint application is your friend here!

A selection of JellyLoad encoded videos can be found here:
https://www.youtube.com/playlist?list=PLbE6E7xnjkkJwXpoj5DF8uXBsocBH2ZH-

Please feel free to get in touch if there's anything you'd like to ask about relating to this repository.
I'm on:
Bluesky https://bsky.app/profile/stefanogaivota.bsky.social
and
Fedi https://universeodon.com/@StefanoGaivota

Best of luck!

About

JellyLoad Optical Data Channel receiver interface hardware

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors