Archive for the ‘Arcade’ Category

Buzy Bee

Ingen grunn til å la sommerkveldene gå til spille. Har hoppet skikkelig på Lamna-kjøret igjen. Sendte enda ett nytt design til trykking hos Euro Circuits. Denne gangen versjon 2 (forhåpentligvis den siste) av Spar7-interfacet. Eneste forskjell fra forrige versjon er at det er ren plug’n play. Dvs en slipper et nytt displaykort og kan gjenbruke det gamle hvis en ønsker det. Ikke akkurat drepende kompleksitet på denne heller, men kjekt om det blir riktig første gang.

 

Fant det også nødvendig å reorganisere kildekoden med FreeRTOS-implementasjonen, testrutiner og spill-kode for at det skulle bli håndterlig. Har i tillegg påbegynt dokumentasjon for kortet + interfacekortene for unngå å måtte sette av en times innledende gråte-og-rive-seg-i-håret-rituale før hver ny økt.

Med 3 nye kort i PCB-pressa, så tenker jeg vi får konsentrere oss litt på breadboarding og spill-logikk i ukene fremover.

Lucky Strike interfacekort for Lamna

Sånn, da har vi designet ferdig første versjon av interfacekort for Lucky Strike og sendt avgårde til PCB-pressa, som befinner seg et eller annet sted i østeuropa. I likhet med Spar 7, så er dette relativt enkle saker. Tok faktisk ikke mer enn et par timer, og mesteparten av tiden gikk faktisk med på å forsøke å identifisere pitchen til edgeconnectoren. Mer info kommer om 2-3 uker.

Tricks of the trade

Gamle automater er ingen spøk. Gikk bokstavelig talt på en ny smell med Silver Strike. For å kunne styre coiler på en fornuftig måte fra Lamna, så måtte jeg først måle spenning + pulselengden for aktiveringen av disse. Jeg dro fram scopet og begynte å hekte på prober på terminalene på coilene. En av probene kom i tillegg til terminalen bort i jord i kabinettet. Selv om ikke coilen var aktiv, så resulterte dette i et lysglimt, da en 10-amp sikring gikk av som ei blitspære. Etter å ha skiftet sikring, så var automaten frisk og rask og jeg begynte å måle litt før jeg hektet på scopet igjen. Jeg antok i min naivitet at coilene ble drevet av en positiv spenningspuls ved aktivering, men det viser seg at de istedet flyter på +24V og trekkes ned til jord når de skal fyres av.

Jeg lærer litt hver dag…

Lucky Strike

EL-3 er endelig ute av huset, og jeg har fått inn et par nye kasser for analyse og reverse-engineering m.t.p. Lamna-støtte. Jeg har nå kastet meg over Lucky Strike. Dette er en relativt enkel sak fra Midway og logikken burde være unnagjort på kort tid.

  

Darth Dahl, alias Mr. Black coinet litt spøkefullt begrepet “interface-driven development” over en kaffe for en tid tilbake. Jeg tror likevel dette er relativt beskrivende for hvordan jeg jobber med kassene. Jeg gir blanke i alt av kretskort og fokuserer kun på grensesnittene mellom IO og logikk. Med en gang jeg har kartlagt hvilke pinner som går til hvilke switcher, lamper og display, så trenger jeg kun å lage et lite fysisk mapper-lag fra disse til den generiske pinouten til Lamna-kortet. Selve programkoden er triviell.

Det som kan være litt pinsamt er power-connectorene. Strømmen i kassene er enten lagt opp av genier, eller av ufaglærte elektrikere på syre. Likevel, så er en ting alltid hugget i stein. Jord-lederen ut av gamle automater er alltid klippet av. Siden alt internt i kassa som regel er forsøkt jordet, så medfører dette at den jevne spiller vil kunne ha muligheten for en direkte elektrisk opplevelse på selv det kjedeligste spill.

 (Moleskine er uvurderlig til denne type arbeid)

Lamna begynner så smått å komme under huden på meg, og det begynner å piple frem andre ideer. Pinball-verdenen flommer jo over av mods og add-ons. Det er ingenting i veien for å forbedre softwaren, eller endre regelsettene i kassene med det nye kortet. Ikke sikkert puristene bifaller dette, men enkelte av kassene hadde kunnet blitt mer spillbare med litt endringer.

Det hadde også vært litt kult å lage sin egen fra scratch. Spesielt om en tok den litt lengere ut enn vanlig. Hva med eksempelvis noe litt steampunk’ish i eik, med bakelitt eller svart lakk-bakgrunn, med messingbeslag og Nixies ? Kanskje et katodestrålerør eller to ? Litt sånn lost future / japansik, eller sovjet-inspirert retrofuturistisk / WWII-look? Hvorfor ikke innføre lydeffekter litt ala klokkespillet på Joker-Poker ? Hvorfor ikke sikte mot en pachinko-opplevelse ?

