Jump to content
IGNORED

AtariVox+ Few oddities


-^CrossBow^-

Recommended Posts

Try this -

 

Remove the LM386 and bridge pins 3 and 5 with a wire link (see pic) and turn the volume pot fully clock-wise.

 

You will have to use powered speakers now (but I know a lot of guys use amplified PC speakers already).

 

Richard thank you for suggesting I try this. However, I did try it tonight and it didn't make any difference at all. The Avox+ resets itself in the same place on 3 different 7800s that I tried it on tonight. I hear a Watch Out just after the wizard shows up and then the Avox+ plays the reset tones and no speech at all until I unplug and replug or power cycle the 7800 itself.

Link to comment
Share on other sites

As Richard H. can confirm, the only difference between the original and “+” is a dip switch, a PIC to reconfigure everything, and pads or pins to connect a computer/device to program the PIC.

 

AtariVox sings “Atari-VOX!” on start up.

AtariVox+ speaks “Ah-TAR-e-Vox”.

 

No information that helps.

 

It was tricky in trying out speech strings when I made them for Wizard of Wor.

I was using Windows XP on an iMac through VMWare.

Too many clicks and sometimes it would say garbage, and then a bit of a wait until you can try again.

Sometimes I would just get a faint hiss and have to wait.

None of my 4 AtariVox+ reset like was shown on ZeroPageHomebrew showing of Wizard of Wor.

I don’t have the 7800 game that speaks.

 

I can’t remember exactly, but aren’t there codes for ending a string, and code(s) for reset/flush buffer?

 

I have 3 AtariVox+, and 1 original AtariVox that was bought and shipping when the AtariAge member who had the parts decided to build and sell AtariVox+. I promised if he made them I would buy 2, and he sent those with a third one for development with the “USB to computer” device. That’s just an FTDI chip with 9-pin connector on one side and USB cable connector on the other.

I was in the process of building an AtariVox+ from parts when I located someone selling the original AtariVox. I have the parts to build 1 more AtariVox+, a pre-programmed PIC, circuit board, and device I made to “set SpeakJet baud and install the start up speech”.

 

This is the 9-pin to USB “AtariVox USB” device:

 

post-29575-0-39140600-1541161499_thumb.jpeg

Link to comment
Share on other sites

[...]

I cant remember exactly, but arent there codes for ending a string, and code(s) for reset/flush buffer?

The code for "ending a string" is just an End-Of-Line character, which isn't actually sent to the vox. It just informs the driver not to send any more bytes.

 

For resetting, there's an interrupt code, but it doesn't really help. It's already used with these games, and it's just another code that goes in the buffer, along with any speech that follows it. If the buffer gets stuffed, the vox will still get in a weird state and misinterpret the code anyway. If the buffer isn't stuffed and the vox is fine, the interrupt code doesn't help anything either, since the vox is already fine. The same would be true for any code we throw at the vox.

 

I'd also hesitate to make any assumptions about AtariVox based on the USB serial connection. I don't believe it has the same "atarivox ready" line safeguard, though I may be mistaken.

Link to comment
Share on other sites

  • 2 months later...

There's a very interesting update from MissCommand in the Wizard of Wor Arcade thread...

 

So over the break I had some time to look at the AtariVox+ and play lots of WOW! After taking taking the casing off I noticed there was some flux around the solder connections so I took some alcohol / hair dryer and cleaned it off. Low and behold everything worked! Played through a whole game of WOW with voice and tried a few other AV+ games as well. Later that evening it was back to the garbled after first level. So I took out the AV+ ICU chips and cleaned those with some alcohol and it was back working again! Later the bad behavior had returned. So one more time, I just applied some alcohol and yep... it was working again. Each time that seems to last around 30 minutes or so...

 

So I am wondering if this may be a hardware type issue and not firmware. Any of you electronic guys out there know why it would work after these alcohol / hair dryer sessions and last for 30 minutes or so?

Sounds to me like it might be an issue with oxidation. Any other theories?

  • Like 1
Link to comment
Share on other sites

There's a very interesting update from MissCommand in the Wizard of Wor Arcade thread...

 

 

Sounds to me like it might be an issue with oxidation. Any other theories?

 

Hello all! Im am trying to see if I can help debug a problem cropping up with my AtariVox+ playing the new homebrew Wizard of Wor. After the first level (sometimes shortly afterward) the voice will get corrupted and start playing the non-voice tones (kind of sounds like R2D2!) Sounds like this is a known problem.

 

There are no signs of oxidation (it is fairly new... only a couple of months now).

 

RevEng... you added the AtariVox to Berzerk? AV+ works fine with that one... have you and Johnny from Champ Games exchanged notes on your implementation of the voices?

Link to comment
Share on other sites

[Wall of text approaching, with due apologies]

 

First off, thanks a ton for reporting your temporary fix. Prior to your report, people who encounter the problem can't seem to get rid of it, and people who don't have the problem can't reproduce it. A "problem vox" sent to my house couldn't reproduce the issue. People with the issue have switched out consoles, power supplies, and voxes, without relief.

 

