Jelly Load is touted as one of the most inconvenient 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).
My rough / ready understanding of how it works:
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 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:
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. -
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:
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 along with an illustration of the optical aperture translation.
The housing can be secured to the board with adhesive (e.g. cyanoacrylate) or careful heat-staking of the retaining lugs.
- Monitor Guide:
The Monitor Guide is attached to the receiving monitor screen, aligned with the appropriately scaled JellyLoad optical channel.
Manufacturing Data
Manufacturing Data in each board folder is the most recent output from KiCAD.
Bill-Of-Materials (BOM) with Mouser stock codes. BOM and pick/place files for use with JLC.
Gerber+Drill zip for PCB manufacture.
Assembly tooling holes are 1.152mm top-left and bottom right of layout. 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.
A selection of JellyLoad encoded videos can be found here:
https://www.youtube.com/playlist?list=PLbE6E7xnjkkJwXpoj5DF8uXBsocBH2ZH-
Well, good luck!