Preface:I recently built a Briel Replica-1 Plus, so this thread applies to that board in particular, not the original Apple 1 or more accurate clones using the original PCB layout and components. This kit is still actively available from ReActive Micro as an authroized distributor. I'm not affiliated with any company or product involved in this post, this building and testing was done because I wanted to do it, and I want to share it.For those not familiar with the Briel Replica1, I stronlgy recommend reading up on it. I could not say enough to commend Mr. Briel on his work to create such a neat kit, which uses still an acutal R6502 (or 65c02) processor, and has BASIC and KRUSADER Assembler in ROM. If nothing else, read the foreward in the documentation about how and why he desigend the kit. When you receive (or better, complete assembling) the new/current version of the Replica 1, there is a download from the website of the kit's files including flat text files of both BASIC and Machine language programs to try.
The Briel kit had previously been used with the CFFA1, however, those CFFA1 boards are not really attainable at this time and I'm not sure when the next run may be done. This sent me on a search for other ways to load software, because aside from keying it in, my best bet was using a serial terminal application and sending the text files that way as instructed with the kit. This turns out to work pretty well, but with then necessary character and line delays needed to not cause input errors by the serial terminal program "Typing" too fast into the apple 1, it's pretty slow.
I saw P-Lab's MicroSD card for Apple1 on this forum, and to make a long story short, while it hadn't been tested on the Replica1 yet I took a chance on it. With some quick back and forth communication between myself and P-LAB it was made to work. And it's really fast. But this thread isn't about SD or CF cards, oh no, it's about loading stuff from a cassette interface! After all, what's an apple 1 clone/replica without an ACI?
This led me to the ACI, however, the Briel Replica (to be best of my knowledge, and Uncle Bernie's per our emails) had not been successful in using this, and it would require not just a modification to the briel, but a change of which power supply I am using to add -12v (the briel has a solder pad near the edge connector presumably there for this purpose). To even test a 'normal' ACI I would have to replace my 5V supply with a multi voltage supply, which isn't out of the question, but...
ENTER UNCLE BERNIES GEN 2 ACI
Uncle Bernies Gen2 ACI (see other thread on this forum) conveniently operates just on +5v and GND, on pins already connected to those signals on the Briel. As a matter of fact, -no- modification is needed to the Replica1 for this to work. This circumstance alone eliminated a huge barrier in testing (a whole different power supply setup).
Bernie reached out offering me a chance to beta test the new Gen 2 Improved ACI. I couldn't say no; I wanted to see a cassette interface working with the Briel, and if I could help make that happen, I was all in.I shot Claudio (P-LAB) a message, asking him if he could perhaps see any other potential roadblocks aside from the [resolved] voltage situation, because he had done me a favor by repeatedly reviewing the Replica 1 schmetaics during our testing of the MicroSD card. He seemed fairly confident that it should work.
If you are one of the other beta testers of the improved ACI, or you are lucky enough to purchase one in the future, the best advice I have (which applies to any project like this) is read the instructions a few times over. *The SMD components are really small.* Aside from the six SMD components, the rest of the soldering I would consider to be no problem for most hobbyists comfortable with their soldering iron. The SMD Components hide under sockets, so in addition to them being small, good flat placement is also pretty key. Bernie provides decent instructions, but if you are not experienced in SMF work I STRONGLY recommend you get some nice chipquik solder paste and a SMD practice kit from Amazon before trying to build this kit.
Once the SMD components are down, you can breathe much easier. Install your other components, I personally do it in order of thickness but there aren't really any "gotcha's" for the through hole stuff.
Make a proper cable! Bernie has documented this, but you need a TS to TRS cable with R lifted/disconnected. This prevents shorting Tip and Ring. Read more about it in Bernies posts/documemtation
For the beta testing, one resistor was temporarily replaced with a trim pot. I installed female pin headers in place of the resistor/trim pot, because the trim pot has to be out of circuit to be measured after adjustments. I soldered a short section of lead wire and 2 male header pins to the trim pot, which served 2 purposes. First, making it hot-pluggable into the card, and second, making it easy to clip into the ZIF on a standard component tester. A huge time saver.
SO, DOES IT EVEN WORK?
After building it, with all DIP sockets empty, voltage was checked at the chip sockets. It was all good, so the machine was powered off, IC's installed, and powered back on. Everything seemed fine, so following that "smoke test" The 1st step was to check $C100 for the presence of the Cassette code. Uncle Bernie Says, "The code itself is in Mike Willegal's ACI manual," and he sent me a copy.
I pulled the manual out, and the first few bytes should have been:A9 AA 20 EF FF
But I got:
9A AA 02 FE FF
So I looked at the part numbers on the IC's of the ACI. I swapped the two chips AM27S13P because they were the only IC's I could think that could remotely be the cause of this. I swapped their positions, and the code at $C100 was now correct in the Monitor!So now we know the card is there, and it's program is accessible, but, will it toggle?Uncle Bernie wrote a small (and I mean SMALL) test program, just 14 Bytes(!). He informed me that "for every toggle action on the ACI comparator output, it will produce either a 'P' or a 'Z' on the screen." And it did! This means proof of concept is completed and we're on to loading softeware.
LOADING SOFTWAREUncle Bernie provided me an .aiff of his Codebreaker game, which is a bit easier to load than using the normal $C100 program. For some very odd reason I never figured out, the first couple of times I loaded the program the keyboard didn't want to work. But after re-checking voltages and re-seating the connections, I have not had that problem or been able to recreate it anymore. Once they keyboard stopped playing with my feelings, sure enough, Uncle Bernie's codebreaker game worked! And not only that, it also informed me I wasn't running it on a -real- Apple 1, which is pretty neat. That left me here: https://archive.org/download/Apple1Cassettes
I downloaded all the WAV files from archive.org and threw them on a Gen2 Ipod Mini which I recently restored. It has a comically large 64GB Compact flash drive in it (I recently put in a new battery because I've had it 16 years, and why not put in a CF card while I was in there?). In short everything worked fine.
As far as I can tell, so long as both kits are properly assembled, the Replica 1 Plus is fully compatible with Uncle Bernie's New Gen2 / Revised ACI card. It brings me much happyness to say that and inform this community.
ACTUAL CASSETTE TAPE
Convinced it works fine with a proper audio source, I was pretty sure it would work with a normal Cassette too. I obtained a GE Cassette recorder, Model GE 3-5158B ("Computer Program Data Recorder"). To test, I wanted to use something with a checksum. Thanks to Uncle Bernie's Codebreaker having a checksum, I chose it as my test audio. I recorded it to the GE cassette player as instructed in the manual for the tape recorder, with my iPod mini as the audio source. I rewound the tape, checked it by ear, and it sounded good enough. I plugged the cassette recorder into the input of the ACI, and it worked! So here we have a functional cassette interface, on the Briel Replica 1 Plus. Something both Bernie and I have never seen before. To me this is an absolute testament to the engineering skills put into the Briel and into the Revised ACI. I hope this inspires future curious Apple fans to venture down the road of building these kits.And with all of that said, here is a one minute video of it all working together:
I will be uploading a gallery of pictures taken during building and testing of the ACI to Imgur soon, probably later this afternoon. Respectfully,
Well done, Alex and Uncle Bernie!
The single 5V power supply is in my opinion the most important feature for the success of this solution.
Since Replica-1 natively does not use the -12V rail, connecting a second power supply might have discouraged many in the past.
Now it is no longer necessary!
Claudio - P-LAB
Thank you Claudio, for your kind words, and your kind assistance as well.
I have uploaded a photo album here: https://imgur.com/gallery/rlvTo42
I've now tested writing to a cassette with this setup as well. I was able to save a program to cassette, power cycle the machine, and re-load it.
My cassette player does not mind TS cables so I am just using MOOG TS patch cables between the tape recorder and [improved] ACI. For stereo sources/equipment, again, a cable that disconnects 'ring' on the stereo side is necessary, with the mono plug inserted into the ACI.
One minor note/mistake in my youtube video: Bernie reminded me, as did the ACI manual, that a tape should be in motion prior to hitting enter on the keyboard. It still worked but for future visitors that is the best practice.
In the interest of further testing of the reliability of this solution, I found the tool from our own @Nippur72 located here:
I reformatted the file so that it could be loaded to a Replica1 over serial, leaving the card slot open for the cassette interface.
Run this command in terminal:
out % xxd -c 8 -g 1 tapemon.0280.bin |cut -d':' -f 2|cut -d' ' -f 1-9|sed 's/^\ /\:/g' | tr a-z A-Z
Then prepend 0280 in the 1st line. Once prepared the 1st lines should look like:
out % cat tapemon.0280.r1serial_text.txt
0280: 20 9D 02 20 BC 02 85 05
:A9 31 C5 05 D0 03 20 C7
:02 A9 32 C5 05 D0 EC 20
To test I opened a serial terminal application and set an overly careful line and character delay (.200 and .040s) and sent the text file to the R1. Following the instructions on nippur72's github, this allowed me a nice 'view' into the reliability of the cassette interface.
I learned basically that if the volume is loud enough for the comparator to toggle, every packet displays the '*' we want to see. I was only able to get incorrect/incomplete data when the volume was 'in motion' past the threshhold, or when stopping/starting in the middle of the recording. Using an iPod mini, basically anything above 60% all the way to max showed no signs of unreliable decoding.
I submitted a pull request with the reformatted file to Nippur72's github, if he so chooses to accept or work with it.
EDIT: Important to mention, I STRONGLY discourage getting your audio source from the same computer which is powering/accessing the R1 via USB. While I haven't tested it, this is a classic recipe for a nasty ground loop. Use a separate audio source which is not the computer itself.