PRS-SX 600/700/900 Internal Memory

Started by Divemaster, January 04, 2022, 05:56:52 AM

Previous topic - Next topic

Divemaster

Can somebody advise how the internal memory in the SX series is stored?

Is it an SSD drive, or is the memory soldered directly to the motherboard of the instrument.

On my older Tyros, I had a 2.5"laptop type ide Hard Drive, on which I could store quite literally everything I needed. It was easily accessible from under the Tyros for updating .

Basically, the question is this. Is the internal memory expandable? And if not, why not?

Does anybody know for sure?

I'm quite a competent pc engineer and although, for warranty reasons obviously I'm not planning on tearing apart my nice new SX700 anytime soon, it may well be a project for a couple of years hence.

At the end of the day all these keyboards are just computers, and I would be interested in following this up. so if anyone HAS stripped or opened up an SX series keyboard, I'd be interested in sharing information with you. 

Nothing ventured.........TIA

andres_fprado

Hi, Divemaster!

You are correct in that modern keyboards are essentially single-purpose computers, but in some ways they are much more complex. Memory is one of those aspects. A good starting point is looking at the Yamaha Service Manuals https://psrtutorial.com/lessons/workshops/ServiceManuals.html. Although the Service Manuals for the SX line are not available, conceptually all keyboards are similar. If you take a look at page 94 of the PSR-S770/PSR-S970 service manual, you will find that the PSR-S970 has a main CPU, connected to several different memories (4GBit NAND FLASH + 2Gbit NAND Flash for audio style, 512 MBit NOR FLASH boot/program, 128 MBit NOR FLASH backup. Separately you will find the Tone Generator chip (SWP70 in this case), connected to its own assortment of flash memory (2x8 GBit NAND FLASH with wave data).

The PSR-SX line is not that different; in fact, it uses the same tone generator. I attached an excerpt from the service manual showing the connection between the tone generator and the memory.

The memory directly connected to the tone generator (fast, wide bus) is used to hold the samples to be used for tone generation.  This memory, which is 2GB on the PSR-SX900 (6GB on the Genos), contains only and exclusively sound samples. Part of the memory is devoted to the internal built-in content, and part to the expansion voices. When loading new expansion packs, this is the memory that gets written. Tone generation requires a huge memory bandwith to be able to provide a polyphony of 128 simultaneous voices (with up to 8 simultaneous samples per voice!) That's the reason for this memory being devoted to tone generation, with an indirect connection to the CPU. This is also the reason why additional samples can only be stored in this dedicated memory.

The memory connected to the main CPU serves lots of purposes: it contains the (Linux-based) operating system for the keyboard, the base file system, all the UI code, default factory memory contents, styles, multipads, and much more. The user expansion memory is a portion of this memory, that is mounted as read/write file system and assigned for users to use.

From a purely theoretical point of view, you could replace (desoldering and soldering a new, bigger one) the memories on the keyboard. But you would also have to copy the contents, and modify the settings for the keyboard to recognize the new, expanded memory.

Since you are technically inclined, I would recommend the "Sand, software and sound" Wordpress site. A couple of articles that might interest you:
Yamaha Genos Tone Generation circuit: http://sandsoftwaresound.net/yamaha-genos-tone-generation/
Yamaha Genos Main CPU circuit: http://sandsoftwaresound.net/yamaha-genos-main-cpu/
A (longer) analysis of memory on keyboards: http://sandsoftwaresound.net/random-answer-day-1/

(The Genos shares some architectural aspects with the PSR-SX series, but with more of everything: more memory, more tone generators...)

Regards!

[attachment deleted by admin]

Divemaster

Andres.

Thank you so very much for your very very comprehensive reply to my question. You've spent some time on this and that's really appreciated.

As said, at the current time, I've only recently bought my SX-700 but as with all my keyboards, I am interested to know what oes on under the hood. I use a range of computers here, from a very powerful HP X8 with 96Gb Ram right down to an old tower running Windows 2000 and an even older unit with Windows 3.1 and DOS floppy disks.
I've yet to find a pc that I can't repair, and have literally boxfuls of parts stashed away for rainy days. It was and always has been a fascinating hobby of mine.

I'm going to print off and save your info here, and who knows, in time it could well be that there are ways of upgrading the hardware with elements not even produced yet...

Thank You, and a Very Happy New Year to you.   :)
Keith


Toril S

Toril S

Genos, Tyros 5, PSR S975, PSR 2100
and PSR-47.
Former keyboards: PSR-S970.

https://www.youtube.com/channel/UCLVwWdb36Yd3LMBjAnm6pTQ?view_as=subscriber



Toril's PSR Performer Page

pjd

Hi Keith and Andres --

I'm the guy behind sandsoftwaresound.net.  ;D

Andres posted a heck of a good reply. After looking at a zillion Yamaha service manuals, Andres has got it right -- Yamaha arrangers (and synthesizers) have a similar architecture as far as CPU and tone generation are concerned.

The architecture is a typical embedded system, perhaps sharing more characteristics with tablet hardware than a personal computer. You won't find a SATA bus or an M.2 interface. PCs are too power hungry. Yamaha's electronics generally runs without heat sinks. Clock rates are also (surprisingly) low. The hardware is quite efficient.

As Andres mentions, there are many different memory units each with a different purpose. So-called expansion memory (for waveforms/samples) is ONFI compatible NAND flash and is directly connected to a Yamaha custom tone generator IC (SWP70). So-called user memory resides in an Embedded MultiMediaCard (eMMC) solid state device. The eMMC is directly connected to the host CPU.

Since we don't have an SX900 service manual (yet), I'm assuming that the CPU is now an embedded ARM with an integrated eMMC interface. Can't get any cheaper than that!   :D

Everything is soldered onto the main logic board. Connectors are 1. an added expense, 2. potentially a reliability problem, 3. have unique installation issues during manufacturing. Yamaha has fully ditched expansion ports and user-installable memory. Recent interactions with Yamaha suggest that they don't want end-users to crack open their hardware, ever.

I included a few other links of interest below. I would expect the SX900 to superficially resemble the S970, replacing SWP51 with SWP70 and replacing SH7731 with ARM.

All the best -- pj

http://sandsoftwaresound.net/yamaha-genos-main-cpu/
http://sandsoftwaresound.net/yamaha-genos-tone-generation/
http://sandsoftwaresound.net/s770-s970-internal-arch/