Project Califone: Renovating and Rewiring a Califone 1430K Portable Phonograph

Califone 1430k Portable Phonograph Record PlayerIf, like me, you’re of a certain age and grew up in the American educational system, you’ll probably recognize this beast: A Califone 1430K “stereo compatible” portable phonograph.

Built from the 1960s until the early 1990s, this massive beast was the joy of every elementary school age kid in the US and Canada who wanted a chance to get away from spelling and arithmetic to listen to the dulcet tones of The Letter People or Schoolhouse Rock.

While audiophiles may look at this thing and cringe, I actually love this particular unit for several reasons: First, it has a lovely retro aesthetic–beige with a dark leather veneer–that just screams late 70s/early 80s (yeah, I’m one of those weird kids that appreciates that ugly brown 70s look). It can also play just about any piece of vinyl that you throw at it–from a 78 all the way up to 16RPM (it also has a really cool built-in adapter which is extremely convenient for 7″ singles).

record spinningNow, besides just looking cool and being able to play anything you put on it, this thing is extremely cool because it was designed for the educational market meaning that it has ultra-solid construction: the Califone record players are built of steel and lumber, making them heavy and virtually bulletproof. The 1400 series was designed for kindergartners to climb on or throw across a classroom and keep working–you’ll never see that kind of build quality from consumer electronics again! Of course, the downside to being designed for educational use is that it is built to a price. Califone was never known for their sound quality, and the 1430K is not the most high-end, high-fidelity vinyl playback system that you’ll find. It is monaural, and it does have a pretty heavy tracking weight that can prematurely wear out some records, but it’s not a bad sound and it is entirely adequate for playing the occasional vinyl records at home. Would I use it as a daily driver for most of my listening? No. I also don’t use a Commodore 64 as my main computer, but I enjoy working with it for historical interest and as a hobby. In the same spirit, I want to give this unit a much-needed renovation while respecting its unique history and aesthetic.

The Plan:

Phonograph electronics block diagram

The Califone 1430K isn’t a terribly complex piece of equipment: apart from the AC transformer and speaker driver fastened to the steel chassis, a 3×5-inch PCB holds the entirety of the solid state circuitry. My goal will be to replace the existing board with one of my own design that incorporates a small stereo pre-amplifier with the existing single-knob tone control, a class D main stereo amplifier, and a new, simpler power supply. Of course, for true stereo sound, I’ll need to replace the entire tone arm assembly starting with the cartridge and stylus, then run new wiring down to the amplifier board.

Pfanstiehl P-228D cartridge
Pfanstiehl P-228D Cartridge

Sourcing a new stereo cartridge that fits inside the existing tone arm is going to be tricky, but the Pfanstiehl P-228D looks like nearly a drop-in replacement for the Astatic 89T as it has the double-sided stylus and the footprint–as best I can tell–matches that of the mounting holes on the Califone tone arm! From there, it’s just a matter of designing the amplifier circuits, cutting a board, and assembling.

I haven’t decided if I want to go any further, but I’m tempted to see if I can update the auxiliary output options on the Califone. Bluetooth would be nice, but the steel chassis may prove too problematic. I’ve also considered adding line-level output in the form of stereo RCA ports or even TOSLINK (because I’m a masochist), but that would require cutting the original case and I’m not convinced that I want to even attempt that! I’ll keep my options open, though, and we’ll see where this journey leads me.

Califone 1430K Record Player Teardown

The Califone 1400 series record players were built like tanks: able to be thrown across a classroom, climbed upon by kindergartners, and still keep playing! Let’s take a peak inside and see just how it was built!

The big takeaway from this expedition is that the internals are extremely simple. Despite the relatively large size of the unit, most of the internal space is empty. A 12″ speaker driver sits behind the steel grille on the front of the unit and a small 3×5-inch PCB contains all of the electronics. The grounded 120VAC input directly powers the turntable motor then connects to a 4:1 transformer providing 30VAC to the tonearm light, and a small rectification circuit on the PCB that powers the amplifier circuitry.

Califone 1430K wiring schematic
Califone 1430K wiring schematic