Now we have someone who can reproduce the issue, and can also temporarily fix it by applying alcohol to the speakjet pins. This can only mean there's something marginal in the speakjet signal quality or power quality, and your fix is enough to overcome it for a while.

 

I think there might be other factors at play here, and your temp fix may or may not work universally, but either way it's still highly suggestive as to where the problem is coming from.

 

 

There are no signs of oxidation (it is fairly new... only a couple of months now).

Yeah, I'm thinking very light oxidation. The sort that people used to blow on NES carts for. The kind that accumulates 30 minutes after cleaning.

 

Unless it's very bad, this sort of oxidation should only affect higher frequency signals. But maybe it's enough to round off the square wave too much and cause too much delay in RIOT recognising the "speakjet ready" signal change. I don't know, since we haven't looked at the signal quality.

 

While I dabble in hardware, these are pretty deep waters for me, so perhaps someone with more expertise has a better suggestion that fits the evidence.

 

 

RevEng... you added the AtariVox to Berzerk? AV+ works fine with that one... have you and Johnny from Champ Games exchanged notes on your implementation of the voices?

I did add AtariVox support to Berzerk. It uses the same driver, authored by Alex Herbert, that many other homebrews use. I also use the same driver for Salvo and Dungeon Stalker, two of the games that some report issues with. (and others have no problem with, same as WoW)

 

There's at least one thing in common between the games that cause the issue. They send a lot of data to the atarivox, and rely on the speakjet reporting that it can't take anymore data right now.

 

Based on observation, I believe that most 2600 homebrews don't get close to filling the speakjet buffer. Few of those game go beyond saying the game name and having a few speech events. Fewer still routinely insert pitch codes to add inflection to the speech data. Even less of those have one speech event interrupting another.

 

The games involved do all those things, and as a consequence send a lot more data.

 

Lastly, an alcohol cleaning on the chip legs shouldn't impact a driver problem. :) (and we tried dozens of driver tweaks to try and work around the issue, with no luck)

  • Like 1
Link to comment
Share on other sites

It's held together with friction clips, and nothing else. If you grip both halves of the case, and squeeze the "label" half at the widest end, you can pull both halves apart. The squeezing takes a bit of finger strength, but otherwise I can do it repeatedly without damage to the clips or case.

 

Sticking it back together again is just a matter of aligning the two halves, and squeezing them together.

  • Like 1
Link to comment
Share on other sites

Again, to rule out contact issues, I can remove the sockets and solder all the chips down? It is a bit of work no doubt but then again, were there actually plans to swap out these IC chips over the years?

 

But I should also report since Rev didn't mention it, that these Vox games that have issues is much more prevalent of an issue when you play these games on the 7800 vs 2600. I've never heard the vox+ mess up when playing a 2600 game that supports it like Juno First..and I've not tested the WOW build with an Avox+ and 2600. Dungeon Stalker is my go to on testing this with various 7800s that come my way to get modded. So far NONE of them have been able to actually play Dungeon stalker further than about the second level before the Vox hoses up and either resets or just dies and produces no speech until you unplug it or power cycle the 7800.

Link to comment
Share on other sites

For sure, your testing showed that 7800 mode was worse than 2600 mode. OTOH we have at least two people getting the issue with WoW, so I'm not sure how much of that applies to the 2600 itself, vs 7800 in 2600 mode.

 

Like I wrote earlier, previous 2600 games generally don't throw as much data at the vox, so the buffer can drain and they never need the "speakjet ready" line.

 

I think soldering is a bit drastic, until multiple people report the alcohol fix works. I have a feeling there's some other factor here, and the alcohol fix tipped the scale. It might not always tip the scale, and soldering may not work for everybody either.

  • Like 1
Link to comment
Share on other sites

I won't have time to do a proper test for a couple of days but I've just had a quick inspection of the chips and the Speakjet + socket is white with oxidisation as one would expect, but only the very tips of the insides of the legs of the chip were silver (1-2mm at most). It could be that the alcohol was increasing the conductivity until it evaporated.

  • Like 2
Link to comment
Share on other sites

Thanks for the information! BTW, love the AtarVox Berzerk!

 

[Wall of text approaching, with due apologies]

First off, thanks a ton for reporting your temporary fix. Prior to your report, people who encounter the problem can't seem to get rid of it, and people who don't have the problem can't reproduce it. A "problem vox" sent to my house couldn't reproduce the issue.

 

 

I have found another way to reproduce the problem for me. Spell & Speak ROM always goes weird when inserting a "?". Don't know why, it works with everything else including the "." punctuation. Just like WoW, I have to reset the AV+ and restart the ROM.

 

