The ESP32 SoftCard for the Apple II

434 posts / 0 new
Last post
mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
Hey CVT, could a possible

Hey CVT, could a possible option for the card be printing to a network printer over Wifi?  Thanks! 

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote:Hey CVT, could
mreg376 wrote:

Hey CVT, could a possible option for the card be printing to a network printer over Wifi?  Thanks! 

 

It is not something that I have considered. What is the content to be printed that you have in mind?

S.Elliott's picture
Offline
Last seen: 10 hours 13 min ago
Joined: Jun 23 2022 - 16:26
Posts: 279
Implement printing like a pipe?

It would be really useful to be able to print listings or documents, but it might be awkward trying to print directly from the Apple because it was designed to assume a printer is just an 8-bit pipe/port.  Basically equivalent to "lp0".

 

So you'd get a better bang-for-buck if your card simply piped printer output into an 8-bit text file on the SD card.  That would enable users to print on a network printer by simply printing the text file, which would probably be easier to use than interfacing directly to a network printer.

 

From the ESP32 SoftCard's standpoint, it would probably be trivial to emulate a printer that way:

  • Reads from IOSEL addresses return a 256-byte ROM image copied from the firmware of Apple's Parallel Printer Interface or Centronics Interface
  • Each byte written to DEVSEL+0 should be piped into a file in the SD card.  Always accept a byte -- don't implement any flow-control.
  • The slot's IOSTRB can be ignored.  The whole Parallel Printer firmware fits in the 256 bytes accessed by IOSEL, so IOSTRB is not needed.

 

 

Offline
Last seen: 8 hours 44 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2743
S.Elliott wrote:It would be
S.Elliott wrote:

It would be really useful to be able to print listings or documents, but it might be awkward trying to print directly from the Apple because it was designed to assume a printer is just an 8-bit pipe/port.  Basically equivalent to "lp0".

 

So you'd get a better bang-for-buck if your card simply piped printer output into an 8-bit text file on the SD card.&

 

Is he asking for the ESP32 Softcard to emulate a printer card for the Apple II or for the emulators like the PC XT emaulator or the Atari emulators to be able to print to a network printer?  Those are different things that would require entirely different code.

Offline
Last seen: 11 hours 34 min ago
Joined: Jun 18 2010 - 13:54
Posts: 820
Ideally, you would configure

Ideally, you would configure it with a printer slot #, printer card type, and printer model. Then anything the Apple directs to that printer config would be sent to a network printer. With a virtual printer option to send a pdf or text file to a networked computer instead.  

Admittedly that's a big ask. I tried to do something similar with Fujinet and it's virtual printing feature. However without interrupts or a way to tell when the computer had finished sending data it could not flush a small buffer needed to speed up transmission. 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
CVT wrote:mreg376 wrote:Hey
CVT wrote:
mreg376 wrote:

Hey CVT, could a possible option for the card be printing to a network printer over Wifi?  Thanks! 

 

It is not something that I have considered. What is the content to be printed that you have in mind?

A text document, email message, screenshot, etc. 

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
Good question.  I'm not sure

Good question.  I'm not sure I know what I'm asking, but if I'm playing around with a text file I'd like to be able to print it, or do a print screen.  Since the ESP32 card has Wifi connectivity, I thought it might be possible.  I'd like to use my IIe for more than games -- maybe a tad of productivity.  I guess the question also is how much work is involved in creating this.

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
Although pretty much all

Although pretty much all modern printers support printing over Wi-Fi, there isn’t really one standard and it is mostly done using proprietary drivers. I don’t have any plans for the card to be able to connect to a Wi-Fi printer and print directly.

 

The ESP32 SoftCard emulating an Apple II printer card is not in line of it being an Apple II processor card. It is instead something I would expect form one of the Pico or FPGA cards. They can already emulate a variety of Apple II cards and a printer card might be just a matter of time.

 

Now there is one printing use case that I find interesting and useful: being able to print from inside the Macintosh and PC/XT emulators into a PDF on the SD card. However none of the infrastructure is there and it would take a lot of work to implement it.