I’ll have to make a better copy of this schematic for posterity. Fortunately, Califone was good enough to glue one inside the case. I’ll just have to copy it into Fritzing to make it a little more legible and update this article once it’s available.

Some 1400 series phonographs had their AC motors replaced with DC models as they were cheaper to produce and didn’t require 60Hz mains for timing. Califone issued a service bulletin in 1990 to illustrate the process for their field technicians. At least mine is still original.

Speaking of service bulletins: You can download them from here.

Now that I’ve got a pretty solid idea how this thing goes together, it’s time to start redesigning the electronics.

My Califone Story (Or: Why Teachers Headcount Before Leaving The Classroom)

The Califone 1400 Series record players have always held a special place in my heart because they were my first experience with phonographs. This particular model that I’ve been working on for Project Califone happens to come from the school system where I grew up (albeit from a different location); my grandmother paid only a song when she bought it for me twenty-some-odd years ago while browsing yard sales. These models were once ubiquitous in classrooms in the US, but have slowly faded from view as CD became the standard format for educational material in the mid-late 90s. In this video, I relay my Califone story and why the brand has always stood out in my mind–as well as why teachers started counting heads before leaving the classroom during a fire drill!

Footage from “In Case of Fire” (1959)

Using Pi-Hole For Whole-Network Ad Blocking

Internet advertising was once a fairly benign minor annoyance that spiraled into the oft-lampooned dark world of pop-ups on top of pop-ups. In these early years, simple ad-blocking plugins for popular browsers like Netscape Navigator (and its successor, Mozilla Firefox) were enough to keep these nuisances at bay, but as advertising technology got more sophisticated, Web 2.0 became more commercialized, and surveillance capitalism became the business model du jour, ad-blockers have moved from convenience to absolute necessity while simultaneously become more difficult to implement at the browser level.

Most commercial websites now can detect ad-blocker software and refuse to serve content in response. In these cases, it becomes necessary to allow some level of ad servicing–usually through whitelisting specific sites–but this also comes at the extended (and immeasurable) cost of privacy. Advertising networks track users’ movements across the internet and serve consistent ads based on that user’s specific browsing history. In this Brave New World, a user’s very identity is a commodity that must be exchanged in order to participate in society. One must sell their soul in an asymmetrical exchange to merely experience the world outside while the buyer resells the soul indefinitely and reaps exponential profits.

Pi-Hole is an application that adjusts the balance of power back into the hands of the user by allowing ads to be served, but intercepting and dumping them into a “black hole” before being displayed. Additionally, Pi-Hole blocks trackers from “phoning home” by directing their calls into the same virtual black hole, thus allowing the user to retain control over their identity. The result is a cleaner, safer, and more pleasant user experience with faster page load times and less noise in the browsing experience. Granted, Pi-Hole does have a few flaws that are more difficult to work around (such as Google’s first-party tracking), but by-and-large, the application is well-worth the few minutes that it takes to set up.

In my current network arrangement, I have Pi-Hole installed on a Raspberry Pi Zero W plugged into a 5V wall wart and connected to the WiFi. It’s not the fastest arrangement, of course, but it has a very low power consumption and serves my needs at the moment. I have also tried using Pi-Hole installed on an Ubuntu virtual machine in my FreeNAS server, but I noticed that it resulted in a noticeable increase in system resources (and noise, considering the case sits behind my sofa) so I migrated to the Pi. If you have the hardware to spare, I would probably recommend a Pi3B+ or better as the right nexus of speed and power consumption.

Installation on the Pi is fairly straightforward, following the directions of the Pi-Hole website. The most difficult part seems to be arranging the DNS settings on your router (which isn’t altogether difficult, but it doesn’t enjoy the virtue of an automatic installation script). I will put together a setup guide for the FreeNAS instance in a future number, for those who may be inclined (or whenever I upgrade my server and stuff it in an air-conditioned closet).

