Yamaha PSR70 reverse engineering

From Helsinki Hacklabin wiki
Jump to: navigation, search


Yamaha PSR70 reverse engineering

Tyyppi: Reverse engineering
Tekijät: jari
Aloitettu: 2020
Tila: Kesken
GitHub: [PSR70-reverse]


Linkit projektin muille sivuille


This text is available in English at: https://retroandreverse.blogspot.com/search/label/PSR-70%20reverse%20engineering


Taustaa

Koko projekti alkoi vähän yllättäen tästä Slackin #musiikkiteknologia-kanavan viestistä:

PSR70-slack.png


Tuon varomattoman repliikin seurauksena tämän näköinen laite päätyi sitten täyttämään ennestäänkin liian täysiä harrastustilojani:

PSR70-overview.jpg

Kyseinen keyboard ei ollut minulle entuudestaan mitenkään tuttu, mutta ajattelin, että voisihan tuota vähäsen tutkia. Se on vuodelta 1985, tyypillinen sen ajan arranger keyboard, jossa on pieni valikoima valmiita rytmejä ja niitä voi jopa tehdä itse. Koskettimisto on 5 oktaavia, ja midi-liitäntäkin löytyy, joka oli tuohon aikaan varsin uusi keksintö. Valmiita soundeja on 32 ja ne ovat kiinteitä, ei ole minkäänlaista editointimahdollisuutta niille. Lisäksi niitä itse tehtyjä rytmejä voi tallettaa massamuistina toimivalle kasettinauhurille (siis mikä tahansa ulkoinen kasettinauhuri, keyboardissa on vain liitännät). Tämä tuntui olevan Yamahan yleinen tapa tuohon aikaan. USB-tikku oli vielä keksimättä, eikä levykekään ollut vielä yleistynyt joka kodin varusteeksi.

Soittimena PSR-70 on aika vajavainen: koskettimisto ei tunnista painalluksen voimakkuutta eikä siinä ole pitch bend- eikä modulation-kontrolleja, aftertouchista puhumattakaan. Myös midi-toteutus on hyvin perustasoa: velocityyn tai pitch bendiin ei reagoida edes midin kautta. Minkäänlaista multitimbraalisuutta ei luonnollisestikaan ole.

Soundien valintatapa on jokseenkin erikoinen. Ne jakaantuvat kahteen 16 soundin pankkiin, jotka ovat nimeltään "ORCHESTRA" ja "SOLO". ORCHESTRA-soundit toimivat kuten voisi olettaa, niissä on täysi 8 äänen polyfonia. Sen sijaan SOLO-soundit ovat aina monofonisia, niitä ei saa polyfonisiksi millään. Jos molemmat pankit on aktivoitu yhtä aikaa, ylin soitettu sävel soi valitulla SOLO-soundilla, loput ORCHESTRA-soundilla. Samalla SOLO varastaa ORCHESTRA-puolelta yhden äänen pois polyfoniasta. Ajatus kai on, että ORCHESTRA-äänillä voi soittaa sointuja ja SOLO-äänellä sooloa. Tuo monofonisuus vain tekee soittamisesta aika ikävää, kun minkäänlainen legato-soittaminen ei oikein onnistu.

Tällä on pikkuveli PSR-60, jossa on käsitykseni mukaan sama elektroniikka, mutta siinä on 4 oktaavin koskettimisto ja eri kotelo. Käsitys perustuu tähän piirilevyltä löytyvään merkintään:

PSR60 70.jpg

Sen sijaan saman sarjan PSR-80, josta mm. EEVblogin Dave on tehnyt teardownin, onkin sisäisesti aivan eri laite.

Tässä vähän kuvausta ja valokuvia: https://reverb.com/uk/item/157759-vintage-yamaha-psr-70-electronic-keyboard-midi-1985-great-sounds-portable

Alkuperäinen manuaalikin löytyy: http://www.synthmanuals.com/manuals/yamaha/psr-70/owners_manual/psr70e.pdf