Offline
Last seen: 8 hours 44 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2743
CVT wrote:Although pretty
CVT wrote:

Although pretty much all modern printers support printing over Wi-Fi, there isn’t really one standard and it is mostly done using proprietary drivers. I don’t have any plans for the card to be able to connect to a Wi-Fi printer and print directly.

 

That is the kind of printing functionality that I was talking about that I would see as valuable.  Either printing to a bitmap or PDF or even Postscript to a file (in the case of the Mac) on the SD card or to a WiFi connection would be useful. 

 

Perhaps just an FTP (or possible SFTP or FTPS) utility to be able to upload (and maybe download from) files from the SD card to a server would also be useful in addition to the printing.  The file transfer could be outside the emulators like the termet facility.  Ability to do an SSH connection instead of just telnet would be nice also.  ANSI term over SSH would let me use a //e for accesing my Linux boxes securely which would be cool.

 

I do agree though that none of these things are completely simple and easy to implement.

 

I think a lot of people would like the Mac, PC, etc., emulators just to be able to print to a network printer, but again, not easy, and might be hard to fit into the emulators given the memory resources of the ESP32.

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
CVT wrote:Although pretty
CVT wrote:

Although pretty much all modern printers support printing over Wi-Fi, there isn’t really one standard and it is mostly done using proprietary drivers. I don’t have any plans for the card to be able to connect to a Wi-Fi printer and print directly.

Understood.  I'm really not sure if I wasn't talking about printing "directly," as in the Wifi Direct functionality that is out there for modern devices, but since the printer is on the netwiork, and the Wifi module should be able to see the printer on the same network, I thought that maybe just pointing a print job to that printer was a possibility.  But what the f*** do I know?  :-)  

Offline
Last seen: 8 hours 44 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2743
mreg376 wrote:CVT wrote
mreg376 wrote:
CVT wrote:

Although pretty much all modern printers support printing over Wi-Fi, there isn’t really one standard and it is mostly done using proprietary drivers. I don’t have any plans for the card to be able to connect to a Wi-Fi printer and print directly.

 

 As CVT says, the problem is that there probably aren't drivers for current printers in the old systems that the emulators mimic.  So even if the WiFi can see the printer, the printer might not understand what was being sent.  An exception might be that some printers still support some pretty ancient protocols that date back a ways like PCL or Postscript.  The PC XT emulator and Mac emulator applications may speak those.  But it would be hit or miss probably.

 

Offline
Last seen: 2 weeks 1 day ago
Joined: Jan 6 2024 - 17:57
Posts: 39
I was pleased to see that my

I was pleased to see that my LCD monitor was just fine with the PAL 60 mode. Considering this is just an old LCD TV that came in my travel trailer, I've been surprised at how versatile it's been with these different video modes, frequencies, etc. It seems to handle everything I've thrown at it. Maybe because besides the composite and HDMI inputs, it has a VGA input as well, so it has no problem handling the different frequencies.

 

I tried a few tests with the Mac emulator and it does seem better with PAL 60 than it does with NTSC 50/60 or PAL 50 so that's nice. It was hard to tell for sure since I wasn't comparing at the same time, so it may be entirely in my mind. :)

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
Received my ESP32 card today

Received my ESP32 card today and it's terrific!  Just as advertized, I've only started to explore, amazing!  A few questions:

--How does it make use of expanded Ramworks-compatible memory?

--I get a lot of lack of memory errors when opening apps within the Mac emulation.  Any way around that?

--One problem I am having, and it may be because I am temporarily using an AV/HDMI converter, is that sometimes when I reboot after using the ESP32 the screen seems to be stuck as it last was, and can only be corrected by power cycling the IIe.  Is that my AV/HDMI converter, or a bug?

--Internet connectivity is solid.  I assume that any audio streams can be added/subtracted by modifying audiostreams.txt on the SD card.  Any tricks/tips on finding or adding streaming sites?

Thanks -- there will be more questions I'm sure!

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote:Received my
mreg376 wrote:

Received my ESP32 card today...

 

I am glad you received it in just 8 days! To answer your questions:

 

--How does it make use of expanded Ramworks-compatible memory?

