Electronics

Home/Electronics

April 2017

IN-2 Nixie modules.

By |April 1st, 2017|Concrete Clock, Electronics|

Da er jeg klar med en ny variant av Nixie-kort. Denne gangen har jeg valgt å gjøre dem modulbasert. Hver modul har to IN-2 rør, K155ID1-driverkretser og et shiftregister. Modulene har en 6-pins connector, som gjør det mulig å seriekoble så mange man ønsker, kun begrenset av hvor mye strøm, som boost-converteren kan levere. Hvert siffer i en slik kjede kan adresseres individuelt.

Eagle-filer og eksempelkode finner du her: https://github.com/hansj66/Nixie-Modules.

Forvent tilsvarende moduler for IN-1, samt for ymse VFD-rør – når jeg får ånden over meg :)

in2-modules

in2-modules-assembled

Ferdig !

By |April 1st, 2017|Electronics, Pajazzo|

Jeg har fått noen henvendelser om Spar-7 kort det siste året. I fjor så antydet jeg at jeg kunne ha en ny batch med kort klare til sommeren samme år. Det klarte jeg forsåvidt, men firmwaren tok litt lenger tid. Mest fordi den havnet sist på prioriteringslista – etter dagjobben i Exploratory Engineering, “kveldsjobben” i Pop Bumper, og også etter visst behov for litt rekreasjon innimellom (rekreasjon == aktiviteter uten deadline ;))

Det tok litt tid, men nå er firmwaren klar. Kortene testet og pakket. Jeg sender ut mail til de som tidligere har vist interesse før påske. Kortene finnes i et begrenset antall og det vil maksimalt bli produsert 6 nye kort etter denne batchen. Deretter er det slutt.

Salgsbetingelser

  • Prisen pr kort er 2500 + frakt.
  • Kortet installeres og brukes på eget ansvar. Det er hobbyelektronikk, som hverken er CE- eller Nemko-godkjent. Trekk ut kontakten når automaten ikke er i bruk og ha i bakhodet at resten av elektronikken / mekanikken i disse automatene er fra produksjonsåret.
  • Hvis av en eller annen grunn ikke fungerer i automaten, så refunderes prisen for kortet, ved retur av dette. Fraktkostnader refunderes ikke. Returfrakt bekostes av kjøper.

Installasjon

  • Trekk ut kontakten til automaten.
  • Trekk ut det gamle kortet fra edge-connectoren og trekk også evt ut IDC-connectoren, som går til displayet, hvis du har en variant med displaysiffer (Ikke alle automatene, som kortet fungerer i har dette)
  • Sett inn kortet. Koble evt displayconnectoren til det nye kortet. Displayconnectoren på de gamle Spar7’ene har ikke noen key, så det er mulig å sette inn denne feil vei. (Koble ut strømmen og snu connectoren hvis displayet ikke lyser)
  • Sjekk at begge lysdiodene lyser. Hvis en eller begge av disse er mørke, så er er det sannsynligvis feil ved transformatoren i automaten. Alternativt, så kan det skyldes korrosjon / oksidasjon av edgeconnectoren som kortet er montert i.

Installasjon

Initiell test av brytere og hopper

Åpne knipsekassa og gjenta følgende for hver gevinstport:

  • Aktiver bryteren på baksiden av gevinstporten. Sjekk at gevinst vises i displayet.
  • Aktiver deretter bryteren i renna under gevinstportene (coin exit). Du vil høre at hopper-releet slår inn, slik at bremsen på hoppermotoren kobles fra. Hopperen skal nå begynne å rotere. Gevinst i displayet teller ned med en, inntil hele gevinsten er utbetalt.

Gevinstport

(Gevinstport, bakside)

CoinExit

(Coin exit – trigger utbetaling etter aktivering av gevinstport.)

Hvis en bryter ikke lar seg aktivere

Bryteren kan være defekt, eller det kan ha oppstått kabelbrudd mellom bryteren og edgeconnectoren, Pinnene på edgeconnectoren, som kortet er montert i kan også være korrodert / oksidert.

Bryterne kan testes manuelt hvis kortet trekkes ut av knipsekassa (med strømmen av).

