Page 1 of 1

PSX->PC via Arduino Uno R3 (

Posted: August 12th, 2015, 5:46 pm
by sickle
Image

I'm not really an electronics kinda persion, but I managed to bodge this together and it works quite nicely with PSXSerial,

The R3 was the first board not to use an FTDI chip, so you can't solder directly to those pads, but pins 0 & 1 on some models still work nicely as a passthrough if you connect Reset to Ground; so no need for the SoftSerial library which is really too slow for 115200.

8K Seems about right for the resistor(s) - the ohmmeter is reading 7.4ish - too far either way and things don't work so well, but lemme know if the image needs changing ^^

Re: PSX->PC via Arduino Uno R3 (

Posted: August 12th, 2015, 7:43 pm
by Administrator
Nice little diagram Sickle. Great for those that have Arduino's on hand :)

Re: PSX->PC via Arduino Uno R3 (

Posted: August 12th, 2015, 11:07 pm
by CyrusDevX
Very nice bud ^^, this is something i have been wondering myself. +1

Re: PSX->PC via Arduino Uno R3 (

Posted: December 20th, 2015, 8:15 pm
by Meta

Re: PSX->PC via Arduino Uno R3 (

Posted: December 20th, 2015, 10:32 pm
by Administrator

Re: PSX->PC via Arduino Uno R3 (

Posted: December 21st, 2015, 5:34 am
by Meta
Image

The scheme, resistor 8 K does not have to be there. You have to know whether the serial port O / I PSX works to 5V or more tension. Arduino operates at 5V it is to know whether to use the MAX232 between Arduino and PSX, by tensions or inverse data states as in the PC and Arduino if you connect directly without using USB.

Image

http://sodoityourself.com/max232-serial ... converter/

Image

I want to know if anyone has tested and works.

How do people know the commands needed PSX using the serial I / O port?

What you can control exactly PSX and Arduino?

;)

Re: PSX->PC via Arduino Uno R3 (

Posted: January 20th, 2016, 2:55 am
by sickle
Heyhey.
My Arduino has a 3.3v switch, so I've never used 232's. The resistor is needed, but it's not because of voltage issues - the resistor cleans up the signal a bit.


There are lots and lots of schematics for making your own hardware with 232's all over this forum and on places like hitmen's site though, so maybe it's worth double checking.

http://hitmen.c02.at/html/psx_siocable.html
http://hitmen.c02.at/html/psx_hardware.html
http://hitmen.c02.at/files/hardware/psx ... ter/ar.gif

The only thing I can think of is that the last schematic is using pins 7&8 ... which means you'd have to use SoftSerial.
SoftSerial is quite slow and not reliable. I'd say move TX/RX to pins 0 & 1 then connect the Gnd/Reset pins together.
This makes the Uno act like an FTDI chip and you don't need to upload a sketch.

You can't boot from the serial port and there's no special commands to load stuff - you definitely need a program like PSXSerial running on the playstation, so you'd have to ask Shadow about the exact protocol. All I know is it starts "abc".
(You can test by running "echo abc>com6" for example.
There are also SIO echo examples in the PsyQ SDK if you want to take a closer look. It's very useful to have a program that outputs serial data when you press buttons (to test things).

Re: PSX->PC via Arduino Uno R3 (

Posted: February 12th, 2016, 2:07 pm
by mrhaboobi
do you have any pics of this in your machine, would it work with sicons etc? Cheers

Re: PSX->PC via Arduino Uno R3 (

Posted: February 13th, 2016, 2:11 am
by Greg
Not work with siocons, for that look at: https://psx0.wordpress.com/2013/08/08/p ... ink-cable/ by danhans42

Re: PSX->PC via Arduino Uno R3 (

Posted: February 13th, 2016, 5:00 am
by Meta
Hi there:

Knowing the pins and using the MAX232 and Visual Studio .NET.

Can you do something with the serial port of the PSX?

I want to know your commands and responses from the PSX.

Image


Regards.

Re: PSX->PC via Arduino Uno R3 (

Posted: January 5th, 2018, 1:53 am
by sickle
Wow, sorry, took like 2 years to get back to you there. My bad.

So there's really no point using SIOCONS nowadays; you're better with PSXSerial.psx (from this forum), it's also built into UniROM (from this forum). The advantages are:
-simple protocol
-decompilable (it's in C# .NET so... that's your visual studio question answered)
-fewer wires
-still supported

Once you're up and running you could go for something like this:
(that's the one I use spliced into an old link cable, and it has the extra pins if you do ever need them)


Just the three wires: gnd->gnd, tx->rx, rx->tx. I haven't needed a resistor. I connect with putty, set to serial (COM3 in this case and at 115200 baud. You can test by firing up UniROM or PSXSerial. PSXSerial will accept a transfer if you send like "A" "B" or "C", UniROM will print the first 10 chars you send to the screen.

Hope that helps!

Re: PSX->PC via Arduino Uno R3 (

Posted: January 5th, 2018, 4:04 am
by Xavi92
My open-source tools OpenSend and QPSXSerial (http://www.psxdev.net/forum/viewtopic.php?f=62&t=1307) are more complete than PSXSerial and SIOCONS, as they also allow uploading external files e.g.: TIM, VAG... under request from the target. PSXSerial and SIOCONS would only upload an EXE file to the target, but nothing more. Below there is a YouTube video showing how games are uploaded without using a CD-ROM.

[youtube]http://www.youtube.com/watch?v=YyorqauWiPw&t=3s[/youtube]

My video game "Airport" is a good example on how to use OpenSend and QPSXSerial together with a PSX homebrew game: https://github.com/XaviDCR92/Airport

Re: PSX->PC via Arduino Uno R3 (

Posted: January 5th, 2018, 7:06 pm
by TriMesh
Xavi92 wrote: January 5th, 2018, 4:04 am My open-source tools OpenSend and QPSXSerial (http://www.psxdev.net/forum/viewtopic.php?f=62&t=1307) are more complete than PSXSerial and SIOCONS, as they also allow uploading external files e.g.: TIM, VAG... under request from the target. PSXSerial and SIOCONS would only upload an EXE file to the target, but nothing more.
Actually, SIOCONS can send arbitrary binary data to the console - just use the DLOAD command

DLOAD <filename> <target_address>

SIOCONS has lots of other deficiencies that you can validity criticize it over, but that isn't one of them :D

Re: PSX->PC via Arduino Uno R3 (

Posted: January 5th, 2018, 11:41 pm
by sickle
Xavi92 wrote: January 5th, 2018, 4:04 am My open-source tools OpenSend and QPSXSerial ...
Neat! I missed this being released! FWIW I have unirom uploading arbitrary binary chunks and (optionally) executing them too. When I find the time I'll have to make it compatible with the pc/CLI part of your tools ^^
If I ever find enough time, I intend to modify the arse end out of xflash to accept roms via serial... so much to do :|

Re: PSX->PC via Arduino Uno R3 (

Posted: May 11th, 2020, 6:52 am
by bugmenot
Sorry to necro-post a bit, but according to this page ( https://forum.arduino.cc/index.php?topic=236581.0 ) it seems possible to power the 'duino at 3.3V directly through the Vin pin, provided you add a diode between 5V & 3.3V pins.

It looks like you could take the 3.3V provided by pin 7 of the PSX serial port to power the 'duino and not have to fiddle with a MAX233 ... Has anyone tried this ?

Re: PSX->PC via Arduino Uno R3 (

Posted: September 9th, 2021, 11:53 pm
by fullmontis
Since I have a spare Arduino and wanted to have a serial connection with the PS1, I have been playing around with this and was able to make it work. However it was a little less intuitive than I expected, considering how simple the whole process actually is. I tried the schematics on the first post but without luck, and had to do some tinkering to make it work. So I thought I might as well post here what I found out so that I can save other people some time.

Abbreviations I'm going to use in this post to make it more readable:

ARx: Arduino's Rx PIN (PIN 1)
ATx: Arduino's Tx PIN (PIN 0)
PSRx: PS1's Rx Pin (PIN 8)
PSTx: PS1's Tx Pin (PIN 5)

Okay so, PS1 serial port uses 3.3v, but it is possibile to use a standard 5v Arduino after a little setup:

-- A jumper needs to be added between RESET and GND on the Arduino to disable the microcontroller and allow use of the board as a USB interface. So far so good.

-- Officially, on the Arduino PIN 0 is marked Rx and PIN 1 is marked Tx on the board and online references. HOWEVER those are not the USB to TTL pins, but the microcontroller's. The following diagram probably does a better job of what is going on here:
psx-arduino-img0.jpg
This means that the way it is marked on the board is actually inverted if we want to use it as an USB interface. That's why PIN 1 is actually Rx and PIN 0 is actually Tx for our case here.

Knowing this would have saved me a LOT of confusion, as I had my connections inverted for longer than I'd care to admit. Maybe this is common knowledge and I was just being dense, but in any case here it is.

-- ARx can be connected directly to PSTx. Even if the Arduino is 5v, ARx is designed to trigger with 3.3v (or at least it should, check it in case), so we're good here.

-- ATx needs to be connected to PSRx with a voltage divider. I tried a direct connection (5v), but while it didn't smoke or anything it doesn't allow communications. So we need to lower the voltage a bit with a voltage divider. This is very simple, but the values are a little finicky and required some testing. See the end schematic and resistance values, this gives a voltage of about 3.45v which is a little above 3.3v but seems to be required to make the pin trigger correctly.

Okay, so here's the final schematic I have been using:
psx-arduino-img1.jpg
I have done some testing and it seems to work perfectly! Never had problems with data transmission.

I like that this is a very cheap and reversible method of making serial connection with the PS1, compared to buying a Net Yaroze cable or making one (link cables are getting a little expensive where I live). It is just three soldered wires and that's it. Arduino is probably overkill for this but if you are like me then you probably have one already that is eating dust and might as well use it for something (I ended up buying a dedicated USB to TTL connector just to make things a little more compact though).