It does not use it. Any additional RAM installed on the Apple II bus is way too slow to be of any use. The card uses the internal RAM of the ESP32 CPU and the additional external to the CPU but internal to the ESP32 module PSRAM, which resides in a separate chip inside the cover of the ESP32 module. It is connected to the ESP32 CPU by a 80 MHz serial bus.

 

--I get a lot of lack of memory errors when opening apps within the Mac emulation.  Any way around that?

Although the ESP32 module has 8 MB of this external RAM, only 4 MB are addressable and the firmware also needs some of it.  As a result the emulated Macintosh only has 3 MB total RAM. The operating system 7.0.1 uses slightly over 1 MB, leaving just under 2 MB for applications. To mitigate this, I am posting another system hard disk image with OS version 6.0.8. This version of the Macintosh operating system is using only 166K, leaving the rest of the 3 MB for applications.

      Here it is:  Package iconDisk1.zip

You need to place the file inside the ZIP in the /Mac directory of the SD card, but don’t overwrite the existing 80 MB Disk1.dsk. Simply shift the numbers by one, by renaming the existing Disk1.dsk to Disk2.dsk and Disk2.dsk to Disk3.dsk. Then copy Disk1.dsk from the ZIP, so it becomes the first disk.

 

--One problem I am having, and it may be because I am temporarily using an AV/HDMI converter, is that sometimes when I reboot after using the ESP32 the screen seems to be stuck as it last was, and can only be corrected by power cycling the IIe.  Is that my AV/HDMI converter, or a bug?

This has nothing to do with your converter. It happens if you do a soft restart. The Interface program is no longer running and it is not possible to control the ESP32 SoftCard without rebooting. When this happens, the best approach is to simply do a hard reboot.

 

--Internet connectivity is solid.  I assume that any audio streams can be added/subtracted by modifying audiostreams.txt on the SD card.  Any tricks/tips on finding or adding streaming sites?

Yes, you can simply add more streams by editing AudioStreams.txt on the SD card. They however have to be unprotected. The best way to test that they are is by pasting the URL in Chrome or Firefox. You should be seeing this when you do that and be able to play them in the browser:

This site has hundreds, perhaps even thousands of these unprotected audio steams: https://dir.xiph.org/

Just hit the blue Play button on the right and then copy the URL and add it to AudioStreams.txt on the SD card.

Offline
Last seen: 1 week 3 days ago
Joined: Mar 1 2024 - 11:58
Posts: 3
SAM Emulation

Hi all, today I was testing a old S.A.M. clone card and the speech always came out of the IIe speaker and not the one on the card.

After several tests I figured out: the SAM original software was using the ESP32 softcard on slot 4, once removed the SAM in 5 worked.

 

I didn't know that the ESP32 also emulated the SAM! :D

 

 

 

 

 

 

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
Vintanerd wrote:Hi all, today
Vintanerd wrote:

Hi all, today I was testing a old S.A.M. clone card and the speech always came out of the IIe speaker and not the one on the card.

After several tests I figured out: the SAM original software was using the ESP32 softcard on slot 4, once removed the SAM in 5 worked.

 

I didn't know that the ESP32 also emulated the SAM! :D

 

The ESP32 SoftCard does not emulate a S.A.M. card. There is two varieties of the S.A.M. software: one requires a S.A.M. card and the other does not. My guess is that you are running the one which does not, or there is version that works both with and without the S.A.M. card.

Offline
Last seen: 1 week 3 days ago
Joined: Mar 1 2024 - 11:58
Posts: 3
CVT wrote:Vintanerd wrote:Hi
CVT wrote:
Vintanerd wrote:

Hi all, today I was testing a old S.A.M. clone card and the speech always came out of the IIe speaker and not the one on the card.

After several tests I figured out: the SAM original software was using the ESP32 softcard on slot 4, once removed the SAM in 5 worked.

 

I didn't know that the ESP32 also emulated the SAM! :D

 

You're right! When I removed the ESP32 I didn't connect the IIe speaker...

:)

 

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
Thanks for all the info! 

Thanks for all the info!  That site has a ton of streaming stations, and it was easy enought to modify the SD card.