Bryteren kan med et multimeter med kontinuitetssjekk. Bryterne kan ha både NC (Normally closed) og NO (Normally open) tilkoblinger. En defekt bryter kan feile ved at NC-tilkoblingen ikke er lukket når bryteren er i hvilestilling, eller ved at NO-tilkoblingen ikke lukkes når bryteren er aktiv. Vippearmen på bryteren kan også være deformert eller knekt.

De to nederste pinnene på bryterne ved gevinstportene er NC og øverste + nederste pinne er NO. Ledningsbrudd kan finnes ved å måle kontinuitet mellom nederste pinne på gevinstporten og pinne#3 fra venstre på edgeconnectoren.

Hvis hopperen ikke roterer

Hoppermotoren i knipsekassene er alltid aktiv, men en bremse på motoren sørger for at den kun roterer når gevinst skal utbetales.

Følgende kan forhindre at hopperen fungerer som den skal:

  1. Transformatoren leverer ikke strøm til hoppermotoren (NB! nettspenning).
  2. Elektromagneten, som frikobler bremsen fungerer ikke. Motoren må isåfall repareres eller erstattes.
  3. Coin-røret over hopperen er montert slik at det er i kontakt med rotoren og derfor bremser hopperen. Skru coin-røret litt opp for å korrigere dette.
  4. Rotoren er skitten. Myntene er i konstant kontakt med rotoren, og det vil kunne avsettes støv/fett på denne. Dette fikses ved å demontere og vaske de hvite plastdelene.

Hvis hopperen roterer svært sakte

Sjekk pkt 3 & 4 over.

Hvis hopperen ikke stopper ved gevinstutbetaling.

Hopperen betaler ut en mynt ved hver kvart rotasjon. Hvor langt rotoren har rotert, detekteres av hopper-bryteren. Hvis denne er defekt, så vil ikke automaten kunne detektere hvor mange mynter som er utbetalt og den vil tømme hele gevinstrøret.

Hvis spillet utbetaler en mynt for lite, eller en mynt for mye.

Spillet detekterer at en mynt er utbetalt ved at et hjørne på klossen over rotoren lukke hopper bryteren og at den så åpner seg igjen. Hvis armen på denne bryteren er deformert eller bøyd, så vil aktiveringen av bryteren ikke være synkronisert med posisjonen av mynter i rotoren. Se bilde under for hvilestilling på bryteren.

I hvilestilling, så skal ikke bryterarmen lukke bryteren. Test dette ved å forsøke å lukke bryterarmen manueltnår den står i hvilestilling. Du skal da kunne høre et klikk fra bryteren.

Hopper_over

(Hopper i hvilestilling. Bryteren er ikke mekanisk lukket)

Hopper_under

(underside av hopper når hopperbryteren er åpen. Legg merke til myntens posisjon.)

Telleverk

Da dette kortet ikke er laget for kommersiell bruk, så vil det ikke aktivere telleverket i automaten.

February 2017

IN-12 Nixie Shield v.1.1

By |February 15th, 2017|Concrete Clock, Electronics|