Don’t try this at home…

EL-3 har blitt progressivt mer kranglete i det siste. Den har siden ankomst tidvis protestert ved boot og skreket “89″ (RAM-feil) til meg i displayet sitt. Den har hatt gode dager og dårlige dager, men i det siste har den antatt terminalpasient-lignende atitityd. Det var m.a.o. på tide å ta noen grep.

Jeg forsøkte tidligere å bytte batteriet og fryktet nå at jeg hadde gjort vondt verre. Etter å ha forsket litt mer på minnetypen, så fant jeg ut at en kan drive VDD helt til 7V uten at den tar skade, men da logisk “1″ == VDD+0,3V, så kan det bli problematisk hvis en setter inn et batteri på 4,5V og logikken opererer på 5V. Det viser seg at brikkene ikke trenger mer enn 2,2V for data retention, så jeg safet denne gangen og byttet til 2 AA batterier slik at den fikk comfy 3V.

Jeg bestilte NOS-RAM fra littlediode.com , og denne ankom med posten i dag. Jeg legger forøvrig merke til at de har doblet prisen på dem etter at jeg handlet en “håndfull”. Dette er 29 år gammel RAM, så mangler du en sånn, så er det kanskje like greit å handle nuh. De er fremdeles å få tak i, men neppe i store kvanta.

 Gamle printkort er ofte rimelig bitchy å jobbe med, og en må være fryktelig forsiktig under avlodding for ikke å røske printbaner opp fra kortet. Jeg valgte å klippe beina på brikkene, og etter en sånn operasjon er det ingen vei tilbake. 

Deretter var det bare å gå på med et par meter loddelisse for å få rensket opp, og resultatet etter kirurgien var om jeg må si det selv, ganske så tilfredsstillende.

Jeg hadde alle intensjoner om å droppe den nye ram’en ned i sokler, men jeg hadde selvfølgeligvis antatt at det var “standard” bredde på dem, så soklene jeg hadde passet selvfølgeligvis ikke (assumption is the mother of…. etc). De nye brikkene ble istedet loddet på plass (Jeg vet – burde bestilt sokler og ventet enda en uke, men det klødde noe fryktelig i “instant gratification”-genet mitt, og jeg fikk akutt loddespreng), og jeg begynte å montere sammen kassa igjen.  På bildet under ser du de nye brikkene på plass.

     

Ved første boot kom det en feilmelding som indikerte at det ikke var penger i den. Dette er forsåvidt standard oppførsel. Jeg inspiserte telleverket, og der   sto det nå en rekke med “0″ istedet for hex-garbage. Deretter var det bare å trykke ned 150 tokens gjennom innkastet og boote på nytt. Kassa er nå spillbar og “89″ er forhåpentligvis historie.

Jeg går nå rundt på skyer og er sykt fornøyd med meg selv. Er du litt deppa og nere en dag, så er sånt mye bedre terapi enn Ibux og kabel-TV. Dette er en skikkelig “maker-fix”.

Nå får vi bare håpe på at det ikke ligger en annen feil et sted i kassa som medfører at RAM-brikkene ryker en gang til. Begynner å få lyst til å få den ut av huset og hjem til eieren sin før den finner på noen nye sprell.

Plagiat ?

Jeg er nå på fjerde prototypversjon av Lamna-kortet – og det begynner å ligne på noe jeg forhåpentligvis snart slipper å skjemmes av. 7221-driverne vil gjøre displaylogikken mye enklere (men jeg er litt spent på støy / mulig kabellengde til display), og jeg fikk frigjort en del I/O, som heller kan brukes til å kontrollere andre ting. Jeg har også fått inn et lite LED-display på selve kortet, slik at en kan implementere test/diagnostikk-funksjoner. Det ble også plass til noen DIL-brytere, slik at en kan velge flere funksjoner. Tenkte en kunne bruke disse til å velge display/switch/output-test, eller alternativt velge mellom flere typer knipsekasser (litt avhengig av hva jeg får plass til i flashminnet)

I/O-spekken er nå som følger: 16 inputs, 28 open collectorutganger som hver teoretisk kan håndtere opp til 500mA, selv om jeg frykter full nedsmelting hvis alle utgangene aktiveres samtidig med en slik last (tenker å legge releer eller drivertransistorer på interfacekortene hvis det blir tyngere coiler som skal drives.). Vi har også 24 individuelt adresserbare 7-segment displayer eller 192 individuelt adresserbare LEDS. En kan også kjede sammen flere (som plasseres på de spillspesifikke interfacekortene) uten at vi trenger å endre Lamna-kortet.

