Cassiopei v2.0

Much more than a .TAP file player

Although the Cassiopei connects to the cassetteport of your Commodore computer, it is so much more than just an ordinary .TAP file player. But, it does play .TAP files too. The name Cassiopei is short for CASSette Input Output Peripheral Expansion Interface. This project is the in many ways improved version of the Cassiopei project it all started with. As you can see on the image below, it can be used on various models of Commodore computers, this because most Commodore 8-bit computer models have a cassetteport.

What is the Cassiopei?

As mentioned in the intro, the Cassiopei  is a device that connects to the cassetteport of your CBM computer. Although it can playback .TAP files and act like a datasette... it is much more then your ordinary digital tape player! One key aspect is that the Cassiopei can also playback .PRG files and it can load them 50x faster then Commodore's standard tape loading protocol. The Cassiopei can be configured in 3 ways: display+buttons, through the CBM software, via a webbased interface.
The wifi functionality can be used to upload a file onto your SD-card, but also to load a program via virtual file mode. Which is mostly interesting for people who like to program and want to try out their new software without loading it to the SD-card over and over again on every iteration of the code. Also thanks to the use of software exclusively written for the Cassiopei v2.0, you can use your it to play some fancy PETSCII video files (video only, no sound).
Tape is considered to be slow so some might wonder, why the cassetteport... that's such a slow port? Well, the main advantage of a device using the cassetteport (instead of any other port), is because the cassetteport is available on all 8-bit CBM computers (with some exceptions like the SX-64 and the C64 Game System, but these are actually pimped or crippled C64's). This means that it can connect as easily to your C128 as it can to your PET. Yes, you read it correctly, one device that serves them all. One modern storage medium for all your 8-bit CBM computers, how cool is that?
Because the height of the cassetteport slightly differs between models, the Cassiopei can be fitted with an additional stand. This way the device is connected safely and secure to your Commodore's cassetteport.

Cassiopei v2.0, why?

That is a very good question... the original Cassiopei ( Cassiopei ) was (and still is) a very useful device. But over the years I've learned that there was room for improvement. Unfortunately, the new version will not be perfect either, sorry, I just feel that there is always room for improvement... Anyway, the new design solves many issues that make the it version a lot more practical then the first. For example, the new version uses a full sized SD-card (not those impractically small mini or micro versions that you can hardly hold but easily loose). Where the original Cassiopei used an onboard 8MByte memory chip for storage, the new Cassiopei, can hold much more. Mostly depending on the size of the installed SD-card, let's say that if you've installed an 8GByte card, then the storage space of the Cassiopei V2.0 has increased by a factor 1000 over the original Cassiopei.
Although you might ask yourself if it really makes sense, because you will have a hard time filling it, since the files are relatively small. And if you consider that in practice it isn't fun browsing through hundreds or thousands of games in order to select you favorite pacman. But for those who do like to do that, the new Cassiopei also supports the use of sub directories, this way you can archive your games in convenient groups for quicker access. Anyway, with the ability to store so much, you could decide to store ALL your games and programs for ALL your CBM computers onto one single device, but be sure to make backups, just in case you lose your Cassiopei or leave it at a friends house, etc.
Because of the SD-card, there is no need for additional Cassiopei manager software to run on your PC. You can change your settings by changing a configuration file stored on the SD-card, you can upload your files by dragging them to the SD-card inserted in your computer. Also changing settings can also been done using your CBM computer or the menu on the device itself. And if that's not enough, you can also change your settings and stored files through the convenience of a webb-rowser. So no it is no longer a problem if you own a PC, Linux or Apple computer.
The new version alse features a pass through connector, so now you can create/restore original tapes by playing back TAP files and recording them on your datasette. You can also backup/capture a real tape and make your own TAP files.
Sadly though, the new version of the Cassiopei no longer has the 10-pole expansion connector (to connect to your own electronics projects). Research has shown that this functionality was hardly ever used by the owners of the Cassiopei. Therefore (and due to the lack of available IO on the new processor inside the Cassiopei v2.0) it was decided no longer to support this feature. People wanting to connect something to their CBM computer must therefore refer to the CBM computers userport, just like in the good old days. And regarding the userport... there is something interesting being developed that connects between the Cassiopei and the userport. Because the Cassiopei does have a programming connector at the bottom of the case (not accessible in the first released models, but a sharp knife could solve that as all cases already have markings on the inside where to cut), experiments are done to use this port for add-ons and the first results to transfer data between the Cassiopei and the CBM through the userport were successful and are very promising. This functionality will not be used to speed up loading of the games or programs, but it will be very useful for transporting bulk data.

