TeensyROM //NFC!
A cartridge emulator based on the Teensy 4.1. You load it up with .crt, or .prg files, and you can then load programs quicklike from the device’s onboard menu. Like a Pi1541 mimics the floppy drive’s functionality, this mimics a program cartridge. Only, because it’s using a microcontroller at its heart, it’s capable of a lot more than just that! The features breakdown:
Super fast Loading (.PRG/P00) or ROM emulation (.CRT) directly from:
- USB thumb Drive
- SD card
- Teensy Internal Flash Memory
- Transfer directly from PC using the TeensyROM UI
MIDI in/out via USB Host connection:
- Play your SID with a USB MIDI keyboard!
- Use with popular software such as Cynthcart, Station64 etc, or the included MIDI2SID app
- Supports all regular MIDI messages in and out
- Can use your C64 to play a MIDI sound capable device.
- Sequential, Datel/Siel, Passport/Sentech, and Namesoft MIDI cartridges emulated
- Use a USB Hub for multiple instruments+thumb drive access
MIDI in via USB Device connection:
- Stream .SID or .MIDI files from a modern computer directly to your Commodore machine SID chip!
- Play MIDI files out of your PC into C64 apps such as Cynthcart or the MIDI2SID app
- Stream .SID files out of your PC using the ASID MIDI protocol to hear any SID file on original hardware.
Internet communication via Ethernet connection
- Connect to your favorite C64/128 Telnet BBS!
- Use with released software such as CCGMS, StrikeTerm2014, DesTerm128, etc (pre-configured CCGMS is included with the initial firmware image)
- Swiftlink cartridge + 38.4k modem emulation
- Send AT commands from terminal software to configure the Ethernet connection
- Sets C64 system time from internet
Firmware updates directly from SD card or USB thumb drive
- Just drop the .hex file on an SD card or USB drive, no need for extra software to update.
Key parameters stored in internal EEPROM
- Startup, Ethernet, timezone, etc retained after power down.
One of the exciting aspects of maintaining an interest in an old platform like the Commodore 64, is taking part in the stream of ideas and innovations that get churned out by the community, and recently, there seems to be a lot of thought being put into making the program management experience better, or at least more reliable.
For example, the biggest drawback of trying to rekindle the nostalgia of using a Commodore 64 is that the original 1541 floppy drive was pretty crap, and “The Experience” is dimmed by blowing a huge chunk of time doing nothing but watching a loading screen. The 1541 was released with serious flaws that limited its read and write speeds, flaws which would barely be recgonized and addressed by the likes of JiffyDOS before the 1541 drive was effectively abandoned by Commodore for newer models that, tragically, were either just as limited, or simply came around too late to make a difference for the 64.
In this day and age, the patience required to let that cantankerous behemoth do its simple data transfer tasks is rather hard to come by. It was one thing to deal with it back in the day, when that was all we had to work with, and was pretty much the sum total of everything we knew about disk operations on our beloved home computers (and especially if we’d upgraded from the cassette drive!), but the advantages of having access to modern day improvements are honestly completely worth sacrificing a little bit of the purity of “The Experience”. There are also the facts that real floppy disks degrade and wear out over time, and oh yeah, nobody makes them anymore! There are some who insist on forcing themselves to suffer through the full experience for the sake of nostalgia, but memories can only justify so much, and especially when our beloved little compy has been proven capable of so much more! Don’t just steep yourself in nostalgia; imagine the amazement you would have felt if you’d had access to some of these amazing inventions back then!
These days, we have the means to displace -or at least enhance- the part of our retro hobby that adds the least value to the overall experience. Technology is prolific and accessible enough that we can make our own program cartridges pretty easily, or slap a single custom cartridge in that essentially makes the entire library accessible with a few keystrokes! Heck, we can even replicate the 1541’s slow elevator experience with a Rasperry Pi instead, so at least you can keep a bit more of that authenticity without also being forced to sit there listening to your precious, expensive floppies being eroded away into oblivion for endless minutes!
One of the cartridge slot-based solutions recently drew my eye, as it presented an opportunity to try something different.
The TeensyROM, as its name implies, is based on the Teensy 4.1, one of the microcontroller OG’s. What it offers is flexibility and crazy potential for not many moneys. You can actually get one of these pre-built for a little over $50 (plus shipping, natch) or make your own from-scratch.
So what’s the big deal with it? There are a few custom cartridge “final solutions” out there already; what makes this one special?
Well, while the TeensyROM doesn’t have a whole Raspberry Pi to provide the horsepower to add more (virtual) SID chips or act as a RAM Expansion Unit like others can, it does set itself up as a MIDI input device, an ethernet access point for network-based control and interaction, and oh yeah, also happens to work with a NFC loading system that is also pretty well fleshed-out.
Right, I heard the record scratch from all the way over here, so let me explain a bit:
You know NFC cards and tags? No? Do you know Amiibo, the little collectible figurines that you can tap on your Nintendo Switch to interact with your games in various ways? Those are using a technology called NFC, short for Near-Field Communication.
It’s really little more than a coil antenna connected to a teeny tiny little chip that stores a serial number or in some cases, whatever the user writes to it, up to a certain number of characters. The most basic format, like Amiibo uses, is really just a statically-set serial number that a sensor pad can read, by inducing a very small current into the antenna, and reading the resulting pulse that is sent back out.
This is the technology behind the tap-to-pay system available through your phone, or debit/credit cards.
You can get your own NFC tags, fobs or cards from just about anywhere online, and the reader pads are also readily available for cheap, so it’s pretty easy to amass your own collection.
Why would you do this? Okay, so look at it like this: all those Amiibo figures do is look neat, cost a lot, and unlock some unique character feature or item in a game when its contents are read, right? You can do the same thing with a generic tag you make yourself; the only really unique and difficult-to-replicate aspect of those figures is their character designs that gives them their collectability. That’s it. So now that you know you can use NFC tags as a kind of trigger, how cool would it be to be able to tap a card on a reader, and your computer reboots itself and automatically loads a specific program or game? Moreover, what if this happened almost instantly, any time you tapped a new card, regardless of what was already loaded and running??
That’s what TeensyROM brings to the table. Tap a card, and (after you’ve done the basic initial setup) the cartridge will trigger a reset on the Commodore, while the Teensy’s cartridge emulator is pointed to a different specific program or game stored on a SD card. The result is a blink-and-you’ll-miss-it swapping of running programs simply by tapping a card, tag or fob on a reader!
You know what, here. See it in action for yourself, instead. You’ll get the idea quickly. 🙂
I know, right? 🙂
So the two components are theTeensyROM, and the NFC reader that lets you make your own virtual cartridges to swap between programs, connected to the TeensyROM’s USB port.
It’s a cool little way to keep that sense of using physical cartridges, floppies or cassettes without the costs of increasingly-rare media and load times, and risks of losing something precious or irreplaceable with those old formats. Keep that old worn game cassette you’ve been holding all these years intact, just load the program from something else instead while you preserve the actual original media that introduced you to this world of miracles, instead.
Now, to be clear, you can actually use the TeensyROM by itself. You do NOT need the NFC reader add-on for it to be able to load cartridge files you select from its own built-in menu. However, you will still have to reach around to the cartridge to tap the reset button to back out of a program/game, or reset the Commodore manually with the power switch itself (like dad always did) or with whatever other reset mod you’ve built in. All the NFC portion does is make it easier to hold something physical in your hands and flip to a desired program more quickly because one card=one program, so once you’ve set it up and put a label on it, that card might as well be an instant-load disk itself (though no, the programs do NOT load from the card. They come from the SD card on the Teensy; the NFC tags just tell it which program to reset-and-run when tapped).
It’s just a little bit of “let’s pretend” that will undoubtedly conjure those childhood images of floppies scattered all over the desk or carpet, only now there’s no risk of dad losing his shit and paddling you good for ruining the software collection. 😀
Let’s put one together!
If you’re a hardcore DIY-er and this needs to be made from-scratch as much as possible, here are the sources of information you’ll need to get going:
TeensyROM: https://github.com/SensoriumEmbedded/TeensyROM, and the BoM and assembly instructions: https://github.com/SensoriumEmbedded/TeensyROM/blob/main/PCB/PCB_Assembly.md
NFC Reader for TeensyROM: https://github.com/SensoriumEmbedded/TeensyROM/blob/main/docs/NFC_Loader.md
Have fun!
Okay they gone now? Good, those Maker types can be a handful, huh? 😛
The rest of us with less patience, skills or equipment can shortcut things a little bit and buy some bits pre-assembled instead.
As noted in the features above, the TeensyROM is also capable of providing a MIDI interface as well, so you can connect a MIDI controller or keyboard to the USB, and use it to play music with the Cynthcart program, to start.
You can also find CCGMS in the Utilities, and go exploring the many Bulletin Board Systems (BBSes) still being run out there! Yeah it’s basically telnet rather than the old-school dialup, but can we all agree that the fun of playing around on those boards back in the day had nothing to do with dealing with the downsides of old-school dialup connections? Exactly how exciting was it to connect to some well-designed BBS, wait for the awesome artwork to actually finish drawing its slow way across your screen, then for the connection to just drop before the menu got to display?? Nah, I like experiencing the Commodore nostalgia at 38,400k instead. 😀
UPDATES
08/22/2024: I decided to see how well my NFC “drive” enclosure design will work out in its current form. I feel like it’s pretty much finished, but now need to see how things fit together to determine if further adjustments need to be made. My 3D printer is awaiting some hardcore tuning and adjustment work, so I’ve ordered out for the prints instead. Here’s hoping for nice results!
9/14/2024: So the enclosure arrived, and while there were some design issues I need to address, the overall effect is definitely what I was looking for! Hot glue gets around the fastener placement issues, to the point that I think I can leave the screws out of the interior altogether, and just adhere to receiver board to its own little platform inside, instead.