However, that new Mac disk image was basically empty, just a Mac desktop with an empty "System Folder," Trash Can and nothing else.  And the top menu items had no entries...   

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote:...However,
mreg376 wrote:

...

However, that new Mac disk image was basically empty, just a Mac desktop with an empty "System Folder," Trash Can and nothing else.  And the top menu items had no entries...   

 

Yes, the Mac disk image I posted above which has System Software 6.0.8 is only 40 MB and it has way less stuff than the 80 MB image with System Software 7.1. But as I suggested, don't copy it over the old one. Simply rename the old one to Disk2.img, so that you can still mount it as a second disk and be able to run all the programs it has on it.

 

This is what the screen should look like once you run the MAC command:

 

 

Then once you start the Mac emulator, you should see the new 40 MG disk image on the right side of the screen labeled "System HD" and the old 80 MG disk image labeled "Macintosh HD" just below it:

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
I did put the new inage in as

I did put the new inage in as Disk 1, and renamed the others to Disk 2 and Disk 3, but I did not get that disk menu when I entered Mac.  I'll try again.  Thanks.

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote:I did put the
mreg376 wrote:

I did put the new image in as Disk 1, and renamed the others to Disk 2 and Disk 3, but I did not get that disk menu when I entered Mac.  I'll try again.  Thanks.

 

If you can, please post a picture of what you do see right after you type the MAC command and then one after the Mac emulator starts and loads the OS.

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
CVT wrote:mreg376 wrote:I did
CVT wrote:
mreg376 wrote:

I did put the new image in as Disk 1, and renamed the others to Disk 2 and Disk 3, but I did not get that disk menu when I entered Mac.  I'll try again.  Thanks.

 

If you can, please post a picture of what you do see right after you type the MAC command and then one after the Mac emulator starts and loads th

 

That won't be necessary.  Today it loaded and worked just the way you described.  Thanks! 

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
CVT wrote:MPBApple wrote:I
CVT wrote:
MPBApple wrote:

I also updated the other day and although I haven't tried the telnet features yet, saving the wifi info (SSID and password) is a nice addition.

I often start it up and stream some internet radio through it while working, and being able to just start up the Apple IIe, type "connect" and then "listen 1" (or whatever station) is so much easier now

I have noticed that if audio is streaming at a reduced volume and I telnet, the volume is bumped up to max, with no way to control it in the telnet session. 

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote: I have noticed
mreg376 wrote:
 
I have noticed that if audio is streaming at a reduced volume and I telnet, the volume is bumped up to max, with no way to control it in the telnet session. 

 

 

That is a bug! The fix will be in the next minor version firmware update, which is coming out in just few days. It will have some new features and big performance improvements. Stay tuned!

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
Firmware Update: Macros and Performance Improvements

Firmware Update:

 

This release adds macros - the ability to record all keyboard, mouse and joystick input. The macros are saved in the /Macros directory of the SD card and can be played back either once or in a loop. In addition to that, the update contains major performance improvements and some bug fixes:  Package iconESP32 SoftCard FW v.5.03.zip

 

To update, place the BIN file found inside the ZIP archive in the /Firmware directory of the SD card and then run the UPDATE command. Also place TelnetHosts.txt in the root of the SD card, if you have not done that in one of the previous updates.

 

Version History: (Continued)

 

v5.03

    - Added the ability to record and play macros (keyboard, mouse and joystick). To use, just type the MACRO command.

    - Mac emulator: 35% faster, now running at 3 times the speed of a Mac Classic. Was just above 2x prior to this release.

    - PC emulator: 25% faster, now equivalent to a PC/XT running at 10 MHz. Was equivalent to 8 MHz prior to this release.

    - TurboGrafx-16 emulator: engine now runs 25% faster, allowing it to run at full speed without skipping frames.

    - Video player: added some performance improvements, preventing choppy sound on some videos.

    - Command prompt: added a RENAME command for files and directories on the SD card.

    - Command prompt: added the CPU temperature to the SYSTEM command and improved its layout.

    - Command prompt: fixed a crash when cycling through the commands using the arrow keys and <Tab>.

    - Audio player: fixed a bug causing the volume to reset when connecting to an ANSI Telnet site while playing.

    - PC emulator: fixed a bug causing choppy PC speaker sound when using the -s option of all Sierra On-Line AGI games.

 