Joku on saanut aikaan musiikkiakin tällä: https://www.youtube.com/watch?v=f2-k0IqwH5k Ja tehnyt jopa sample packin: https://www.youtube.com/watch?v=vDYm8zYRW50 (Sample pack on PSR-60:sta).


Kokeiluja

Vastoin Daven ohjeita kytkin laitteen päälle ennen sen avaamista. Hintaan ei sisältynyt minkäänlaista poweria ja lisäksi thjt:n kokemus oli, että se kyykkää powerin joka tapauksessa, joten syötin sitä varovasti labrapowerilla virranrajoituksen kanssa. Laite haluaa 9-12V DC:tä, mutta en huomannut, että se olisi virtaa haukannut mitenkään kohtuuttomasti. Sitä menee kyllä 300...400 mA, mikä on aika paljon siihen nähden, että siinä on myös paristoille paikka, mutta sisältä löytyvällä elektroniikkamäärällä se on ihan järkevä virrankulutus. Epäselväksi jäi, miksi se aiemmin oli toiminut huonosti, koska tuon suuntaisia oireita ei ole ollut nyt pidemmänkään kokemuksen jälkeen lainkaan.

Joten hetken testailtuani totesin olevani täysin toimivan PSR-70:n onnellinen omistaja. Koska tuo ei nykystandardeilla ole soittimena kovin kaksinen, niin sitten seuraava kysymys olikin: voiko tätä hakkeroida? Voisiko tästä tehdä jotain hauskaa tai jopa tarpeetonta? Sitä varten pitää tietysti tehdä


Kurkistus sisuskaluihin

Laite ympäri ja alakannen lukuisat ruuvit auki. Sisältä paljastuu aikamoinen määrä elektroniikkaa:

PSR70 interior view.jpg

Tämä näky on ihan toista kuin nykylaitteissa: siellä on se piirilevy jossain nurkasssa ja sen keskellä iso custom-BGA-piiri, joka tekee kaiken. Sellaisessa ei ole oikein mitään kiinnostavaa. Tähän voisi jopa päästä sisällekin. Yamahakin kyllä harrasti jo tuolloin custom-piirejä, mutta ne olivat tuohon aikaan vielä jotenkuten hallittavia.

Keskellä näkyvä iso piirilevy sisältää keskeiset osat elektroniikasta ja sen irrottamalla pääsikin nopeasti näkemään oleelliset reunaehdot hakkerointiprojektille:

  • Ääntä tuottaa Yamahan YM3806 eli OPQ-piiri, joka on 8-kanavainen 4 operaattorin FM-syntetisaattori. Suunnilleen tämän verran siitä löytyy tietoa internetistä.
  • Rummut tulevat Yamahan YM2154-piiristä, joka on sample-pohjainen piiri. Tästäkään ei löydy juurikaan tietoa.
  • CPU on NEC:in D70008, joka ihan puhdas Z80.
  • Softa on yhdessä 32 kB EPROMissa (27256), eli helposti luettavissa.

Aluksi olin että blääh, täysin dokumentoimattomat äänipiirit, eihän tuosta mitään pysty tekemään. Sitten alkoi ajatus itää: jos dokumenttia ei ole, se pitää kirjoittaa. Ehkäpä tuosta saisi kaivettua, miten noita piirejä ohjataan. Ohjelmointiympäristö ainakin olisi kohtuu tuttu, kun ollaan Z80:n kanssa liikkeellä.

Siinä vaiheessa tämä alkoikin muuttua reverse engineering -projektiksi, joka sitten veikin mennessään. Nyt tämän kanssa on istuttu pitkiä iltoja, ja OPQ-piiri alkaa olla hallussa. Mutta ei mennä asioiden edelle; seuraavilla sivuilla on vähän tarkempaa kuvausta monivaiheisista seikkailuistani käänteisinsinööräyksen ihmeellisessä maailmassa.


Seuraava sivu: Laitteiston reversaus