With my little bit of serial coding, it almost appears as if there is a character that gets dropped and the chip is getting misaligned data after that resulting in the weird tones. Are there any kind of error detection coding (like CRC) to verify the data was received as sent? Of course, that shouldn't effect it when sending a new data string, so why it continues in that mode afterwards is unknown. You would think sending a new data string would clear the buffer.

Edited by MissCommand
Link to comment
Share on other sites

Glad you're enjoying the berzerk hack. It was a simple one, but I think it adds a lot to the game. :)

 

 

I have found another way to reproduce the problem for me. Spell & Speak ROM always goes weird when inserting a "?". Don't know why, it works with everything else including the "." punctuation. Just like WoW, I have to reset the AV+ and restart the ROM.

Interesting. A particular speakjet code (in this case, pitch change) regularly triggering the problem would indicate it's not "speakjet ready" line problems. Since there's a physical/electrical fix, then maybe we're looking at bad transmission instead.

 

The usual phoneme (voice) data is a single byte, and all of the phoneme values range from 128+. A bad transmission of any of these is pretty likely to be mapped onto another phoneme code, and just mispronounce the word. (provided the number of bits read in by the speakjet is valid)

 

The "?" sends a command to raises the voice pitch, which is one of the few 2 byte commands. A bad transmission of one of these would likely map onto some 1 byte command. This would mean the next sent byte, the pitch value, would be interpreted as a command byte. Depending on the pitch value, this could easily gum up the vox session.

 

 

With my little bit of serial coding, it almost appears as if there is a character that gets dropped and the chip is getting misaligned data after that resulting in the weird tones. Are there any kind of error detection coding (like CRC) to verify the data was received as sent? Of course, that shouldn't effect it when sending a new data string, so why it continues in that mode afterwards is unknown. You would think sending a new data string would clear the buffer.

The atarivox voice communication is entirely one-way, with the exception of the "speakjet ready" line, which will either be high or low depending of the state of the speakjet chip. There are no checksums to be received or sent. So you can only send command bytes to the device and hope they work. If the "speakjet ready" line indicates the device isn't ready, you stop sending bytes (which the driver does) but there's nothing else to do.

Link to comment
Share on other sites

I've had a chance to test and I was not able to replicate this workaround.

I triggered the problem using my test program to repeatedly push the below "Hello world" data to the vox, and then used alcohol to clean up the flux on the board and the corrosion on the chips, tried again, and was able to repeat the problem. I also tried bending the contacts in the socket to get more of a connection but I wasn't able to get them to move by any useful amount.

 

When the issue happened the noises would stop and I could roughly control them by firing off the phrase again. The range of noises would tend to stick to Sonar Ping 252, Pistol Shot 253, and either the WOW 254 sound or roughly the range of WW 147 to OWRR 153. Occasionally there would be variations such as a dial tone noise in the 240-251 range. The speed of the sounds also varied but the volume, pitch, or bend did not as far as I could tell.

031
021
120
022
075
023
003
183
131
146
164
000
022
074
147
151
145
176
255 
  • Like 1
Link to comment
Share on other sites

Hey guys, after continuous nights of testing and consulting with a friend with electronics experience... I have finally found the solution I was looking for! :)

 

I don't care much for the Vectrex portions of AtariVox+, so we basically configured it as an AtariVox original and it's all quite simple... we just removed the PIC chip! Afterwards, I have played back to back games of WoW, and other AtariVox games with no gibberish and no resetting. See picture below.

 

So removing the PIC chip works. What does that tell us? My electronics friend found the PIC Vss pin (gnd) connects to the ground through DIP switch number 3. Since that DIP switch is "off" in normal Atari 2600 mode, this leaves the PIC with a floating ground, essentially turning the PIC off. DIP switches 4 and 5 bypass the PIC, however the PIC is still attached to the circuit and in conjunction with the floating ground is causing unexpected behavior on the data lines. This is why the alcohol was working as it was trapped under the PIC thereby changing the behavior on a temporary basis.

 

Best of all, if a solution is found to either reflash or replace the PIC chip, it can simply be soldered back on.

 

 

post-55762-0-61027700-1547000437_thumb.jpg

  • Like 4
Link to comment
Share on other sites

So instead of having the dip switch kill the ground signal to the PIC to disable it, it could be redone to kill the voltage to the PIC instead to disable it right? (I'm thinking something like a simple switch to enable or disable the voltage to the PIC).

  • Like 1
Link to comment
Share on other sites

SmittyB, are you up for another test? Does grounding the PIC in atarivox mode make a difference for you? ie. flipping dip switch 3 up?

 

It may not work. The device will still be back powered, and back powered devices aren't really predictable - but it's an easy enough test.

Link to comment
Share on other sites

SmittyB, are you up for another test? Does grounding the PIC in atarivox mode make a difference for you? ie. flipping dip switch 3 up?

 

It may not work. The device will still be back powered, and back powered devices aren't really predictable - but it's an easy enough test.

 

I just tried this. Avox+ will initialize with AtariVox but that's it, no other sound from it beyond that point.

Edited by -^Cro§Bow^-
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...