Det eneste som bekymrer meg litt er at det snart begynner å ligne på en Arduino…

Rist på rauva !

Vi har ommøblert i kjellerstua. 3-setern fra IKEA er kastet ut og to litt mindre lenestoler har blitt installert foran lerretet. Vi hadde tidligere montert en Clark Synthesis TST239 på en en tomme tykke treplate i bunnen av denne. Med en Zachry 250 watts bassforsterker, så ristet hele 3-setern rimelig heftig når granatene haglet i hjemmekinoen.

Har nå vært romperisterlaus i en periode, men heldigvis så ankom TST239 #2 i posten i dag. Har nå montert en transducer i hver stol, men måtte seriekoble dem i frykt for å blåse bassforsterkern.

 

Bootet Need For Speed – Shift, justerte delefrekvensen på bassforsterkern helt opp (ca 200 Hz), ga gass – og livet var igjen godt.

 

Jeg er nesten helt sikker på at disse kommer til å riste enda en nyrestein ut av meg, men det er vel verdt det.

Kunsten å være ferdig

I dag leverte UPS en pakke på størrelse med ei skoeske på jobb. Den inneholdt mest papir, men også noe som ved første øyekast minnet littegrann om en blokk med C4. Til mine kollegers lettelse, så viste det seg heldigvis å være en stabel med EL-3 kort. Rykende ferske, rett fra PCB-pressa i Ungarn.
 

null

 

Hjemme fra jobb, så klødde det rimelig i fingrene etter å få populert og testet kortet. Jeg plukket frem de nødvendige delene og monterte opp de få komponentene i løpet av et par minutter. I tillegg, så tjuvkoblet jeg en 12V spenningsregulator mellom Comestero-innkastet og EL-3′en slik at det ikke skulle ta skade av de lugubre spenningsnivåene som automaten operer med for å drive orginalinnkastene.