Sånn, da har man fikset siste bug i IN-12 Nixie Shield for Arduino, og vi er på versjon 1.1. Har testet litt i kveld og alt ser ut til å fungere helt ok. Skjema, layout og et veldig enkelt kodeeksempel ligger nå ute på GitHub (https://github.com/hansj66/Nixie-Modules). Knock yourselves out :)

Jeg jobber også med daisy-chainbare moduler. Gjerrig som jeg er, så er disse på tur med dampbåt fra Kina. Ta derfor modul-designene på GitHub med en klype salt, inntil ny versjon foreligger av disse også.

January 2017

IN-12 Nixie Shield

By |January 18th, 2017|Electronics|

Hackathon på jobb i dag. I mellom IoT/LoRa-, VR-, 3D-printsesjoner, så klarte jeg å ettertrykkelig fritere en mikrobiten til balansebotten (patologen har ikke avgitt rapport enda, så jeg aner ikke hvorfor).

På jakt etter en liten trøste-win, så lyktes jeg heldgivs noe bedre når jeg endelig fikk mannet meg opp til å koble en boost-converter på det hjemmesnekra Nixie-shieldet.

Encodern synes å være kodet av fulle sjømenn, men det er kun software, så det er høyst fiksbart. Siffer kan adresseres og høyspentbiten ser ikke ut til å forårsake hardware-resets eller røyksopper noe sted. Alt drives av et lite 9V-adapter.

Nå som jeg vet at ting henger sånn tålelig på greip, så er det også på tide å få sendt de daisy-chainbare nixiemodulene til trykking også.

December 2016

Stumbler – part III (more cowbell)

By |December 26th, 2016|3D Printing, Electronics, Robotics|

PID-kontrolleren fungerte. Lavpassfilteret for aksellerometerdata fungerte. Det samme gjorde kalmanfilteret. Det hjalp likevel så inderlig lite når aksellerometeret støyet så mye, og i tillegg var så følsomt for vibrasjoner at enhver motorrespons resulterte i spinnville data. Stumbler ville ikke stå på egne hjul.

Derfor byttet jeg ut IMUen i noe mer beefy. Jeg gikk for BNO055 fra BOSCH. Dette er mer et SoC enn en sensor, da den gjør sensor fusion for deg. Den snakker i likhet med LSM9DS1 I2C, men har et mye enklere oppsett. Du kan bruke den i forskjellige modus. Enten som en tradisjonell IMU, eller som en 9DOF sensor med fusion-algoritme som snurrer i bakgrunnen. Ut får du ferdigtygde data, i form av quaternions, Eulervinkler, rotasjonsvektor, lineær aksellerasjon, gravitasjon og heading. Det finnes nok enda bedre sensorer der ute, men denne kostet rett under 40 USD og var svært enkel å bruke. Se BNO055.cpp for bare bones implementasjonseksempel, inklusive kalibrering.

Jeg har kranglet med LSM9DS1 i ukesvis, men bare et par timer etter å ha byttet IMU, så hadde jeg tegn til virk. Den balanserte nå såpass bra at den tålte å krasje i vegger, samt å få en dytt. Den tok seg nå inn igjen.

PID-parametrene kan nok fremdeles forbedres, iom at den er litt “tense” (Vi har hatt noen spektakulære krasj på steingulvet her). Under, så ser du en av de første prøveturene med BNO055 – med ukalibrert sensor (kan jo ikke kaste bort tiden med å lese spesifikasjon…)

Den var fremdeles litt vill av seg, så jeg myste litt i databladet. Det viste seg at BNO055’en har en autokalibreringsalgoritme. Man kan lese ut kalibreringsdata fra kalibrerningsstatusregisteret. Ved å vifte litt rundt i lufta med botten, inntil man leser ut “1” for bit 6 & 7, så oppførte ting seg enda bedre etterpå.

Under, så balanserer den helt fint på sofaen. Relativt stram pute, og absolutt ikke et flatt underlag.

Må kanskje presisere at den ikke akkurat er fjellstø ennå. Den tryner ofte med pannebrasken ned i flisgulvet, og forsøker av og til å stikke av – i ganske voldsom fart. Signalet fra PID-kontrolleren er vel å betrakte som non-insane i tiltintervallet [-3, 3] grader elns – foreløpig.

Jeg har ihvertfall nok virk til å kunne bygge en 2.0 versjon av botten med større batteripakke, samt litt mer optimal plassering av sensoren. Plata, som alt er montert på nå, er litt wobbly, og stepperne kunne gjerne hatt enda litt mer kraft. Vurderer også å kanskje lage et lite PCB med stepperkontrollere og IMU integrert.

Repo med modellfiler og (prototyp)kode finnes her: https://github.com/hansj66/Stumbler

October 2016

Gameroom 2.0

By |October 15th, 2016|Arcade / Gaming, Electronics, Pinball|

For et halvt år siden, så la jeg gulvet i spillrommet. Siden da, så har det skjedd absolutt ingenting der inne. Rommet har i praksis fungert som et flipper- og komponent-lager. 

{"focusMode":0,"deviceTilt":0.142192929983139,"whiteBalanceProgram":0,"macroEnabled":false,"qualityMode":3}

Jeg har i løpet av 2016, sammen med partner in crime, Øyvind, skrudd mer flipper enn jeg har gjort i de foregående 49 årene. Dette for å holde maskinene til Pop Bumper i live nede i kjelleren på Work-Work.  Hjemmeflipperne har blitt noe stemoderlig behandlet og har også gjerne blitt benyttet som donormaskiner.

Men nå skal de gamle klassikerne vekkes til liv igjen.

I går, så tok jeg tak i Doctor Who, som jeg kjøpte fra et dødsbo for mange herrens år siden. Jeg fikset den opp, og i årene siden, så har den stått lagret. Det viste seg at den hadde en ganske kraftig skade på kretskortet, pga lekkasje fra backupbatteriene. To kolonner i switchmatrisa var døde, da kobberbaner og IC-pinner var etset bort. Jeg burde egentlig ha handlet et nytt WPC-kort, men valgte å patche det eksisterende istedet. It ain’t perty, men det virker. Doctor Who er nå i live !. Repair-loggen finner du her.

patch

I dag, så tok jeg tak i Cirqus Voltaire, som er en rimelig sjelden affære. Det ble kun produsert 2704 stk og den er såpass ettertraktet at jeg i praksis aldri kan selge den. Jeg vil isåfall aldri finne en som er like pen, hvis jeg skulle ombestemme meg. Jeg måtte inn med en coil, som i all hast hadde blitt klippet av – fordi vi trengte samme typen til en maskin på Work-Work. Flere brytere måtte sjekkes/fikses, og en av dem sto selvfølgeligvis inni Ringmaster-mekanismen, som er det vanskeligst tilgjengelige området på hele maskina. Men jeg ga meg ikke. Cirqus Voltaire er nå i live !

Den siste maskina som skal fikses, er Lord of The Rings. Her skal optoer monteres, samt at jeg skal bruke den som testmaskin, da jeg må verifisere reperasjon av powerdriverkortet til en tilsvarende maskin, som vi har på stående Work-Work.

Stumbler – part II (a few iterations later)

By |October 11th, 2016|3D Printing, Electronics, Rants, Robotics|

Å forsøke seg på noe man ikke kan, er makerens mantra, samt en ypperlig kilde til læring (gitt at man da ikke ender opp med en Darwin Award i prosessen). En god læringskurve krever et minimum av surfe-skills, samt et Dirk Dale soundtrack.

Å gjøre noe som involverer flere ting man ikke kan – minner mer om å surfe på bølger, pisket opp av Dirac. Jo større fart du har inn i ting som ser ut som delta-funksjoner, jo vondere gjør det når du treffer.

Newton…

Jeg startet med det jeg kunne, dvs å source deler, samt 3D-printe det strukturelle “limet”, som holdt alle dele sammen. Deretter var det bare å rappe noen strategiske kodefragmenter fra the interwebs, og så hadde man funky balansebot. Right… ?

Well…

Å skru sammen en bot, samt koble sammen noen stepper-drivere, en mikrokontroller og en IMU viste seg å være ganske grei skuring. Etter å ha bannet litt over databladet til IMU’en, så hadde jeg kommunikasjon med denne via I2C. Hjul snurret og jeg klarte å måle akselerasjon og gyrorater.

Nå var det kun litt tafsing på parametrene til PID-regulatoren, så kom botten til å stå som en påle. Right… ?

Not so.

Akselerometeret gir deg målinger i G på tre akser. Du kan da regne ut vinkelen til botten. Akseleromteteret har en del støy og det er helsikes følsomt for vibrasjoner, men du kan stole på lavfrekvenskomponenten i målingene.

Gyroen gir deg en rate ut, ikke en vinkel. Hvis du kjenner dt, så kan du regne om gyroraten til en delta vinkel. Den drifter over tid, men du kan stole på høyfrekvenskomponenten i målingene.

Du kan kombinere disse målingene på flere måter. Man kan gå for et komplementærfilter, et Kalmanfilter, eller ta den helt ut og også dra inn magnetometer-komponenten i noe litt mer hårete, som f.eks Madgwicks AHRS-algoritme.

Sensor fusion er et løst problem, selv om Kalmanfilter, eller Madgwick-algoritmen gir meg vondt i hodet når jeg forsøker å se under panseret. Jeg liker å adressere litt mer praktiske problemstillinger. Som f.eks. å krangle med fysiske lover.

Newtons 3. lov viste seg heldigvis å fremdeles være i effekt, da den slo inn med full kraft fra første step. Bokstavelig talt.

Motorene har ganske mye masse, og når du sender dem et step-signal, så gjør de akkurat det de er designet for å gjøre. De flytter rotoren nøyaktig 1/200 rotasjon, mens statoren står helt stille. Right… ?

Not so.

Jeg gikk for minste motstands vei i det mekaniske designet, så alt er veldig godt boltet sammen. En liten vibrasjon i bånn vil forplante seg helt opp i toppen av botten, og gjerne forsterkes litt på veien også. Hvilket i sin tur gjør at MEMS-sensorene i IMUen går haywire. Dette danner så en fin liten feedback-loop, som gjør ethvert forsøk på PID-tuning komplett meningsløst.

Jeg hadde tidligere, implisitt antatt at botten kunne håndtere momentan aksellerasjon, da jeg hadde foret kontroll-outputen fra PID-algoritmen rett inn i en funksjon av typen n/control == PWM-frekvens. Dette ville ha fungert utmerket i en verden der Newtons første lov ikke hadde vært i effekt.

Jeg hadde nå en bot, som var fundamentalt uenig med Newton på to punkter. Og jeg endte som vanlig opp med å være megler.

For å komme vibrasjonene til livs, så endte jeg i kveld opp med en step-algoritme som er noe smidigere. Jeg bruker fremdeles n/control fra PID-regulatoren, men nå for å signalisere ønsket PWM-frekvens. Deretter er det en opp til en interrupt-drevet step-funksjon å akselerere så smooth som overhodet mulig opp til denne, før neste signal kommer fra PID-kontrolleren.  PID-oppdateringer skjer nå på 200Hz og step-funksjonen kjører på 7 kHz. Hvis dette ikke drar ned sensorstøyen, så får jeg finne opp en inertia damper, evt surre fast murstein på botten. Stay tuned.

Service definert.

By |October 8th, 2016|Electronics|

Strømmen gikk her en dag, og når den kom på igjen, så hadde sentralenheten for varmereguleringen i huset tatt kvelden. Du kjenner sikkert igjen den litt synkende følelsen du får, når du er stilt ovenfor et defekt stykke teknologi, som kun en elektriker med svart belte i fakturering, kjøregodtgjørelse, samt kunsten å ikke møte opp til avtalt tid, er i stand til å fikse ?

Den følelsen var i ferd med å sette seg, da det plutselig slo meg at vi lever i det herrens år 2016, og at produsenten av utstyret sikkert er å få tak i på nett. Jeg fant fram til Facebooksiden til DEVI Norge og sendte dem en melding ut på kvelden den 28. september.

“Hei ! Fikk plutselig opp denne meldingen på varmestyringsanlegget (Etter over 5 år i drift).hva gjør jeg for å resette denne ?” (+ bilde av displayet på sentralenheten)

Etter et par timer, så fikk jeg følgende svar:

“Vår produktsjef tar kontakt med deg i morgen. Kan han nå deg på et telefon nr?”

Dagen etter så ringte de og fortalte at denne feilen var et ikke helt ukjent problem på de tidlige modellene – og uten at jeg engang hadde hintet i retning reklamasjon, så ble jeg utstyrt med:

  • a) en kliss ny sentralenhet,
  • b) en batterienhet, som jeg ville trenge for å konfigurere sentralen, og
  • c) et telefonnummer jeg kunne ringe, i fall jeg fikk problemer med konfigurasjonen