Pi-Hole is not a silver bullet to stop advertising and privacy-invading browser trackers wholesale, but I do recommend it as another tool in the ever-growing arsenal that users can employ to reclaim some of their own power on the internet. I’m still playing around with the idea of obfuscation, and seeing if it is even worth considering (it probably isn’t, but it may just be for fun), and I have been implementing other changes that have made my life–both online and especially off–better and less stressful than it used to be.

How To Install Pi-Hole on FreeNAS

I’ve been playing around a lot with my FreeNAS installation since assembling it last year as my “Pandemic Project” (which, of course, would become the first of many), and I’m constantly looking for new things to implement. Advertising has been a thorn in my side since the early days of the internet, so it seemed only logical that I should see what all the fuss with Pi-Hole was about!

Pi-Hole is most readily installed on a Raspberry Pi, but I’m trying to consolidate as much of my infrastructure as possible, so I thought I might have a go getting it working on the server. Unfortunately, FreeNAS is based on BSD while Pi-Hole is written for Linux (so there’s no plugin available), so we’ll have to install it on a virtual machine.

Installing Ubuntu Server on a Virtual Machine

The first thing we’ll need, of course, is the installation media. There’s a flavor of Pi-Hole written specifically for Ubuntu, so that seems to be the logical choice! My recommendation is to install the most compact version available, and the netboot installer image allows you to pick Ubuntu Server with minimal options. It’s a little difficult to find the correct download, so just grab the URL below:

http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso

Of course, if Bionic Beaver is outdated, just change the /bionic directory to the current version!

Back in FreeNAS, go to the Virtual Machines menu and add a new Linux VM. Give it a name that you’ll remember (“pihole” is a solid choice) and set the virtual CPU count to 1 and the memory size to 512MiB. On the Disks page, create a new AHCI disk and set its Zvol location to /data/pihole and size to 4GiB. When you get to the options for installation media, select “Upload an installer image file” and choose the mini.iso file you downloaded earlier. Once all your settings are configured, you can boot the virtual machine and install Ubuntu. The VNC option opens a virtual terminal that will allow you to connect to and interact with the virtual machine through the installation process.

If you are prompted for DNS servers, use Google’s (8.8.8.8 and 8.8.4.4) as a default for now.

When the install completes, Ubuntu will prompt you to remove installation media and reboot. Once you are disconnected from the VNC, stop the virtual machine and remove the installation media by deleting the CDROM from the “Devices” list under the virtual machine options.

Setting up Pi-Hole

Restart the virtual machine and connect to the VNC. Log into Ubuntu and invoke the following commands:

sudo apt update
sudo apt upgrade
sudo apt install net-tools
sudo apt install wget

The first thing we need to do is set up a static IP address for the virtual machine. Use ifconfig to find the local IP address.

In this example, the device is called ‘enp0s4’.

We will now need to change the settings for this device by editing the netplan config. Invoke the following command:
sudo nano /etc/netplan/01-netcfg.yaml

You will need to change edit the file so that it look like the image below. Pay special attention to the number of spaces for each indentation.

Once this is complete, reboot the VM.

After rebooting and logging back into Ubuntu, install Pi-Hole using the automatic installation script, just like you normally would.

wget -O basic-install.sh https://install.pi-hole.net

sudo bash basic-install.sh

Once the script finishes, you can access the web UI by navigating to [PIHOLEIPADDRESS]/admin. Make sure to change your password!

The last thing you’ll need to do is set up your router’s DHCP settings, but that’s best explained by Pi-Hole’s own documentation.

How To Flash ntrboot on Nintendo 3DSXL Using A Flashcart

There are several methods to installing custom firmware on the 3DSXL, but the simplest way involves installing the ntrboot exploit by way of a MicroSD-powered flash cartridge. This inexpensive piece of hardware will allow the 3DS to run ROMs from the aforementioned MicroSD card. In my opinion, the R4i Gold 3DS flash cart is the best on the market and will come with the fewest functional restrictions.

Before beginning, download the latest versions of boot9strap, SafeB9SInstaller, Luma3DS, and ntrboot_flasher_nds. You’ll also need a small magnet.

Flashing ntrboot to R4i Gold 3DS

