holmatic / zx-iot-video

ESP32-based Tape/WLAN file server for ZX81, with VGA and/or LCD display support
GNU General Public License v3.0
30 stars 5 forks source link

Completely external device #1

Closed stevexyz closed 2 years ago

stevexyz commented 3 years ago

Would it be possible to attach to MIC instead of pin 16 of ULA? There is a resistor and a capacitor in the middle but also on the wespi side... maybe with some wespi adaptation might be possible!

If possible, this would allow for a completely external module, with power coming before to this "ext waspi" and then from it to ZX (maybe even a bit more stabilized), and then 2 cables fromwespi to mic and ear plugs!

holmatic commented 3 years ago

Would it be possible to attach to MIC instead of pin 16 of ULA? There is a resistor and a capacitor in the middle but also on the wespi side... maybe with some wespi adaptation might be possible!

If possible, this would allow for a completely external module, with power coming before to this "ext waspi" and then from it to ZX (maybe even a bit more stabilized), and then 2 cables fromwespi to mic and ear plugs!

Due to the resitor and capacitor you mentioned, the MIC output of a ZX has a very weak signal - somewhere in the microvolt range. Thus one would need a very sensitive low-noise preamp with fixed gain to get back to levels that wespi could use. That preamp circuit would probably need some substantial analogue electronics black magic to get it working reliably.

stevexyz commented 3 years ago

I might have some skills as a software magician (1krealchess is on that side) or apprentice ones for digital electronics (e.g. microtron or super micro relay computer), but unfortunately I'm pretty green on analogue circuits. Anyway, if technically possible there might be out there some wizard ones that might help! PS: forgot to mention on first post, but really compliments for this extremely nice project (that is anyway already on the magic side :))!

hagen-git commented 3 years ago

Thank you, holmatic, for this impressive project - I come from the TZXDuino side (for a Jupiter Ace in an FPGA) and discovered zx-iot-video on the ZX-TEAM forum. I'm also not very well versed in analog electronics, but please allow me to chime in with my 2 cents.

stevexyz: Would it be possible to attach to MIC instead of pin 16 of ULA?

Very likely this would not work for the video signal:

For all ZX81 'tape' functions, just using MIC and EAR connections ('record' and 'play') should work. And this already gives you an impressive amount of functionality (not only a moving-parts-free cassette recorder emulation, but also a WiFi-accessible Web Server to manage ZX81 files on, and an ingenious menu system that runs on the ZX81).

If the audio level really is too low, there are ready-made LM386 audio amplifier modules made for the Arduino that you can use to boost the MIC signal. The circuit used in a cheap 80's mono cassette recorder is not much different (and I used my ZX81 with one of these cheap cassette recorders around 1982-1984, before I got a 'Schneider CPC464', so I know it worked).

holmatic: Due to the resitor and capacitor you mentioned, the MIC output of a ZX has a very weak signal - somewhere in the microvolt range.

For a small TV-to-Composite conversion project, I made a simple video amplifier to bring a weak composite (VBS/BAS) signal to the voltage level a TV set needs.

holmatic: Thus one would need a very sensitive low-noise preamp with fixed gain to get back to levels that wespi could use. That preamp circuit would probably need some substantial analogue electronics black magic to get it working reliably.

I agree, the video signal part left on the MIC output after the low-pass filter is probably really, really low, and therefore difficult to re-generate.

If you need the ZX81 video part (and who does not want a nice TFT or VGA output?), a direct connection to the ULA is the best way to get a good signal.

Another 'plug-and-play' option (cable-connection only) would be to replace the ZX81 RF output modulator with a composite (VBS) output (ca. 1.073V differential). Then you could connect the ZX81/composite output with the WESPI and amplify the composite signal on the WESPI side.

For my Jupiter Ace FPGA project, I will probably test if I can make this work - I don't have a ZX81 anymore, and the ability to use composite-to-TFT/VGA would be really nice. I don't need this quickly (the FPGA version has VGA output), but it would be nice to be able to do small Jupiter Ace things on the 320*240 TFT (saves me some VGA monitor schlepping).

For the audio signal from Papilio One Jupiter Ace to the ZX-Wespi-Video/jupiter_ace_native (i.e. MIC output), I use this circuit (inspired by the Jupiter Ace schematics): Papilio One Jupiter Ace - Wespi Circuit