– kostnadsfritt!

Jeg trengte ikke engang oppgi adressen min, kun bekrefte den, og pakken ble forsøkt levert på døra den 30. september – 2 dager etter at problemet oppsto.

Dette er et servicenivå man ikke er vant med her hjemme. Dette er service definert. Det er faktisk bloggverdig når man opplever slikt :)

September 2016

Stumbler – part I (Code name “Karma”)

By |September 25th, 2016|3D Printing, Electronics, Robotics|

Rasket med meg en BBC Micro:Bit hjem fra jobb. Dette er en liten datamaskin, som blir delt ut til alle 11-12-åringer i England. Det sitter en nRF51822 (ARM Cortex M0) fra Nordic Semiconductor på den. Den har magnetometer og akselerometer. Man har knapper og leds. Det er en høyst hackbar sak, og ungene kan programmere den i JavaScript, Python, eller i Microsoft sin Block Editor. Hvis du kobler Micro:Bit til en datamaskin via USB, så vil den dukke opp som en ekstern disk. Man slipper ganske enkelt den kompilerte hex-fila ned på denne disken og så er den programmert. Du kan også programmere den via blåtann fra telefonen, hvilket er en genistrek m.t.p. å senke terskler m.h.t. programmering, for ungene.

Siden jeg er hønngammal – og liker litt eldre språk, så valgte jeg å istedet sette opp Micro:Bit som target i mBed sin online-kompilator. Jeg kan da leke meg med den i et språk jeg er komfortabel med – d.v.s. C++. Jeg har ikke brukt denne verktøykjeden siden jeg fikk min første (og frem til nå – eneste) mBed i 2010, så jeg kniste litt når jeg så at mBed/Twitter-prosjektet mitt fremdeles lå i skya når jeg logget på.

