Archive for the ‘Hardware’ Category

The Clockmaker – del 6 (final episode)

Dette utviklet seg til å bli et litt større biprosjekt enn tidligere antatt, men nå er jeg altså – ferdig ! (Leker dog litt med tanken på å lage en reisevekkerur-variant i betong med 6 IN-12 og ringeklokke fra en bakelitt-telefon).

Hardware

  • 6 generiske utganger som kan benyttes til å kontrollere det meste du vil kunne klare å oppdrive av russiske nixier.
  • 1 utgang for å kontrollere dobbel-puls dekatroner som OG-4.
  • Klokka kan stilles trådløst via blåtann.
  • Drives av 12V padde eller batteri.
  • 11.0592 MHz ekstern klokkekilde. Itteno temperaturdrift !
  • ISP-port for programmering (kjekt hvis en vil skrote den eksisterende firmwaren og snekre sin egen)

Firmware

  • Klokkefunksjon. Alle utganger er default aktive, men en sette sammen en vilkårlig kombinasjon for å designe sitt eget display.
  • Møtekalkulator. Beregner sanntidskost for møter.
  • Generisk displayfunksjon. Kombiner utgangene, eller grupper dem for å vise vilkårlige data. Eks CPU-belastning, minneforbruk på favorittserveren din. Du sender da en enkel kommando til klokka for å oppdatere displayet. Utgangene er i denne modusen individuelt adresserbare.

Antar jeg lager en egen side på TE litt mer detaljert beskrivelse med skjema, deleliste, nedlastbare gerber-filer og firmware når jeg får ånden over meg.

PS. har fått et par henvendelser mht tilgjengeligheten på printkort for klokka. Hvis flere er interessert, så er det bare å slenge seg med på neste trykkerunde. Alt av deler du vil trenge i tillegg, som f.eks. rør, blåtannmodul, HV-modul (flere og flere som selger knøttsmå og billige moduler) er tilgjenglig fra mouser, sparkfun og eBay.

The Clockmaker – del 5f (Nå begynner det fan meg å ligne !)

BlueSMiRF Gold ankom i dag !

Etter en kjapp runde med loddebolten, så kunne kortet stappes ned i sokkelen på NixieDriverkortet.

Power on. Ingen blårøyk. Pulserende LED på SMirF’en med 1200 msek intervall. Alle 6 Nixiene i drift.

Parringen med PC’en gikk rimelig greit, og blåtannmodemet dukker opp i lista som “Firefly-XXXX”. Den tilbyr kun SPP, så det er ikke så mye som kan gå galt.

Det tok meg en stund før jeg fant ut av hvordan du kommer inn i kommandomodus over blåtannlinken. Det viser seg da at røveren har en timeout, slik at “$$$” betyr “Gå i command mode nuh!” – d.v.s. hvis du sender kommandoen innen 60s etter power-on. Etter den tid, så betyr det kun “$$$”.

Inne i command-mode, så setter du opp baud-rate, stop-bits, flytkontroll etc med Roving Networks eget kommandosett. Oppsetter lagres så i flash når en går ut av command-mode.

Jeg har koket sammen en liten kodesnutt, slik at en kan snakke med klokka fra dingser som støtter blåtann SPP (laptop funker, iPhone gjør det ikke (ihvertfall ikke med OS’et jeg har inne)).

Protokollen er rimelig enkel. <port><mode><params><crc16>. Jeg har så langt implementert “klokke”, “møtekalkulator” (regner pris i sanntid for å holde X konsulenter med gjennomsnittlig timepris Y i meningsløse møter), samt “display” (for å vise egne data, eks hvis en ønsker å bruke Nixier til å vise CPU-belastning, minneforbruk på PC, eller metrikker av noe slag fra en eller annen datakilde)

Første test gikk noe ala dette:

C:\UnterClockCommand\bin\Debug>UCC COM3 CLOCK 12 0 0

Connect-LED’en på modemet lyste opp, Nixiene skiftet verdi, og klokka fortsatte videre fra 12:00:00.