Jeg testet først med en RM5. Innkastet ble koblet via Comesteros egne interfacekort til EL-3-kortet. Jeg kunne forsåvidt gått direkte, men interfacekortene som selges av P4P gjør tilkoblingene litt lettere ( Se http://www.parts4pinballs.com/product_info.php?products_id=4453)

El-3-kortet har 4 innganger. 2 høynivåinnganger som kan ta inn spenningspulser, og 2 lavnivåinnganger som er beregnet for innkast med open collector-utgang (som eks RM4/RM5). EL-3-kortet mottar pulstog fra inngangene og resender disse på de respektive utgangene for å simulere aktivering av de optosensorene. Du kan da sette inn to nye innkast, eks ett for kronestykker og ett for tikroner. Pulsene fra enkronesinnkastet vil dekodes av EL-3-kortet og resultere i de samme signalene inn til automaten som en ville ha fått ved en aktivering av en fysisk mynt som hadde falt mellom det ene paret av optosensorer. Pulsene fra det andre vil dekodes på tilsvarende måte, men resultere i simulering av de optosensorene som normalt hadde stått under det andre innkastet.
Eventuelle inhibit-signaler tilbake fra automaten går ikke via EL-3-kortet, men må routes direkte til Comestero interfacekortene.

Som bildet under viser, så ble det en riktig så “tight” liten sak. Kortet er ca 4 x 4 cm stort.
 

 

Jeg klarte selvfølgelig å tabbe meg bittelittegranne ut denne gangen også, men det var ikke verre enn en at ledeteksten til pinnene på connectoren ble feil. Jeg testet kortet i kveld med to forskjellige innkast tilkoblet.

Kortet virker, og verden har blitt et litt lysere sted for de som sitter med en finsk EL-3 knipsekasse som de ikke får montert nyere myntinnkast i. Jeg kan nå slippe på nye norske mynter i Comestero-innkastene og få credits på EL-3-kassa

Dessverre, så sitter det nok ikke mer en en 3-4 eiere av EL-3 der ute, så dette er nok ikke akkurat et produkt jeg kan basere en startup på.

Nå har jeg ikke de store kommersielle ambisjonene med dette, da kortet vel har blitt uviklet mest som en kombinasjon av en vennetjeneste og voksenopplæring for min egen del. Kanskje sitter det noen karer i Finland som kan ha glede av det ? Hvem vet. Jeg skal uansett få på plass en liten prosjektside for dette, slik som for det gamle Spar7-kortet.

PS. For de der ute som har fulgt med en stund, og som lurer på hva en EL-3 faktisk er, så ser den sånn ut: 
 

Pete: Are you sure this is going to work?! MacGyver: Nope.

I kveld har jeg kost meg skikkelig med old school assemblerkoding for å ferdigstille EL-3 kortet. Måtte lage en snutt som kunne sense kjappe pulstog fra nye fräsche innkast og bufre opp antall pulser slik at de kan resendes ut igjen i et litt mer bedagelig og kontrollert tempo til automaten.

Andre gang jeg plugget inn kortet så begynte EL-3′en å oppføre seg merkelig. Etter en reboot, så kom feilmeldinga “89″. Denne indikerer RAM-feil.

For de uinvidde, så kan jeg kanskje nevne at feilende gammal RAM er et totalt mareritt. RAM er ferskvare, og du er heldig hvis du får tak i RAM til en PC som er litt over et par år. Den RAM’en som feilmeldinga hintet til er ingen ringere enn Toshibas eminente TC5501P-brikker. Dette er da (wait for it…) 256-ord x 4 bit CMOS RAM fra 1981. Denne får du ikke tak i på Mouser. Jeg har ikke sjekket, men jeg mistenker du må på en av Sothebys spesialistauksjoner for å finne noe utstyr du kan pelle ut en fungerende brikke fra.
 

null

 
Jeg fikk et tips av eieren av automaten om at det kunne skyldes batteriet til RAM-brikkene. Dette er “bokholder”-minnet til automaten og er noe inn i helsike godt gjemt inni ei ikke-spesielt-tilgjengelig metallkasse helt bakerst i kabinettet. Dette var visstnok for å gjøre det vanskelig for operatørene å komme til for å blanke denne (ikkeno stygt om automatbransjens regnskapspraksis, men jeg mistenker at mange av operatørene begynte å kjøre taxi i Oslo etter at automatmarkedet kollapset for noen år siden…;)

EL-3 stammer fra før flashminnets tidsalder og måtte derfor benytte statisk RAM med batteribackup. Etter å ha nappet ut det som var av flatkabler og tatt ut to lag med kretskort, så kom jeg frem til en lukket metallboks helt bakerst. 8 skruer og litt banning pga sannsynligvis bevisst lite plass i kassa for den “utradisjonelle manøveren”, så fant jeg fram til bokholder-kortet (med noe hjelp fra eier Are – som hadde gitt samtykke til kirurgien på forhånd). Slike backupbatterier er normalt loddet på printkortet og skal ikke se slik ut:
 

null

 
Her hadde det vært noen før – og vedkommende har vært både en uredd sjel, samt sannsynligvis en svoren fan av MacGyver. 3 oppladbare batterier var loddet sammen, og strappet fast til kortet. De hadde også fått en fin sløyfe rundt seg av litt grovere ledning. Av brennmerkene på kortet å dømme så var det benyttet en loddepistol av det litt grovere slaget i prosessen.

Med hjertet i halsen, så forsøkte jeg meg på en live bypassoperasjon. Dvs jeg monterte på en ny batterikasse med ledninger som kunne trekkes fram fra elektronikken, satte inn nye batterier og loddet av de gamle (uten at den gamle RAM’en mistet hukommelsen). Etter å ha innmontert alle kortene og koblet til alt av connectorer, så hadde vi en vinner. No more “89″ !

I morra kveld, så får jeg fortsette der jeg slapp, med det jeg egentlig skulle gjøre.

2,81

Det har ankommet en ny ladning med komponenter fra Mouser, inklusive en batch med ULN2003A’er. Jeg begynner så smått å få igjen pusten, og tenkte derfor det var like greit å forsøke å reparere RM4-innkastet som fikk hjerneblødning for en tid tilbake.
Den mistenkte chipen satt selvfølgeligvis ikke i noen sokkel, og det var omtrent umulig å komme til på baksiden av printkortet. Tinnsuger og loddelisse var også rimelig dødfødt. Eneste utvei var å klippe av alle beina på den gamle chipen og lodde ut ett og ett bein. Etter litt improvisert tinnsuging med tynn kobbertråd og flussmiddel, så så operasjonssåret ganske pent ut og det var bare å droppe inn en ny chip.
 

null

 
Koblet til et 9V batteri med en LED og serieresistor mellom jord og CR på interfacekortet for å teste. Et Ballytoken ble prompte avvist, en tier ga en synlig puls og en tjuekroning ga 2 synlige pulser. Må nesten konkludere med at operasjonen var vellykket. Svært få ting er såpass tilfredsstillende som å blåse liv i ting. I tillegg så sparte jeg 1117,19 NOK på å reparere innkastet, hvilket ikke er å kimse av i disse finanskrisetider. (Det hører riktignok med til historien at jeg kjøpte et flunkende nytt RM5-innkast fra P4P som en ren reflekshandling, men det er jo uansett kjekt å kunne putte inn i en eller annen knipsekasse)

Return top