Insert a blank MicroSD into your computer (operating system doesn’t matter as you’re only moving files to the MicroSD card). In the root folder of the MicroSD card, create a folder called ntrboot.

Unzip the boot9strap*.zip archive and copy the boot9strap_ntr.firm file into the ntrboot folder. Copy the ntrboot_flasher_nds.nds file to the root folder of the MicroSD card.

Eject the MicroSD card from your computer, reinsert it into the flashcart, insert the flashcart into the 3DS and power on the system.

Launch the flashcart from the 3DS main menu, then launch the ntrboot_flasher_nds.nds ROM from the flashcart menu. Follow the on-screen instructions to dump the flashcart’s memory for a backup. After making a backup, select “Inject FIRM” to install boot9strap on the flashcart. Once finished, power off the 3DS.

How To Install boot9strap on the Nintendo 3DSXL Using a Flashcart

This tutorial assumes that you have a compatible 3DS flashcart (such as the R4i Gold 3DS) that’s been flashed with ntrboot. Before beginning, download the latest versions of boot9strap, SafeB9SInstaller, Luma3DS, and ntrboot_flasher_nds. You’ll also need a small magnet. Insert the ntrboot-flashed flashcart and continue.

Installing boot9strap on the 3DS

Remove the MicroSD card from the 3DS console (not the flashcart) and insert it into your computer. Unzip the SafeB9SInstaller*.zip archive, then copy SafeB9SInstaller.firm to the root folder of the MicroSD card. Rename SafeB9SInstaller.firm as boot.firm.

Unzip the Luma3DS*.zip archive, then copy boot.3dsx to the root folder of the MicroSD card.

Create a folder called boot9strap in the root folder of the MicroSD card and copy boot9strap.firm and boot9strap.firm.sha from the aforementioned boot9strap archive to this folder.

Eject the MicroSD card from the computer and reinsert it in the 3DS console, then power on the 3DS. Use the magnet to locate the reed switch that controls the sleep function. This should be somewhere around the ABXY button cluster. Once the reed switch is located, power off the 3DS console and place the magnet over the reed switch. With the magnet in place, hold START + SELECT + X + POWER to boot into SafeB9SInstaller. Once all the startup checks complete, you can remove the magnet. Follow the on-screen instructions to install boot9strap, then, once the installation completes, hold the POWER button until the console turns off.

Once again, remove the MicroSD card from the 3DS console and insert it into your computer. Delete boot.firm from the root folder of the MicroSD card, then copy the boot.firm file from the Luma3DS archive to the root of the MicroSD card. Eject the MicroSD card from the computer and reinsert it into the 3DS.

Power on the 3DS and it will boot into the Luma3DS configuration menu. Enable “Show NAND or user string in System Settings” from the configuration menu. Press START to save and reboot.

How To Restore Flashcart Firmware From Backup

Once you have completed the installation of boot9strap and Luma3DS to your 3DS console, you no longer require the ntrboot exploit on a flashcart. To return the flashcart to its original functionality, simply restore the dumped backup using the following instructions. Before beginning, download the latest version of ntrboot_flasher.

Removing ntrboot from the R4i Gold 3DS

With the 3DS powered off, remove the MicroSD card from the console and insert it into your computer. Create a folder called ntrboot in the root folder of the MicroSD card. Unzip the flashcart backup archive and copy the resulting *.bin file to the ntrboot folder.

Navigate to the luma folder on the MicroSD card and create a folder called payloads and copy ntrboot_flasher.firm into it. Eject the MicroSD card and reinsert it into the 3DS console.

Insert the flashcart into the 3DS, hold the START button while powering on to boot into ntrboot_flasher. Follow the on-screen instructions to select the appropriate flashcart (R41 Gold 3DS) and restore the original flash. Once completed, press A to return to the main menu and B to power off the console.

Adding Custom Firmware To Nintendo 3DSXL