Anyways, dette er en høyst hackbar sak,  den er lett å programmere, og den er liten. nRF51822 har nok oomph til å gjøre ganske mye, så jeg fant ut at en balanserobot kunne være en ok utfordring.

Micro:Bit har en edge-connector, som man kan putte inn i et eksperimentkort, som har breakoutpinner og breadboard. Jeg fant ut at jeg bare var to stenger, et par motorer og litt plast unna noe som lignet en robot, så jeg designet noen smådeler i Fusion 360 for å holde ting sammen. Printingen var unnagjort på et par kvelder.

Siden kortet ikke har gyro, så hektet jeg på en LSM9DS1 fra Sparkfun (også rappet fra jobben). Denne har akselerometer, gyro og magnetometer. Du kan kommunisere med dette via SPI eller I2C. Som motorer, så valgte jeg et par 1,7A Nema17, som jeg hadde liggende. Disse blir drevet av hver sin DRV8825 stepperkontroller. Alt dette kan kontrolleres fra Micro:Bit via 6 ledninger (2 stk for I2C og 4 stk for STEP/DIR-tilkoblingene på stepperkontrollene)

Siden motorene trives best på ganske høy spenning, så har jeg en småfeit batteripakke i toppen av roboten. En LD1117V33 regulerer batterispenninga ned til 3,3V.