Dvs, den skifter på annenhvert forsøk. Dette skyldes mest sannsynlig en brainfade hos meg. På den annen side så kjører jeg uarten i async-mode uten ekstern klokke, og du får da en feilrate på 0.2%  (ved 8 Mhz som den snurrer på nå). Pga at kortet ble designet for en ren mottaker uten noen form for handshakemulighet, så har jeg ikke mappet Tx-pinnen fra AtMegaen tilbake ut. Tror kanskje dette endrer seg når neste batch bestilles fra pressa.

The Clockmaker – del 5e (arkitektur funker)

Seriekommunikasjon mot omverdenen funker nå, men det gjør dessverre inte senderen og mottakeren jeg brukte flere titalls kroner på. Irriterende, men jeg kan kanskje få igjen pengene ved å re-brande dem på eBay som bombetriggere eller lignende…

Jeg har nå bestilte meg et bittelite blåtannmodem til noen titalls dollar. Dette burde kunne erstatte el-cheapo-mottakeren uten at jeg engang trenger å dra fram loddebolten. Jeg trenger da ikke tenke på senderdelen. En hvilken som helst PC, eller telefon (som støtter SPP (dog høyst sannsynligvis ikke telefoner som er prefikset med “i” (hvis jeg da ikke klarer å få kortet til å identifisere seg som et handsfreesett))) kan da brukes for å kontrollere kortet. Fatter ikke at jeg ikke tenkte blåtann tidligere.

For å komme videre med implementasjon av protokoll og kommandosett, så har jeg foreløpig nappet RF-rælet ut av sine respektive sokler og istedet dratt en (wait for it…) ledning fra PC’en til kortet. Kommunikasjonen er da fjellstø. Mens jeg venter på FedEx, så kan jeg da konsentrere meg om å implementere de nødvendige kommandoene.

Jeg tror også jeg har hostet opp en ny modus for klokka. D.v.s. som møtekalkulator. Med en sånn inne på møterommet, så kan en sende en liten kommando til den fra PC’en som sier noe om antall deltakere og gjennomsnittlig timepris. Når kommandoen er sendt, så begynner klokka vise løpende møtekostnad. (En kunne forsåvidt sett for seg en plugin i outlook som myste i kalenderen og gjorde dette automatisk, men det får vente til enterpriseversjonen)

The Clockmaker – del 5c (Nixiedriver 1.0 testing)

Da har jeg fått testet noen flere features på nixiekortet. In circuit-programmering funker, dekatronkontroll funker, og alle 6 displayutganger funker. Fant en bug i skjemaet, men det verste som kan skje er at powersupply-LED’en brenner ut, så det kan vi leve med.

Jobber nå med dokumentasjon, testing av RF-interfacet, samt implementasjon av en protokoll som gjør det mulig å bruke kortet på en vettug måte – tenker vi setter av opp til flere kvelder akkurat til denne biten. Hvis jeg kjenner meg selv rett, så blir det en lang drakamp med feature-creep-demonene her…

Planen så langt er at kortet kan operere i 2 forskjellige modus. Dvs som klokke, der en kan sende kommandoer for å synke/stille klokka eller som generisk displaymodul, der en kan kontrollere de 6 displayene og dekatronen individuelt. Må grave litt i skuffa for å finne igjen en eller annen Max-IC som gjør meg i stand til å hekte sendermodulen på laptoppen. Når dette er i boks, så blir det å sette seg foran en eller annen terminalemulator med kryssede bein og armer.

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.

The Clockmaker – del 5a (vi starter PCB-pressa)

Klokka har stått litt stille i ferien, men siden dagen i dag var helt eksepsjonelt kjedelig, så var det på tide å sette litt praksis ut i teori og konvertere prototypen til noe som ligner på et design.