This tutorial assumes that you already have Luma3DS installed to the MicroSD card in the 3DS. From here, you will install Luma3DS to the internal memory as well as several other pieces of software to enable the extended functionality of a custom firmware setup. Before proceeding, download the latest versions of ctr-no-timeoffset, FBI (3dsx and cia files), DSP1 (just the cia file), GodMode9, Homebrew Launcher Wrapper, Universal Updater (cia file), Checkpoint 3.7.4 (cia file), and Anemone3DS (cia file).

Preparing Custom Firmware For 3DSXL

With the 3DS powered off, remove the MicroSD card from the console and insert it into your computer. In the root folder of the MicroSD card, create a folder called 3ds and one called cias.

Copy ctr-no-timeoffset.3dsx and FBI.3dsx to the 3ds folder. Copy Homebrew_Launcher.cia, FBI.cia, DSP1.cia, Anemone3DS.cia, Checkpoint.cia, and Universal-Updater.cia to the cias folder.

Create a folder called payloads within the luma folder on the MicroSD card. Unzip the GodMode9*.zip archive and copy GodMode9.firm to the /luma/payloads folder. Copy the gm9 folder to the root of the MicroSD card. Eject the MicroSD card and reinsert it into the 3DS console. Power on the console and verify that it has the latest updates. If needed, navigate to System Settings > Other Settings > System Update.

Installing Custom Firmware On 3DSXL

From the 3DS main menu, launch the Download Play application. When you see the Nintendo 3DS and Nintendo DS buttons, press L + DOWN + SELECT at the same time to open the Rosalina menu. Select “Miscellaneous Options” from the menu, then “Switch the hb. title to the current app”. Press B until Rosalina exits, then press HOME and close Download Play.

Launch Download Play again. This time, the Homebrew Launcher application will launch. Select ctr-no-timeoffset from the list. Press A to set the offset to 0, then press START to return to Homebrew Launcher. Select FBI from the list. In the file directory, navigate to SD > cias. Select <current directory> then “Install and delete all CIAs” and press A to confirm. Press HOME and close Download Play. Your home screen will now display icons for Homebrew Launcher, FBI, DSP1, Anemone3DS, Checkpoint, and Universal Updater.

Install DSP so homebrew applications will have access to sound

Launch DSP1 from the home screen. Once completed, press B to delete the app and return to the home menu.

Install Luma3DS to CTRNAND

Shut down the 3DS console. Press and hold START while powering the 3DS console back on to launch GodMode9. Create the essential files backup and fix the date and time if prompted, then press A to continue. Press HOME to open the action menu, then select “Scripts…” > “GM9Megascript” > “Scripts from Plailect’s Guide” > “Setup Luma3DS to CTRNAND” and press A when prompted, then follow the on-screen instructions. When you’ve returned to the action menu, select “Cleanup SD card” and follow the on-screen instructions.

SysNAND Backup

From the GodMode9 action menu, select “Backup Options” > “SysNAND Backup”. Once completed, press B to return to the menu, then select “Dump Options” > “Dump Boot9.bin & Boot11.bin” and follow the on-screen instructions. Once finished, exit and navigate to [S:] SYSNAND VIRTUAL and select essential.exefs then “Copy to 0:/gm9/out”. Once completed, press HOME to return to the action menu and select “Poweroff system”.

Once the console is shut down, remove the MicroSD card and insert it into your computer. Copy the contents of the /gm9/out/ folder from the MicroSD card to your computer for safe keeping. After copying, delete <date>_<serialnumber>_sysnand_###.bin and <date>_<serialnumber>_sysnand_###.bin.sha from the /gm9/out/ folder. Eject the MicroSD card from the computer and reinsert it in the 3DS console.

Custom Firmware Applications

You now have access to several custom applications from the home menu with the option to install many more. The installed applications are as follows:

  • Homebrew Launcher lists and launches homebrew applications with the .3dsx file extension.
  • Universal Updater is the 3ds homebrew app store.
  • Checkpoint backs up and restores save files for DS/3DS games.
  • Anemone3DS is a custom theme manager for 3DS.
  • FBI installs games and applications with the .cia file extension.
  • GodMode9 is a root access file browser for 3DS. It can also dump cartridges to MicroSD and create *.cia files for installing via FBI.