Jeg bannet initielt litt over I2C-kommunikasjonen, men har nå fin (og rask) datastrøm fra sensorene. Det hjelper alltid å skrive sin egen kode – istedet for å bruke forvirrende biblioteker, som insisterer på å abstrahere hver eneste beskrevne bit i databladet. Stepperne er relativt greie å styre via de analoge pinnene på Micro:Bit. Ved å skrive en verdi til en analog pinne, så har man gratis PWM-output fra denne. Den analoge verdien er i intervallet 0 – 1023. “0” == 0% duty cycle og 1023 == 100% duty cycle. Man kan så bestemme frekvensen ved å sette perioden på den analoge pinnen.

Stepperkontrollerne tolker en høy/lav-puls på STEP-pinnen som step-signal, så her PWM-kontroll ideelt m.t.p. eksempelvis PID-kontroll av motorhastighet fra observert feil i balansevinkel.

Jeg har nå en mekanisk og elektrisk fungerende plattform for balanserobot. Jeg lurer litt på om jeg skal booste spenninga på stepperne opp til 24V ved å bruke 14650 LiIon-celler istedet for NiMH. Dette for å øke momentet og makshastigheten på motorene. Ellers, så ser ting ut til å virke rimelig bra.

Nå kommer den vanskelige biten, d.v.s. å integrere sensorinput fra flere kilder i kontroll-loopen. Modige sjeler kan google “sensor fusion / kalman filter” for å danne seg et inntrykk av hva som nå står for døra.

Når alt funker og er stabilt, så publiserer jeg kode, skjema, komponentliste og STEP-filer på GitHub. Koden er såpass generisk at den bør fungere på det meste av mikrokontrollere man kan utvikle for i C++. Det eneste Micro:Bit-spesifikke er to kall for å lese/skrive data over I2C og to kall for å sette PWM duty cycle og frekvens på pinnene til stepper-kontrolleren.