Det du ser på bildet er da den ferdig routede driverkretsen for klokka. Jeg har valgt å utvide litt slik at den kan drive opp til 6 nixies i tillegg til en dekatron.  Jeg har forsøkt å lage kortet fleksibelt, slik at en slipper unna med å droppe inn de komponentene en trenger.

  • Basiskonfigurasjonen er en AtMega8515 + powerdel og ISP-connector for programmering.
  • En kan velge å droppe inn en 7.3728 MHz krystall for å unngå drift.
  • For hver nixie en ønsker å drive, så plugger inn en 74141/K155ID + korresponderende I/O-sokkel
  • Kortet har støtte for å drive en OG-4 dekatron. En dropper da inn 3 mosfets og 3 resistorer.
  • Videre så har jeg integrert den med de superbillige 434MHz 2400/4800 baud Rx-modulen de selger på Sparkfun. Hvis du plugger en slik inn i sokkelen på kortet, så har du direktetilgang til UARTen med en korresponderende sender. Med en slik på plass, så kan klokka synkes fra en hvilken som helst kilde. Enten kan en hekte på en sender som en styrer via serieporten på en PC, eller en kan lage en liten ethernetbro som en plugger rett inn i hjemmerouteren sin.
  • Ved å bytte ut AVR’en med noen headere, så burde det være mulig å hekte kortet på en Arduino via en egen flatkabel. (Er jo enkelte som foretrekker denne av en eller annen grunn)

Oppførselen er kun bestemt av softwaren her, så jeg ser for meg at dette kan funke som en rimelig billig generisk Nixie-driver. Det eneste en trenger for å programmere kortet selv er AvrStudio (gratis), samt en billig AVR-programmerer (et par hundredelapper).

Klok av skade, så tenker jeg at jeg setter av en dag eller to til for å verifisere layouten før jeg sender den til trykking. Kommer også til å lage et tilsvarende kort for powerdelen til Nixiene og dekatronen.

How to drive a dekatron – the easy way

Jeg har tafset med Nixie-klokka en stund nå. Denne benytter fire Reflector/Sovtek IN-1 rør for å vise timer og minutter, samt en OG-4 som sekundviser.

Jeg har sikkert brukt halvparten av tiden i prosjektet på å finne ut hvordan en skal drive disse rørene direkte fra en mikrokontroller. Databladene til rørene inneholder stort sett kretsbeskrivelser som viser hvordan en skal telle analoge pulser, og nesten alle tutorials og eksempelkretser jeg har sett for dekatrons benytter 50/60Hz AC nettspenning for å få den til å spinnne.

Hvis en ønsker å kunne kontrollere spin-hastigheten, så må en generere et analogt signal en kan kontrollere frekvensen til og deretter bruke faseforskyvingskretsen beskrevet i databladet. Alternativt, så kan en kontrollere de individuelle dekatron-pinnene direkte fra en mikrokontroller, via høyspenttransistorer. Det som er vanskelig er å finne ut hvordan disse dingsene er designet. Med en gang en har forstått dette, så er resten rimelig enkelt.

Det eneste du trenger å gjøre for å kontrollere en OG-4 fra en mikrokontroller er:

1) Koble pinne 1 til jord via en 51K resistor.