How to use it?

Basically the Cassiopei can operate in four different modes. The operational mode is selected using the menu function of the Cassiopei. This menu allows you to choose a file and automatically load it. These settings are saved, so if you want to use the same game and mode over and over again, you do not need to go into the menu, saving you precious gaming time ;-)
These are the operating modes:
Standard kernal loader (this is the cassetteport's standard slow loading speed), allows you to load .PRG files from the SD-card.
Fast loader (loads more then 50 times faster times then the standard loader), allows you to load .PRG files from the SD-card.
Virtual file mode (loads more then 50 times faster times then the standard loader), allows you to load .PRG files directly into the memory of your CBM, this mode makes cross development much easier. Since there is no need to copy the file to the SD-card, because you load the file directly from your computer you are developing on.
TAP file mode (loads as fast as the original tape image requires it to do), allows you to load .TAP files from the SD-card. For the playback of TAP files the Cassiopei v2.0 displays the progress of the playback of the file on a small display. So you'll see a high-resolution tape counter and a position indicator in the form of a bar. Using the buttons you can also navigate through the TAP file, this in case the game should ask you to forward or rewind.

The menu program

The files/games you want to load, may be chosen using the menu program. Which is a simple program that allows for the configuration of your device. This program is loaded when the user types LOAD and presses the menu button when the computer request the user to "press play on tape". This tool allows you to change the operating mode and the currently selected file, which is much more practical than using the tiny OLED screen and buttons but also adds to the retro computing experience.

Playing back TAP files

The Cassiopei can connect to the cassetteport, so it would be silly if it couldn't play back a TAP file, wouldn't it? So therefore the Cassiopei also has a build in TAP-file player.As mentioned earlier, the Cassiopei can also make TAP files by connecting the Cassiopei to a real datasette. With the 3 buttons on the right side of the display and the counter and indicator bar shown on the display, navigation through the .TAP file should be possible. You may have noticed that the counter shown has a much higher accuracy than then standard 3-digit counter on your old 1531 datasette, that is because the Cassiopei tape counter counter the bytes as they are played, this is the most accurate method of counting the position within the .TAP file. The Cassiopei doesn't support saving back to .TAP file.

Supported computer models

The Cassiopei connects to all Commodore computers that have a cassetteport. It is my goal to make the Cassiopei work with as many models as possible. This however, requires lot's of testing AND access to those machines, the latter is sometimes difficult as it do not own all machines the Cassiopei can support. Thankfully some very nice people have assisted me in testing while others were kind enough to lend me their machines.
The Cassiopei v2.0 has been tested successfully with the following computermodels: PET 2000 series, PET 3000 series, PET 4000 series, PET 8000 series, VIC20, C64, C16, Plus4, C128

Compatibility with other hardware:

Just like the original Cassiopei, the Cassiopei v2.0 cannot be used in combination with the Chameleon cartridge because the Chameleon cartridge completely bypasses the C64's 6510 processor and uses the processor in the Chameleon. Because the tape signals are directly connected to the C64's 6510 the Chameleon isn't able to use the cassetteport IO-lines at all !!! Therefore a C64 with Chameleon cannot load from tape and cannot use the Cassiopei.
The Cassiopei should not be used in combination with other hardware (other then a datasette) connected to the cassetteport. For instance, the 1541-ultimate tape adapter or a cassetteport splitter allowing to connect more then 1 datasette to the cassetteport. This because the Cassiopei uses the IO-lines of the cassetteport in a more advanced way then all other existing cassetteport based hardware. However it is possible to use the Cassiopei with such devices but only if the Cassiopei is in .TAP file mode, because during .TAP file mode the Casiopei acts like a real Commodore datasette.

Project development status:

Although the Cassiopei v2.0 is functional, it doesn't mean it is finished, because things can always be improved. The hardware won't change anymore, there is no need to, but the firmware (the software inside the Cassiopei that makes it work) and the software for the Cassiopei (applications for the CBM) can benefit from future changes. What these changes are depends on new ideas or user requests. However, do not expect new firmware releases every month, these things go slowly, simply because I need to make absolutely sure that the new version is better then the older, I don't want to introduce any bugs by hastily adding new features.

Todo/Wish-list

When a bug has been found it must (if possible) be fixed... unfortunately time is limited so choices have to be made and problem and projects are given priorities. Below is a table with a list of things I worked on an might require some more work. The top of the list has the highest priority.
Item Status
Overall user support and minor bugfixes Normal (priority=high)
Disk wizard Under development (Beta release only, priority=very low)
BBS terminal Under development (Beta release only, priority=very low)
Additional hardware Under development (concept has been proven to work but priority for further development is very low)

Disk wizard

The disk wizard allows the user to create a real disk from a D64 file. The disk wizard allows the user to a D64 file from a real disk. The best way to test and debug the Cassiopei, is by using it myself. In order to stimulate this the "disk wizard" is a nice testbed that with the huge benefit of, when finished, having a nice tool for creating D64 files and/or disks. The C64 disk wizard is carefully being tested by beta users. I'm hoping to work on the PET implementation of the same concept soon, but unfortunately, my CBM 3032 is currently under repair. Although I can fix it myself (I hope), this takes more time then expected. However, regarding reliability there are some problems when using fast formatting routines and high speed data transfer. Therefore there is chosen not to implement these in this tool. Considering that most user will not be using this tool heavily (only occasionally for making a real disk to play a certain game that must run from disk) speed is not a big issue.

BBS terminal

This function is under development and currently only available for the C64. Below are two screenshots from a C64 connected to the borderline BBS, using the Cassiopei "BBS terminal" software. The Cassiopei has the ability to make a telnet connection and can therefore make a connection to the many telnet based BBS that exist on the internet. No additional hardware required, with this software you can visit a BBS and relive "the internet of the past". 
The BBS terminal software is under development, but a beta release is available in the download section at the bottom of this page. In order to use this , make sure that,you have the latest firmware installed on your Cassiopei and don't forget to use the latest version of the user manual, which describes this program more detail then is possible here.Why use telnet to visit a BBS, some might ask. Well, it's getting more and more difficult to dial in to a real phone-based BBS these days. But fortunately many of those good-old BBS's are connected to the internet. Thanks to the power of telnet these BBS can be reached. And because of the Cassiopei's build in wifi capabilities you can create a telnet connection and connect to these BBS's in a very easy way. Meaning that you can experience the BBS's the way they were in the past but without the use of additional hardware. A Cassiopei and the BBS_terminal.prg program is all you need. Make sure you have you Cassiopei properly configured (make sure that WiFi=enabled and that you are connected to a decent WiFi network).With this you can visit a PETSCII based BBS (or a simple ASCII based BBS). For example the borderline BBS (borderlinebbs.dyndns.org:6400).

Additional hardware

An experiment regarding the addition of extra hardware (add-on) to the programming port (which is located at the bottom side of the Cassiopei) have resulted in a device that could connect to the user-port. Allowing for much greater data transfer rate. This add-on datalink is not intended for loading your files faster, although it could be used for regular data too, that was never the goal. A high data transfer rate is mainly important if you want applications to handle audio and video data. So I did an experiment with high-res full motion video on a VIC-20. A simple preview can be found on my YouTube page, here is a direct link to that specific video:  https://www.youtube.com/watch?v=oOowlcsADt4
However, achieving this on a VIC-20 is quite a challenge as every byte needs to be handled by the 1MHz CPU, this because the VIC-20 has no DMA functionality. I'm proud to say that I'm the first who ever achieved full-motion-video (192x160 at 12 frames per second and 12KHz 4 bit (select one of 2 channels during playback), on a VIC20. Unfortunately... this experiment never materialized into something that's available to the main public. Meaning that the add-on hardware and conversion software isn't available for sale or download (yet).

PETSCII video player

To show the potential of a device like the Cassiopei (and because it was a nice programming exercise), I've written a program that converts video files into PETSCII video files. I did that during the final days of the Cassiopei v1.0 (2016). This seemed to work and I did a small demo on my PET 3032 during the classic computing of 2016 in Nordhorn and I've got really positive comments on this project. I stated "seemed" because although the demo I made worked, the encoder and the player contained some serious problems which made things unreliable under certain conditions. A problem I could never really solve, therefore preventing an official release of this software for the Cassiopei v1.0.
But, when I worked on the Cassiopei v2.0, the idea of a PETSCII player started to intrigue me again. Mostly because of the huge storage space capabilities of the Cassiopei v2.0, so I decided that this the time and moment to really finish this project. It required me to rewrite lot's of code (essentially starting code from the ground up). I needed to do this because the differences in the filesystem of the v1.0 and v2.0 Cassiopei are huge. The way files are selected and menu based data is transferred is simply not compatible, the Cassiopei v2.0 does has some advances that the Cassiopei v1.0 simply doesn't have but also some restrictions. But in the end it resulted in making it much easier to work with the .DAT files (files required for PETSCII video playback). I also wrote the code in such a way so that it was much more portable and easier to maintain. This made a lot of sense as I had to make the player for many different computer models, all with their own demands and limitations but also with great overlap in the way the data is handled.
The PETSCII video player is therefore exclusively available for the Cassiopei v2.0 and has been successfully tested on the PET 3000 series, 4000 series, 8000 series, VIC20, C64, C16/+4, C128.

PETSCII video encoder

A PETSCII player is nice, but useless if there isn't an encoder to make video files. So an encoder based around ffmpeg (for frame extraction) has been created (for Microsoft Windows 7 or higher). Using a relatively simple algorithm a conversion from pixels to PETSCII can be made. Due to the limitations of a characterset, the results works best for simple, high contrast, line based graphics. Like the "La linea" animations (a series funny, linebased, cartoons from the 70's). But feel free to experiment with other material, because a single frame may not look very good, a sequence of frames may smooth out the imperfections of the image that hurt recognition of certain shapes. As long as the used material doesn't rely on details too much the results could be very interesting. Below a screenshot of the conversion tool, using a "La linea" animation. Here you can clearly see that the lines can be represented by the characterset just fine, but the shades/details of the hand suffer quite badly from the limitations of representing blocks of 8x8 pixels by characters from a fixed characterset.
The tool has a workflow that goes from left to right, first you need to select a source video, which will be converted by ffmpeg into single frames. These frames can be corrected in brightness of contrast. And through the listbox you can select the frame you are working on, by scrolling through this listbox, the images in the windows will be updated. By scrolling continuously the frames will be updated continuously and the effect of animation becomes clear. Because this tool is suited for various types of CBM computers, the user must choose the correct resolution, 22x23, 40x25, 80x25.
The center section of the program shows the image converted into pure black and white (no gray-scales), due to dithering techniques (Bayer 2x2, 4x4, 8x8 or Floyd-and-Steinberg) the illusion of shades can be achieved. This increases the accuracy of the result but it does require the user to select the correct threshold value, to select the appropriate level of dithering. The textbox display the output from ffmpeg, not really interesting for users but very useful for me (the programmer).
The right side of the program shows the final image, which is heavily depending on the charset used, so there is an option to select a different charset. Charsets are simple bin files (binary images of the charset ROM). So if you have a computer with a home-made font, you could make an image of that ROM with an (EP)ROM reader and use that file in this program. The program also features compression, required to get the frame-rate to acceptable levels. This is called delta mode, meaning that only the changes between frames are stored, saving lot's of data to be handled/transferred during playback. In order to determine if this mode makes sense, there is an indicator that shows how many tiles (groups of 8x8 pixels) have changed. And there is also a way of visualizing the changes with different colors in the "final" screen. That option is disabled in the screenshot because it looks a bit strange if you never worked with it, though it's not that difficult to work with and it gives a nice insight in what happens. And last but not least there is a setting to show the image in green (which is the default color of PET computers).
When all settings are done, you can export the PETSCII video into a .DAT file, which can be played in the Cassiopei using the PETSCII video player.

Availability:

Sorry, but at this moment the Cassiopei is not available.

Downloads

Although everything you need is already present on the SD-card as supplied with the device, things always evolve in some kind of way. Therefore this download section is where you can find all the latest and greatest files and information regarding the Cassiopei V2.0. So if you think about purchasing a Cassiopei v2.0 feel free to browse through the extensive user manual to get an impressions of the device on a more detailed level other than is possible on this webpage.
Manuals:
Link to item Description
User_Manual_V1.4.pdf User manual for the Cassiopei v2.0
PETSCII_video_User_Manual_V1.0.pdf User manual for the PETSCII video converter tool
Programmers_reference_V1.2.pdf Manual intended for development purposes of the Cassiopei_v2.0

CBM software:
Link to item Description
PETSCII_video_player.zip The PETSCII video players for all supported computer models
C64_BBS_terminal-BETA.zip The beta version of the BBS terminal for the C64
Disk_Wizard_C64_D64.zip Disk wizard for the C64 for use with a 1541 disk drive (D64-to-disk and disk-to-D64)
Disk_Wizard_C64_D81.zip Disk wizard for the C64 for use with a 1581 diskdrive (D81-to-disk and disk-to-D81)
Disk_Wizard_Vic20_D64.zip Disk wizard for VIC-20 for use with a 1541 disk drive (D64-to-disk only) [Thanks to Kurt Johns]

PC software:
Link to item Description
CBM_PETSCII_video_converter_1_0_0_5.zip A tool to convert a modern video file into a PETSCII video for playback by the Cassiopei v2.0

Firmware:
The firmware of the Cassiopei defines its functionality, from time to time bugs are fixed and features are added, for more information about the differences between the firmware version, please read the release notes.
Link to item Description
Firmware_v20191027.zip release date 2019-10-27
v20191013 (no longer available) release date 2019-10-13
v20191006 (no longer available) release date 2019-10-06
Firmware_v20190530.zip release date 2019-05-30
Firmware_v20190119.zip release date 2019-01-19

SD-card image: The Cassiopei comes with an SD-card fully configured and ready to use. The SD_card contains various files, many of which can be downloaded in the links above. If you intend to update your Cassiopei with new firmware then you might want to update the contents of your SD-card too. This way you can bring back your device to a "factory default" situation.
Link to item Description
card_contents_20191027.zip complete image of SD-card

GEOS driver technical info
During the writing of an GEOS auto-exec file for setting the GEOS time by the Cassiopei (which got it's time from an NTP server on the internet) I ran into some problems... I didn't know where to start. Eventually, thanks to the help of various people and many google sessions, I figured it all out. So, if you want to develop your own GEOS auto-exec file too, but just like me, don't know where to start, just click on this link to visit my page about GEOS auto exec file development information. A very simple webpage that hold the basic information you need to know about writing your own GEOS auto-exec driver.