img_3271

img_3269

August 2016

Following in the footsteps of Ikotsu

By |August 20th, 2016|Arcade / Gaming, Electronics|

Strengt tatt, så fulgte jeg ikke bare i Ikotsu sine fotspor. Det er flere write-ups og youtube-videoer der ute mht hvordan man konverterer et CPS2-spill til et annet. Felles for disse er at de benytter seg av samme PAL-versjon (“PAL” refererer her til en krets på CPS2 B-kortet og ikke TV-standarden). CPS2-spillene hadde 5 varianter av denne kretsen, h.h.v B, D, E, F og G.

CPS2 er et av spillsystemene, som har en innebygget selvmordsmekanisme. Et batteri på kortet, holder liv i en RAM-krets, som holder en dekrypteringsnøkkel. Når dette batteriet dør, så dør også spillet – permanent.

Hvis man har et slikt dødt spill, så er likevel ikke alt håp ute. Krypteringsmekanismen er brutt og man kan nå finne et sett med alternative, dekrypterte ROM-sett i MAME-distribusjonen. Ved å benytte Phoenix-koden, så kan batteriet fjernes og kortet vil boote, selv om dekrypteringsnøkkelen er borte. I.o.m at CPS2-kortene er generiske (med unntak av Super Street Fighter 2 Turbo, som også har et datterkort med ROMs), så kan man også konvertere et spill til et annet, innenfor samme PAL-gruppe. Man trenger tilgang til de nødvendige filene og en EPROM-brenner.

Er man litt modigere, så kan man også forsøke seg på å konvertere et spill til et i en annen PAL-gruppe. Man må i tillegg til å erstatte EPROMS og mask-ROMS, da også programmere en en GAL16V8 og erstatte PAL-kretsen, merket BGSB3X (ved batteriet) med denne.

I tillegg, så må man endre et jumper JP1-4 til SOOS (“S”=Soldered, “O”=Open), JP5-6 til SO, JP14-21 til SOSOSOSO og JP22-29 til SOSOSOSO.

Men…

Først av alt, så må man åpne boksen med B-kortet. Denne er sikret med en blindbolt og 4 security torx-skruer (== torx, men med sentertapp, som forhindrer en i å åpne med en vanlig torx-nøkkel). Den er også sikret med klistremerker med ymse advarsler på. Jeg antok at dette kun var veiledende, og bestemte meg for å ta en titt under panseret.

Spillmodulene kommer i flere forskjellige farger. Fargen indikerer regionkoden. Når man åpner spillmodulen, så kommer man til selve spillkortet. Etter at man har plukket av batteri, PAL-krets, EPROMs og mask-ROMS, så står man igjen med følgende: (Det ser litt tomt ut, men vi har trua :))

Jeg tenkte å forsøke å konvertere dette PALB-spillet, til et mer attraktivt (og før Phoenix, sjeldent) spill ved navn “Progear No Arashi”, fra den legendariske produsenten CAVE. Det første jeg måtte gjøre var å gå over alle jumperne. Jeg åpnet lukkede jumpere, som skulle være åpne med en tapetkniv, og lukket åpne jumpere, som skulle være lukket, med en en dråpe loddetinn.

Deretter var det bare å finne fram EPROMs fra skuffa. For å konvertere til Progear, så trenger man 1 stk 27C010, 2 stk 27C4096 og 6 stk 27C322 og 1 stk GAL16V8 – i tillegg til noen *host* binærfiler. Deretter er det bare å populere kortet igjen.

Til slutt er det bare å montere inn kortet i B-modulen igjen, klappe sammen med hovedkortet, koble inn i en JAMMA testrigg. Har man gjort alt riktig, så skal resultatet se noenlunde slik ut:

Som de fleste skjønner, så hadde ikke dette vært mulig uten litt info hentet fra internett. Krediteres den som krediteres skal. Dette prosjektet hadde vært (om ikke klin umulig, så ihvertfall) vanskelig uten Ikotsu sin eminente write-up på http://ikotsu.blogspot.no/2010/01/progear-capcom-cps2-cavecapcom-2001.html.