2) Koble pinne 3 til en strømfosyning som kan levere ca 450V (Jeg vil sterkt anbefale at en benytter et strømbegrenset og isolert powersupply hvis en skal leke seg med denne type spenninger (ref http://www.timeexpander.com/wordpress/?p=1610)

3) Du kan deretter bruke høyspenttransistorer for å jorde pinnene 4,6 & 8 i riktig rekkefølge (Jeg har mappet disse til portpinnene PA2-0 i eksempelet under). Disse transistorene kan deretter styres av outputporten på mikrokontrolleren. For å få det ioniserte feltet til å hoppe fra pinne til pinne, så må en hele tiden ha to pinner jordet. Jeg istenker at en også må ha frekvensgrensen til den aktuelle dekatronen i bakhodet her.

Jeg har valgt å bruke IRF740 mosfets i dette eksempelet. De drives va 6% over hva de er spesifisert til å tåle mht spenning og blårøyken burde egentlig slippe ut, men det ser av en eller annen merkelig grunn ut til å gå bra likevel.

The Clockmaker – del 3d (Integrasjon og bittelittegrann feature creep)

For en gangs skyld, så ser det ut til at noe ikke spontant har omdannet seg til en dommedagsmaskin kun fordi jeg har tafset på det. Den nye strømforsyninga ser faktisk ut til å virke – og virk er noe vi er glad i.

Dekatronen var klin dau og måtte skiftes ut, men resten av rørene hadde berget.

(powertest)

Nå må jeg luke bort litt døde IC’er og få liv i logikken igjen. Må også finne en elegant måte å stille klokka, eller holde den i synk med en annen master. Folk flest bruker 50/60Hz’en som klokkereferanse, men Ståle D kom med et glitrende forslag om å bruke NTP for å holde klokka i synk (Må isåfall bli via en trådløs link, da jeg tviler på at NGT blir spesielt happy hvis jeg ved et uhell skulle svi av en av switchene deres). Har ihvertfall handlet inn en neve med fryktelig billige RF-moduler (maks 4800baud), samt noen litt friskere XBee’er for å leke med.

Etterhvert som ting begynner å henge sånn tålelig sammen, så får jeg dra fram Target og Elektra igjen for å få designet litt proffere kretskort.

The Clockmaker – del 3b (Lorentz has just left the building / the discovery of a failure mode totally unknown to science…)

Har hatt riktig så god progresjon på nixie-klokka de siste dagene. Jeg fikk i går samlet mikrokontroller, driverkretser og power-supply på et og samme kretskort. Alle rørene er også montert. Tenkte å ta sjarmøretappen i kveld. Eneste som sto igjen var litt “brains”, samt å hekte på poweret til dekatronen.

For de som måtte ha glemt det, så drives da dekatroner med ca 500V – og det var her jeg i min visdom valgte å være litt ekstra knipen mht investeringene.

Jeg har innført strenge testrutiner i heimen for hardware som opererer på spenninger over TTL-nivåer. D.v.s. jeg stapper normalt den ene hånda ned i lomma og drar på meg vernebriller før jeg kniper igjen øynene og napper lett i frankensteinbryteren på veggen – mens jeg håper på medvind og gudenes velsignelse.

I kveld så valgte jeg da av uforklarlige årsaker å istedet følge testrutiner for software. D.v.s. a) produksjonssette, b) brannslukke, c) vurdere skadeomfang / sannsynlighet for søksmål, og d) forsøke å se mest mulig uskyldig ut, samtidig som jeg peker i en vilkårlig retning.

Jeg tok da hovedsikringen – igjen. I kid you not !

Forløpet denne gangen var omtrent som normalt..

1) Jeg loffer ned i kjellern og mumler noe om et eller annet prosjekt.

2) Det smeller noe jævlig.

3) Det blir helt mørkt i hele huset.

4) Madammen roper navnet mitt (syntes jeg øynet et lite håp i stemmen om at jeg ikke skulle svare, men jeg kan ikke være helt sikker pga sterk øresus etter at det smalt)

Etter bildene å dømme, så har jeg ikke bare funnet en ny måte å drepe IC’er på. Jeg har klart å bygge en railgun vha 4 russiske IC’er, en atmelkontroller og et par kodensatorer jeg skal sjekke spekken på en gang til (rimelig sikker på at jeg ikke tok dem fra skuffa med merket “DeLorean Flux Capacitors” (Obeservante lesere vil legge merke til en distinkt “Back To The Future”-look på svimerkene)).

Hvis en ser litt nøyere på bildet, så er det lett å identifisere området der noe gikk fryktelig galt.  Den lange streken bort til batteripakken er litt vanskeligere å forklare. Den må ha blitt dannet av noe som var fryktelig varmt, og som var innmari bestemt på å flytte seg fryktelig fort i akkurat den retningen. Tror vi kan være rimelig sikre på at Lorentz hadde en finger med i spillet her. (Tror du forøvrig mannen gidder å dukke opp når du _ønsker_ å bygge railgun ?)

Vi kommer tilbake med updates når skilletrafoen og den nye strømskinna mi har ankommet. Kun kortslutningssikre og isolerte strømforsyninger på meg heretter. Er for gammel til å kaste bort tid på venterommet på akutten. Been there, Done that.

Return top