PSX->PC via Arduino Uno R3 (
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
PSX->PC via Arduino Uno R3 (
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 ^^
-
Administrator Verified
- Admin / PSXDEV
- Posts: 2679
- Joined: Dec 31, 2012
- I am a: Shadow
- PlayStation Model: H2000/5502
Nice little diagram Sickle. Great for those that have Arduino's on hand
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
Very nice bud ^^, this is something i have been wondering myself. +1
-
Administrator Verified
- Admin / PSXDEV
- Posts: 2679
- Joined: Dec 31, 2012
- I am a: Shadow
- PlayStation Model: H2000/5502
Looking goodMeta wrote:https://www.youtube.com/watch?v=cL_IDZFCtmc
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.
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.
http://sodoityourself.com/max232-serial ... converter/
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?
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
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).
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).
do you have any pics of this in your machine, would it work with sicons etc? Cheers
-
Greg Verified
- Serious PSXDEV User
- Posts: 101
- Joined: Sep 09, 2013
- PlayStation Model: SCPH-7501
- Location: Port-au-Prince, HAITI
Not work with siocons, for that look at: https://psx0.wordpress.com/2013/08/08/p ... ink-cable/ by danhans42
1 x SCPH-7501, 2 x SCPH-7001, 2 x SCPH-5501
1 x Pro Action Replay with "Dual Rom Mod", ROM 1: Caetla, ROM 2: UNIROM
1 x Xplorer V2 with Caetla
1 x GameShark V2.1
1 x GameShark Pro V3.0
1 x CommLinkUSB
1 x XLinkUSB
1 x Pro Action Replay with "Dual Rom Mod", ROM 1: Caetla, ROM 2: UNIROM
1 x Xplorer V2 with Caetla
1 x GameShark V2.1
1 x GameShark Pro V3.0
1 x CommLinkUSB
1 x XLinkUSB
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.
Regards.
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.
Regards.
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
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!
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!
-
Verified
- C Programming Expert
- Posts: 161
- Joined: Oct 06, 2012
- PlayStation Model: SCPH-5502
- Contact:
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
[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
-
TriMesh Verified
- PSX Aptitude
- Posts: 226
- Joined: Dec 20, 2013
- PlayStation Model: DTL-H1202
- Location: Hong Kong
Actually, SIOCONS can send arbitrary binary data to the console - just use the DLOAD commandXavi92 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.
DLOAD <filename> <target_address>
SIOCONS has lots of other deficiencies that you can validity criticize it over, but that isn't one of them
-
sickle Verified
- C Programming Expert
- Posts: 257
- Joined: Jul 17, 2013
- I am a: Chocolate-fueled pug fetish robot.
- Location: Scotland
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
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 ?
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 ?
- fullmontis
- What is PSXDEV?
- Posts: 1
- Joined: Sep 07, 2021
- PlayStation Model: SCPH-7502
- Discord: fullmontis#8046
- Location: Italy
- Contact:
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:
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:
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).
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:
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:
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).
You do not have the required permissions to view the files attached to this post.
Who is online
Users browsing this forum: No registered users and 5 guests