Here are a couple of side-by-side comparisons of the performance improvement for the Mac and PC/XT emulators:

Offline
Last seen: 8 hours 44 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2743
CVT wrote:Firmware Update:
CVT wrote:

Firmware Update:

 

This release adds macros - the ability to record all keyboard, mouse and joystick input. The macros are saved in the /Macros directory of the SD card and can be played back either once or in a loop. In addition to that, the update co

 

The bug fixes and speed improvements sound great!  This just keeps getting better and better!  I'm really looking forward to hopefully seeing more emulators in the future.  C64 and Apple //e or even better IIgs would be awesome.  IIgs may be quite a challenge though, especially Ensoniq emulation.

 

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
CVT wrote:Firmware Update:
CVT wrote:

Firmware Update:

 

This release adds macros - the ability to record all keyboard, mouse and joystick input. The macros are saved in the /Macros directory of the SD card and can be played back either once or in a loop. In addition to that, the update co

I deleted my post because I am an idiot.

Offline
Last seen: 8 hours 44 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2743
No, you are resetting the

No, you are resetting the Apple, not the card.  The card may be stuck in a state where you see its output and not the Apple's.

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
softwarejanitor wrote:No, you
softwarejanitor wrote:

No, you are resetting the Apple, not the card.  The card may be stuck in a state where you see its output and not the Apple's

Never mind.  I am a complete moron.  The machine was resetting, but doing do silently because it was booting to the Dan ][ card.

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
Adding a reset button to the card...

There is a way to reset only the ESP32 SoftCard, by installing an external push button which connects pin 1 of the UART port to the GND just to the left of it:

 

 

The picture below is from a customer, who did the mod and posted it on Facebook:

 

mreg376's picture
Offline
Last seen: 14 hours 30 min ago
Joined: Apr 6 2025 - 13:22
Posts: 42
Interesting.  I was just

Interesting.  I was just going to ask if there was a way to reboot the card without power cycling the machine.  Any theories as to why it took a few tries to get the firmware loaded?

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
mreg376 wrote:Interesting.  I
mreg376 wrote:

Interesting.  I was just going to ask if there was a way to reboot the card without power cycling the machine.  Any theories as to why it took a few tries to get the firmware loaded?

 

There is indeed an issue with both v5.03 and v5.02 of the firmware, causing the update process to crash if you do one of the following:

 

1. Press a key during the update.

2. Move the mouse or press the mouse button during the update

3. Move the joystick, or press one of its button during the update. Even having a joystick connected can crash it, since it sometimes changes its home position all by itself.

 

Luckily anyone who updated is not stuck at these two firmware versions, since all they have to do is disconnect the joystick and not touch anything during the update process.

 

I will have a fix shortly, in the meantime please hold on on updating the firmware. I have asked Tom to remove post #426 or at least the ZIP archive it contains.

CVT
CVT's picture
Offline
Last seen: 1 hour 43 min ago
Joined: Aug 9 2022 - 00:48
Posts: 1270
Firmware Update: Crash during UPDATE Fix

Firmware Update:

 

This firmware update contains the fix for the crash described in the previous post: Package iconESP32 SoftCard FW v.5.04.zip

 

To update, place the BIN file found inside the ZIP archive in the /Firmware directory of the SD card and then run the UPDATE command. Also place TelnetHosts.txt in the root of the SD card, if you have not done that in one of the previous updates.

 

Version History: (Continued)

 

v5.04

    - Update: fixed a bug from v5.02 causing UPDATE to crash if a key is pressed or the mouse/joystick moved while updating.

    - Command prompt: added the MACRO command to the help screen.

 

Important:

If you are updating from v5.02 or v5.03 of the firmware, please disconnect your joystick and refrain from pressing any keys or moving the mouse during the firmware update process. If you happen to do that, the update process will crash and you will have to initiate it again.

Pages

Log in or register to post comments