Posts tonen met het label Display. Alle posts tonen
Posts tonen met het label Display. Alle posts tonen

donderdag 29 oktober 2015

Oled snail

I need four original waypoints for my new geocache, this is number three. I made a promise to myself to always make electronic waypoints and as this is my third multicache, I'm not planning on breaking that promise yet. Now, the idea of my new multi is to go a bit further. For the final, it means using some motors and servos. For the waypoints, it means that this time I want them to really blend into the background.

I started off with this fake plant, now I'm trying to get all electronics needed to get the information displayed to the cacher in a snail house. First, let's not worry about being waterproof because it simply isn't. I may take a leap in the dark and try to place it in the woods as is. That means the pcb with display and battery is only wrapped into a heat shrink sleeve which is glued into the snail house. That's only possible if it sustains humidity, but I'm guessing that this will work.

Actually, my other caches contain all electronic waypoints in waterproof containers, but they often fail. Someone forgets to tightly close the cap or the plastic wears off, leaving the electronics exposed. I noticed that the electronics have never failed for that reason (they do fail for a lot of other reasons ;) ) but not because of humidity.

I always use plastic spray on my finished pcbs, including the batteries. The other components I use now (like Oled displays) will sustain bad weather for a long time. Again, these things are not meant to last for years, I'm glad they last one year. As a final test, I hold my finished projects under the water tap and check if they make it. Until now, they always do.

That said, this is the new challenge. I no longer use magnetic switches, so visitors won't need a magnet to activate the snail (well.. the display). I use a tilt switch, so turning them over will start the show. After it has shown its info, the chip will fall asleep and only activate when there's movement. So it doesn't matter how you place it back. I would prefer face down but I know better than that. Also, these things cannot be secured by a lock or a small chain, so they can be easily ripped. We'll see about that, I plan on making a few extra and I never had things ripped before.

This is my prototype for now:


zaterdag 23 mei 2015

Oled fake plant

This geocache waypoint is supposed to really blend into the background. The fake plant is available in many geocache webshops and it comes in many different shapes. Not only the container may vary, you can also pick a plant that will suit its purpose best in the setting you have in mind. Off course, when you buy it, it comes with a small logbook and a tiny pencil to log the cache.

But my plans are usually a bit more nerdy so this thing was the ideal container for a design I had actually laying around for more than a year now. The major problem was that I just could not get ANY pixel light up in these Oled displays (dutch) that I bought in a major shopping mood.

Recently I made some serious progress in that area, especially with connecting them to Attiny 45 and Attiny 85 microcontrollers. I still use the Arduino environnement to program this, it's not necessary in this design but the vast library collection keeps me hanging on to this platform.

Anyway, this is the final result and I'm really pleased with it. I think the logo is really cool and I added an extra container to keep it a bit safe in the soil and even more important: its second container has some strong magnets glued in. These magnets will activate the magnetic switch on the lower side of the container with the display inside.

This is how it works:



Soldering

I've been improving my soldering skills for some time because these designs really need it. The Attiny 85 on this pcb is the really really small QFN package. It's only 4 by 4 millimeters in size, and it comes with 20 pins, 5 pins on each side of the chip.

The 'normal' SMD version has actual pins you can touch with a soldering iron, 1.27mm apart. This package was meant to be used with a reflow oven. There's no actual pins on the side, only on the bottom of the tiny chip. Instead of 1.27 mm , they're only 0.5 mm apart.

Now I don't have a reflow oven and I'm not planning on buying one in the near future. So I had to do this with a regular soldering iron. I bougth a soldering station with a tiny J-shaped tip and that really does the job. I actually heat the pcb pads instead of the ones on the chip. First of all, you really need a station and not a normal soldering iron. The pins on the pcb are so tiny that a slight touch of even a 25 Watt soldering iron just wipes away the small tracks.

My pcb software (freepcb) did not have a layout for this chip, so I took the datasheet and created my own. Its pads are only 0.25 by 0.80 mm. In real life, this is a really really small amount of copper and especially those pads that are not connected immediately detach from my pcb when you overheat them. With the soldering station and je J-shaped soldering iron, I keep the heat below 300°C and never had that problem again. It still takes some time, some boards and even a few chips before I got my first one really working. I have to kinda guess where the pads are, solder them one row at a time and then look through a microscope to see if they are aligned at all four edges. That took some time and practice.

PCB design
There's a tiny problem with my pcb designing technique. I used to design my own pcb, print two copies on a transparent sheet with a laser printer and glue them on top of eachother. That's a really cool way of making a 100% black pcb design which never fails. If your laser printer would leave out some tiny black dots because your room is a bit dusty (which nerd room isn't?), that does not cause any problem because you have a backup sheet on top. The chance of your printer failing to do its job on the exact same dot twice is almost non-existent.

The problem is: you have to get both sheets on top of each other 100% aligned. In this pcb design, the smallest distance between pads is 0.2 mm. It's just not humanly possible to get this design aligned on the whole sheet (I print at least 4 or 5 pcb's on one sheet, that's still a small board).

So I decided to skip that step (so only use one sheet) and try to work through the problem of the UV light touching the photoresist pcb at places that I can't predict. It worked out pretty well, it's now a combination of three things:


The etching tank gives me a 100% control over the etching process. This is SO important when working with these tiny pcb designs. You can see the etching process happening before your very eyes, which makes it easy to get the pcb out exactly one minute after you see the image appearing. When I think it's done, I wait one extra minute. When I look under the microsope, I can see that I need this minute to completely get all copper off, if I wait another minute, some existing 6 mils traces (= 0.23 mm) will start to dissolve. The etching solution actually runs under the copper pads after a while.




As you can see, it works out pretty well.

Only this one design (out of five) had a minor defect.

I do have to check them visually before soldering, measuring them out is just too hard.





The 14 pins connector of the Oled display was also a problem. The freePCB software can't handle smaller distances than 0.1 mm. The pads are 0.625 mm apart, which makes it impossible.

So I just created my own 14 pins connector with 0.60 mm spacing, and every 4 pins I add one at 0.70 mm. If you look in detail, it looks odd, but in real life it's just about perfect (note that the picture is a 15 pins connector from another display, 0.65mm apart, skip every 2 pins, but you get the idea, right?).


Software design

As I said, it's actually an Arduino sketch which makes things happen here. I'm not putting any code here just because I don't have one single working all purpose solution. I'll be happy to mail some code if you're interested. But there were a few major obstacles.

First off all, most of the small Oled displays on this blog (and anywhere else) are driven by an I2C interface. That's a bit of an issue when using Attiny 85 chips, because these chips don't really support the interface. They do have some basic pins that can act as an I2C interface with an extra library (I use TinyWireM , M stands for Master).

Since I only have 8kB of program memory, there's just no way to use a library to drive the display (all my monochrome Oleds have a SSD1306 chip). That means I had to write my own code. It basically sends existing bitmaps that are hardcoded into program memory to the display. I actually wrote the whole Verdana 12 alphabet (uppercase and lowercase) in MS paint and copied all characters one by one. I just had to make sure my bitmaps are a multiple of 8 in height, since I'm writing bytes vertically to the display. I did the same thing with the numbers in Verdana 28. As a result, I get a nice readable font of 16 pixels high (so two lines on this 128 x 32 display) and really clear and big numbers to display coördinates of 32 bits in height (one scrolling line on this display).

One definition of one charcter would look like this:
The PROGMEM keyword is very important, it keeps this static data in program memory, otherwise it would be stored in the SRAM of the Attiny chip, which is only 512 bytes big. Its program memory (flash memory) is 8kB (see Arduino link about memory usage).

The array represents a bitmap of the character 'm' , font Verdana 12 , copied to a bitmap of 13 pixels width and 16 pixels height. This nice tool does the conversion of a monochrome bitmap to an array style notation like we need (beware of the different variable declaration that is generated).

As for now, my software only allows Verdana 12 characters to be displayed with Verdana 28 numbers. An Attiny 85 has some extra space available for a logo, the '45 does not. It even crashes when I write more than 5 lines of text in total (tricky: the compiler never says it's out of memory when adding arrays to your program memory, it compiles perfectly and then crashes once and a while. Very amusing. Not.). Although this may seem a bit of a limitation, I think it's just awesome that a tiny controller can do these amazing things with a bit of code :)

zondag 26 april 2015

7-Segment kokertje

Ik heb geprobeerd om mijn 7-segment potje in een andere vorm te gieten. In het filmpje zie je de metalen kokertjes die je vaak terugvindt als micro geocache, er zit dan een klein logboekje in of je kan er een papiertje met coördinaten in kwijt.

De uitdaging was hier vooral dat de batterij veel kleiner is en ik toch de symbolische grens van minstens 100 logs op één batterij wil behouden. Met het originele potje en dus een grotere batterij was dat geen probleem, tot nu toe heb ik nog geen platte batterijen gehad in dat soort potjes.

Om dat ook nu te vermijden is het contrast opnieuw wat lager (ik heb het ooit verhoogd in de originele potjes, maar dat verbruikt meer stroom) en de duurtijd van één weergave is verkort tot 30 seconden. Verder draait de klok van de microcontroller acht keer trager, ook dat spaart wat energie.

Ook nu is er een optie voor een kwikschakelaar maar dat was minder praktisch (te groot), dus deze wordt opnieuw geactiveerd met een magneet.



zaterdag 29 november 2014

DIY Oled display

Project drie van drie in één productief weekend was het belangrijkste. Het gaat dus al een tijdje over Oled displays hier, dat heb je misschien gemerkt. Het belangrijkste is dan dat alles moet passen in het doe-het-zelf plaatje, en dat liet te wensen over.

Wat je meestal moet doen is een semi-kant-en-klare display kopen zoals ik dus ook al deed voor mijn geocache waypoint in de verkeerspaal. Dat is fijn als het vast zit in een verkeerspaal en je dus per definitie enige diefstalbeveiliging hebt. Als je een potje onder een boom wil verstoppen, is dat niet zo.

Het punt is dus dat alles zo klein, zo goedkoop en zo goed als mogelijk reproduceerbaar moet worden. Dan voldoet een kant-en-klaar printje niet. Daarom dus dit project nummer drie: de Oled display die ik op één eigen ontworpen printje met alle nodige mini SMD componentjes zelf moet solderen. Zoals je ziet is het fijn werk, de display heeft een connector waar de contacten 0.7mm uit elkaar liggen. Dat wil zeggen dat je ze niet meer per stuk met een soldeerbout kan aanraken. Dan moet je dus andere manieren proberen.

Maar dat valt al bij al reuze mee eens je wat geoefend hebt :)



zondag 23 november 2014

OLED Geocache Waypoint

Het eerste project is gelukt en dat is uiteraard heel fijn. Een tijdje was ik al op zoek naar goeie manieren om een Oled display te gebruiken in een geocache, maar eerdere pogingen liepen op niks uit.

Er was vooral heel wat programmeerwerk nodig. Dat komt vooral omdat ik beperkt ben in de mogelijkheden van kleine microcontrollers die ik wil gebruiken. Het doel is immers ook dat het ooit in een potje past waar ooit glucosestrips in zaten. En daar past geen Arduino in, ik mikte dus op een kleine microcontroller (Attiny 85) en een seriële verbinding naar de display. Die strenge eisen hebben me verplicht om het wiel opnieuw uit te vinden softwaregewijs, er bestaat immers geen goeie library die alles al voorgekauwd heeft en waarmee ik simpel kon zeggen: laat nu eens coördinaten zien op dat schermpje.

Hoe het dan wel moest? Tja, alle enen en nullen zelf naar het scherm sturen hé. Dat vraagt wat tijd en denkwerk en daar ging eerder al een heel weekend aan op. Dit weekend ging op aan drie ontwerpen voor de hardware waarvan dit dus het eerste is dat werkt. De volgende uitdaging is hetzelfde model van scherm, maar dan zelf gesoldeerd op één printplaatje. Het maakt alles zot goedkoop, alleen die connector solderen maakt me zenuwachtig.

Maar de verkeerspaal in mijn Rondje Vlaanderen geocache in Zwijndrecht zal binnenkort dus al oplichten met dit schermpje :)

woensdag 12 november 2014

Oled display voor Rondje Vlaanderen

Is dat alweer zo lang geleden dat ik die Oled displays in huis haalde? Zo'n display hoorde nog even bij mijn plan toen ik mijn Rondje Vlaanderen geocaches ging verstoppen. Maar omdat ik de displays niet op tijd aan de praat kreeg, bleven ze liggen.

Nu was er een andere aanpak. De displays die ik had liggen, werkten dus niet. Veel had toen te maken met mijn beperkte kennis over seriële verbindingen met microcontrollers, I2C en SPI. Als iets niet meteen werkt, moest ik meteen de handdoek in de ring gooien. Zonder enige echte datasheet (die hebben de meeste Chinezen nu eenmaal niet in huis) is het trouwens ook niet makkelijk om zoiets aan de praat te krijgen.

Gelukkig was er van de week opnieuw een Shopping Festival. In de praktijk wou het zeggen dat de displays nu met 65% korting werden verkocht. Dat wil zeggen dat de 'gemakkelijke' versies - die met een printje aan vastgemaakt - nu goedkoper zijn dan de industriële versies in bulk. Het kwam neer op een paar dollar per stuk, het juiste bedrag ben ik kwijt.

Belangrijkste is: het werkt meteen! En dit gebruik ik als basis om de vorige loten aan de praat te krijgen. Er is zo'n simpel principe van eliminatie: iets dat werkt kan je stap voor stap afbreken tot het niet meer werkt. Dan weet ik wat ik mis in de 'naakte' versies die ik in april aankocht. Maar voor alle veiligheid heb ik de stock van deze displays die één Chinees in zijn garage op de Shopping Festival dag had liggen meteen leeggemaakt. Hij stuurt er 16 op naar België. Die werken dus al zeker :)

Minstens één verkeerspaal in Zwijndrecht ziet er binnenkort dus lichtjes anders uit.
Als je heel goed kijkt toch :)

dinsdag 23 september 2014

Veel 7-segmentjes

Ik moet toegeven, ik heb me even laten gaan in het soldeerkamertje. Dat komt eigenlijk vooral omdat je nu eenmaal niet één klein printplaatje kan maken, in dit geval staan er 9 op één vel.



Er waren er al een paar in gebruik van de twee vellen, en als ik de 'afval' verwijder (helaas heeft meestal elk vel wel één of meer mislukte ontwerpjes), hield ik er dus twaalf over.



Niet dat ik ze zelf allemaal in gebruik ga nemen, een aantal zijn bedoeld voor een andere geocacher. En de rest hou ik als reserve nu ik merk dat zo'n potje in de natuur niet altijd met zachte hand wordt behandeld.

Nu had ik een mooi plan om de 7-segmentpotjes die niet voor mezelf bedoeld zijn programmeerbaar te maken. Die van mij zijn dat ook, maar er is een groot verschil tussen de originele software in het geheugen branden en enkel de coördinaten aanpassen aan de plek waar de potjes moeten liggen. Ik kan dat combineren in één beweging, maar als ik de potjes overhandig is dat niet meer zo. De geocacher zou de ontwikkelomgeving moeten installeren en heel wat know-how moeten hebben over compileren en uploaden en zo.

Met deze programmer lukt dat dus allemaal. Het is niet meer dan een extra klein printje met één chip en een toetsenbordje, maar het geeft genoeg flexibiliteit om coördinaten vast te programmeren per potje. Er is één grote 'helaas'! Het werkt niet. Het is te zeggen, alles werkt perfect zolang ik beide printplaatjes (zowel de programmer als het 7-segment potje) aan de 5V voeding van een USB verbinding heb hangen, vanaf het moment dat alles op de 3V batterij van het 7-segment potje zelf hangt, geeft ie geen kik meer.

Dat is heel vreemd, want beide chips zijn voorzien om vanaf 2,8V perfect te functioneren. Ik weet inmiddels dat 2,3V ook al genoeg is, wat mij dan nog meer de wenkbrauwen doet fronsen. Er is immers buiten de spanning geen enkel verschil tussen de twee opstellingen.

En dat is heel vervelend, want ik weet dus niet hoe dit verder moet. Ik wou alles veel makkelijker maken, maar dat zo lukt dus niet. Een extra voeding of een USB verbinding enkel om ze te programmeren zouden een optie zijn die misschien kan werken, maar het originele idee om alles eenvoudig te maken verliest dan wat van zijn pluimen.

Hoe zeggen ze dat? Back to the drawingboard...

maandag 28 april 2014

OLED Displays

Ken je dat, een OLED display? Het lijkt een beetje op een LCD display, alleen is er geen achtergrondverlichting. Dat komt omdat de puntjes van de display zelf licht geven in plaats van verkleuren zoals dat in een LCD display gebeurt. OLED displays vind je vaak terug in telefoons en mp3-spelers.

In China hebben ze die ook! Deze drie formaten hebben verschillende kleuren (wel maar telkens één kleur) en een verschillend aan puntjes op het scherm. Voor de rest lijken ze erg op elkaar en één ding is een gigantisch struikelblok: het is geen doe-het-zelf materiaal. Het zijn specifieke vervangdisplays voor echte mp3-spelers of andere gadgets. Je kan die dus niet zelf besturen.

Eén manier om dat toch te doen is deze. Ik heb een vierde model gekocht waar dus al een printje aan vast hangt. Een Chinees heeft hier zijn hoofd al over gebroken om uit te maken hoe je er wél een doe-het-zelf model van maakt. Dit is mijn backup, ik wil zeker zijn dat er zeker één model werkt.

Maar de uitdaging blijft toch om de eerste modellen te gebruiken omdat het voordelen heeft. Ik kan de elektronica die ik eraan vastkoppel op één printje houden, en de prijs is veel lager omdat het waardeloos is in de DIY community. Enkel als je dat soort mp3-speler hebt met een kapot scherm, kan je dit gebruiken.

Er zijn verschillende redenen waarom dit onbruikbaar is en één is zeker de connector. Dat is allemaal veel te klein om te solderen en in een mp3-speler gebeurt dat met een robot. Toch denk ik dat het moet lukken en ik was van plan om één printplaatje te maken waar de koperen baantjes zo dicht bij elkaar staan dat je hem kan vast solderen. Dat is de bedoeling van de connector, trouwens. Ook in een echte mp3-speler is ie gesoldeerd.

Maar toen viel me iets op. Deze twee connectors hebben 28 en 30 pinnetjes. Je zou dus maar een klein verschil mogen zien, maar als ik ze tegen elkaar leg, zie je dat het verschil te groot is voor slechts twee pinnetjes.



Onder de microscoop zag ik het: ze zijn dus niet identiek. De ene heeft pinnetjes die 0,65mm uit elkaar staan, bij de tweede is dat 0,70mm. Dat scheelt dus maar 5 honderdsten van een millimeter, maar het maakt dat ze niet passen op dezelfde print.



Om te beginnen heb ik de simpelste gekozen. Op de eerste foto in 't midden staat er eentje met een connector van 15 pinnetjes die 0,65mm uit elkaar liggen. Dat wil dus zeggen dat er 15 banen liggen op minder dan één centimeter. Bij de hobbyïst is dat normaal 4. Vandaar dit ontwerp. Bovenaan zie je doe-het-zelf pinnetjes die je kan solderen, onderaan de mini-versie.




Ook daar was meteen een probleem: de software die ik gebruik om printen te ontwerpen, kan dat niet aan. Het fijnste raster om baantjes te maken is 0,10mm. Je kan dus geen banen op 0,65mm uit elkaar leggen. Als je goed kijkt, zie je hier dan ook dat ik dat niet gedaan heb. Er liggen telkens twee banen op 0,60mm en 0,70mm van elkaar. Op de totale breedte van één centimeter komt dat dus juist uit, maar in feite liggen ze niet even ver uiteen.


Toch zie je hier op het eindresultaat dat ik er bijna boenk oep zit ;)


Let wel: de breedte is slechts één centimeter in het totaal. Dat ik links een beetje verder uitkom, is dan ook het minste van mijn zorgen.
De connector onderaan is machinaal gemaakt, de baantjes daarboven zijn van mij.

Nu nog vastsolderen, dat is ook best een uitdaging !

P.S. de foto's zijn hier tegenwoordig van behoorlijk foute kwaliteit. Dat komt omdat mijn 'goei machien' een gebouw aan 't fotograferen is ;)

zaterdag 22 februari 2014

Resistive Touch panel with Arduino

These touch screens are easy to find, cheap and very easy to control.

Actually, I found that you don't even need any library if you plan to connect them to an Arduino. Just connect the four wires to four analog inputs and write some lines of code. It's pretty straight-forward.


Actually, most effort was spent on soldering the tiny pads to standard jumper wires so I can actually do something with it. It's not the most pretty sight, but I got them connected and it works. Then, all it takes is plugging in the four wires into four analog pins on your Arduino. Yes, really, that's all.

Well, you do need some code to write of course. But these things are pretty easy to understand hence easy to code.


To make things easy, let's give these borders a name. The screen consists of two layers on top of each other. When you press the screen, the layers connect at a certain point. This point can be measured in two steps: measure the X-value and the Y-value.




To try them out, you could connect these to any DC power source and see what happens with a standard multimeter. Watch the movie below to see how I did this.



To measure the X-value, you should connect X1 to +5V and X2 to GND. Now, if you press the screen at a certain point, a voltage divider is created across the X-axis. Then, you can either measure the voltage on Y1 or Y2, that doesn't make any difference. The resistance of my total X-axis was approx. 700 Ohm, but that has no influence other than consuming a bit of current.


Same trick for the Y-axis. Connect Y1 to ground and Y2 to +5V (or any positive DC voltage) and measure the voltage on pins X1 or X2 (compared to ground of course).

Check this little video to see it working.
** by the way, the servos are optional and my hand is not shaky, the servos are ;-)



Connecting the panel to an Arduino is easy. Just connect all four pins to four analog inputs.

To check X:
- define X1 and X2 as OUTPUTS
- define Y1 and Y2 as INPUTS
- set X1 to HIGH and X2 to LOW
- use analogRead() on Y1 (or Y2) to get the value. This value will be a value between 0 and 1023, indicating the X-position of the pressed screen.

(note that I use HIGH left and LOW right of the panel, it was easy for my tests but this means the higher values are on the left of the screen)


To check Y:
- define Y1 and Y2 as OUTPUTS
- define X1 and X2 as INPUTS
- set Y1 to LOW and Y2 to HIGH
- use analogRead() on X1 (or X2) to get the value. This value will be a value between 0 and 1023, indicating the Y-position of the pressed screen.


These two functions will do the trick if you connect the pins to A0..A3
(X1 = A3, Y1 = A2, X2 = A1, Y2 = A0)

int xcoor(){
pinMode(A1,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A0,INPUT);
pinMode(A2,INPUT);
digitalWrite(A1,LOW);
digitalWrite(A3,HIGH);
return analogRead(A2);

}

int ycoor(){
pinMode(A0,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A1,INPUT);
pinMode(A3,INPUT);
digitalWrite(A0,LOW);
digitalWrite(A2,HIGH);
return analogRead(A1);

}


vrijdag 21 februari 2014

Aanraakscherm in de solden

Nieuw speelgoed!

Nee, niks dat ik nodig had hoor. Gewoon weer nieuwsgierig, je kent dat wel (of niet). Maar vijf aanraakschermpjes voor enkele dollars, dat moest ik gewoon bestellen.

Dit is het type aanraakschermen dat je terugvindt in je wandelGPS of je TomTommetje. Let wel, dit is enkel de film die aanraakt, het is geen echt scherm. Je kleeft hem dus op een bestaand schermpje, de vorm of de technologie maakt niks uit. Het aanraken van het scherm en het oplichten van puntjes staat dus helemaal los van elkaar. Alweer iets dat nieuw voor me was.

Het leuke is dus dat je dit ook gewoon als aanraakbordje kan gebruiken zonder dat er een scherm achter zit. Je kan er op schrijven of je kan er gekleurde tekstvlakken op aanbrengen die dan als toetsen kunnen dienen. Je zou bijvoorbeeld een mp3speler kunnen besturen door knoppen play, pauze en skip in te kleuren. Je zou zelfs een langere 'swipe' balk kunnen kleuren om het volume te regelen à la iPhone. Maar dan voor twee dollar ;-)


Dit was vroeger de reden waarom ik dat soort spullen links liet liggen. Zo'n kleine miniconnector die duidelijk bedoeld is om in een klein apparaatje te plaatsen dat wellicht zo ingewikkeld is dat ik zoiets nooit zelf aan de praat zou krijgen.






Maar tijden veranderen en als de koperen baantjes één millimeter of zelfs iets minder uit elkaar liggen, dan schrikt dat me niet meer af. Wellicht bestaat er wel een mooie connector waar dit in past, maar die is dan wellicht duurder dan het schermpje zelf. Daarom riskeer ik het zo tegenwoordig en het lukt altijd. Toegegeven, met zo'n macrolens erop lijkt het een vreselijk foute boel soldeergewijs, maar hou er rekening mee dat dit dus drie keer kleiner is dan wat je manueel kan solderen.



Op die manier kan ik er dus wel mee aan de slag, want de zwarte pinnetjes onderaan passen in elk doe-het-zelf projectje dat ik de laatste maanden in elkaar knutselde. Een gewone Arduino zou ook lukken, hoor.

De enige reden waarom dit connectortje nu zo in beeld komt is omdat er voor de rest echt niks aan is. Ik kon het bijna niet geloven, maar dit is niks hightech. Er zijn geen moeilijke drivers nodig en je moet geen extra elektronica bijbestellen. Het scherm heeft vier aansluitingen en tussen de draadjes zit er een weerstand die verandert naargelang waar je op het scherm drukt. Twee draadjes voor de x-as en twee voor de y-as. Dat was alles.


En toen kreeg ik het meteen aan de praat. Let wel, het gaat over het aanraakscherm. Mijn naam schrijven met servo's was optioneel.

En voor de duidelijkheid: de servo's bibberen, ik niet :D



zondag 2 februari 2014

Lichtkrant

Ik vroeg me af waarom dit zo duur was. Dit is een redelijk standaard lichtkrant die je overal in de plaatselijke kleinhandel wel ziet hangen om relevante info te tonen die de kleine zelfstandige de wereld wil insturen.


En dit kwam ik tegen bij mijn Chinese vrienden op AliExpress.

Als er een discrepantie van een factor 10 tot 100 in een prijs zit, dan word ik nieuwsgierig. Ik wil dus zeggen: als je het aantal lichtjes dat je hier ziet gaat tellen en dan uitrekent hoeveel de kostprijs per lichtje is in de lichtkrant van de plaatselijke frituur, dan betaalt de friturist dus 10 tot 100 keer meer dan wat deze dingetjes kosten.


Ik weet natuurlijk dat deze lichtjes moeten bestuurd worden en dat daar elektronica voor nodig is. Iemand moet daar ook over nadenken, dus er komt heel wat software aan te pas. Maar je blijft met de originele factor 10 of 100 zitten omdat ik er toch vanuit ga dat de duurste onderdelen in een lichtkrant de lichtjes moeten zijn.

Je kan dat op één manier ontdekken. Je koopt er zo 30 en je gaat er mee aan de slag ;-)

Dit is het ontwerp dat ik gemaakt heb voor drie van die 'letters'. Er kunnen dus drie matrixen van vijf bij zeven lichtjes op één printplaatje. Natuurlijk is dat waardeloos, want je hebt met drie cijfers of letters geen lichtkrant. Je zou dus vier of vijf van die printjes naast elkaar moeten plaatsen en ze verbinden met elkaar. Dat is voor zover ik het nu zie de reden waarom het zo duur is. Simpel gezegd: het zijn gewoon te veel lichtjes.

Dus niet de prijs per lichtje, maar wel de besturing is een ramp. Je kan om te beginnen niet alle lichtjes samen aandoen, want dan zou je een microcontroller moeten hebben met één uitgang per LED. Je hebt dus veel elektronica nodig (om te beginnen een multiplexer) om alles bestuurbaar te houden.

Laat dat nu net niet mijn bedoeling zijn. Ik ga proberen om één microcontroller per drie letters te voorzien. De bedoeling is dat je één printplaatje zal krijgen voor drie letters. De microcontrollers zullen dus onder elkaar moeten beslissen welke LED's moeten aan- en uitknipperen als er een tekst voorbij loopt. Door die manier van werken maak ik de software heel moeilijk, maar de besturingselektronica heel makkelijk. Enkel één chip per drie letters, geen extra besturingselektronica voor grote stromen door de LED's en geen multiplexers.

Het is een theorie die ik alleen kan uittesten door de print echt te maken omdat het onbegonnen werk is om dit met draadjes op een experimenteerbord uit te testen. Maar als mijn berekening klopt, zal de lichtkrant net licht genoeg zijn om ze te kunnen lezen. Daar zit immers het grootste probleem: de LED's zullen maar één zevende van de tijd branden. Als alle LED's op één rij allemaal samen branden, zal ik stroom tekort komen. Ik ga gewoon zorgen dat ik ze dus nooit allemaal samen laat branden. Simpele problemen hebben simpele oplossingen ;-)

Zag je trouwens de vorige foto van mijn printplaatje? Cool ontwerp hè, als je ziet dat ik enkel dit heb getekend:


Ik heb een website gevonden (http://mayhewlabs.com/3dpcb) die dit saaie groen/zwarte scherm in 3D kan omzetten. Zo kan je zelfs de componenten op je printplaat echt zien staan, nog voor je ze in 't echt maakt. Zo had ik kunnen vermijden dat ik in mijn vorig ontwerp een connector moest afzagen omdat ie een chip raakte. Dat zie je dus niet als je de print ontwerpt.



donderdag 25 juli 2013

Het wauw effect

Ik denk anders dan andere mensen. Toch is de denkwijze van de andere me niet vreemd, want ik heb ze ook. Alleen is er een analytisch kantje dat soms beter wat zou worden onderdrukt.

Als je nadenkt over wat een mooie geocache moet zijn, kan je dat op een aantal manieren doen. Het gaat nu over een grote multicache met heel veel waypoints die al zo goed als helemaal is uitgewerkt. Vele liggen al ergens ten velde want de verhalen over de praktische uitwerking na een geniaal idee kwamen me al ter ore.

De laatste stap is wat wij dan in het jargon de final noemen. Dat moet de bekroning worden van een tocht die je niet snel zal vergeten. De final zelf moet dus ook zeker die indruk nalaten. En hier kom ik dus aan te pas, want er hoort veel electronica bij die dingen gaat vragen via toetsenbordjes, dingen gaat tonen via displays en dingen doet bewegen met servo's.

Het idee was uitgewerkt aan de hand van de puzzels die onderweg dienen opgelost te worden. De resultaten van die puzzels zou je dan nodig hebben om de doos van pandora te openen die door de electronica wordt bestuurd. Nu ja, de doos bevat geen narigheid hoor, wellicht zal je een logboek en wat speeltjes kunnen verwachten zoals in de meeste caches.

Ik zei nog dat de manier om de doos te openen veel te ingewikkeld was. In de redenering werd er vanuit gegaan dat displays en toetsenborden niet zoveel kunnen. Maar je kan op één display meerdere zinnen na mekaar tonen. Naargelang wat je ingeeft op een toetsenbord, kan de logica die volgt variëren. Ik ben flexibel hoor, het kan alle kanten uit ;-)

Alleen, dan vergat ik één element. Het belangrijkste element! Als ik zelf de mooiste cache van 't land zou willen maken (wat hier de bedoeling is) zou ik het namelijk ook zo doen. Het element is het wauw effect. De final in mijn hoofd was efficiënt en had net de juiste onderdelen die nodig waren. Zijn final was veel groter en enkele onderdelen waren overbodig.

Maar als je mijn final zou zien, zou je denken: hmmmm... mooi.
Bij zijn final zal je denken: WAAAAUW !

Dus binnenkort ligt de mooiste cache van 't land in de Kempen. Voor minder gaan we niet. Allee, laat ons hopen hè, we moeten hem nog wel maken ;-)

woensdag 24 juli 2013

Stupid, stupid me

A man with a plan! En alles was goed hoor. Eerst was er de nieuwe techniek die ik onder de knie moest krijgen om Atmega8 microcontrollers te solderen. Nee, er was nog een stap daarvoor! Eerst printplaatjes maken met koperen baantjes die dicht genoeg bij elkaar lagen zonder dat ze kortsluiting gaven.


Dat lukte maar half, maar het heeft enkel te maken met de slechte kwaliteit van het basisproduct (goedkope Belgische printplaten!). No probs there, dat los ik wel op als het echt juist moet zijn. Maar de chip zit goed vast en ik kan dit makkelijk herhalen. Het werkt in elk geval heel goed, dat is het belangrijkste.

Het printplaatje is nu achteraan op een display gemonteerd. Het leuke aan de display die ik nu bestuur met deze chip is dat ik me geen zorgen meer moet maken over zonlicht. Een LCD display geeft geen licht, maar hij verkleurt. Het is niet het meest flashy moderne type, maar het is altijd heel duidelijk, zowel in zonlicht als in het donker. De eerste foto is zonder flits genomen en dan verlicht de achtergrondverlichting de display zodat het heel duidelijk is.


Bij de tweede stond de flits wel aan en het blijft zeer duidelijk leesbaar, net omdat de puntjes zwart kleuren. Een 7-segment display zou je nu niet meer kunnen zien. Zo zou ie er dus uitzien in volle zon. Dat is leuk want ze zijn bedoeld voor de buitenlucht :)
Zonder achtergrondverlichting is zelfs zonneënergie een optie nu, want ze verbruiken erg weinig.


Maar waarom dan de titel stupid, stupid me? Wel daarom:


Het is goed hè, maar de bedoeling was anders. Ik heb speciaal dit type display gekocht van 2 regels van 8 karakters omdat er exact de 2 coördinaten van een waypoint op zouden passen. Je kan immers met 7 cijfers en een graden-teken één coördinaat tonen. Nu redeneerde ik dus uit mijn 7-segment gewoontes en dan klopt dat ook. Maar in een tekstdisplay neemt het puntje (de komma) óók één plaats in! Je hebt dus geen acht posities nodig (zoals bij een 7-segment waar het puntje apart naast het cijfer staat) maar negen.

Gelukkig heb ik ook alle andere modellen in huis van 1x16, 2x16, 4x20 karakters. Ik kan dus nog alle kanten op, maar dit is toch een beetje een kemel.

Ach ja, het belangrijkste van de test was dat alles werkt en dat ik vanaf nu de Atmega8 chips kan gebruiken. Gelukkig maar, anders moest ik deze doos al weggooien.

Ken je dat? Zo maar ineens een doos bestellen voor je weet of het werkt? Zelfvertrouwen is dat! Of gewoon ondoordacht?

Maakt niks uit hé, het werkt :D

zaterdag 29 juni 2013

7 Segment part II

Het werkt dus wel hè, moest je twijfelen aan mijn laatste printplaatontwerpjes. Voor de duidelijkheid: ik wil nu 4 cijfers gebruiken om een coördinaat te tonen ergens in een bos.

Van deze soort heb ik er nu 3 gesoldeerd en me eerst eens geconcentreerd op één belangrijk aspect. De vraag is nog steeds hoe lang de mini batterijtjes meegaan die ik en masse in China kocht. Ze kosten niks, dus ik veronderstel dan dat ze waardeloos zijn.

Hoe je dat test? Eén van de 50 batterijen opofferen en zien wanneer ie leeg is hè. Je moet dat niet te moeilijk maken. Ik ben ervan uit gegaan dat ik de display op een donkere plaats in een bos zal leggen. Denk aan onderaan in een boomstronk of zo. In de zon kan je dat vergeten, want dan moet je zoveel power geven dat het batterijtje meteen op is. Ik heb mijn software wat veranderd zodat het behoorlijk wordt gedimd: het verbruik ligt op 6mA (i.p.v. 80mA maximum) en de batterij van 3V mag niet onder de 2.5V zakken, anders zal mijn microcontroller stilvallen.

Hoe lang dat duurt? Ik hoopte op toch minstens 1u, anders zou ik vaak naar mijn bos moeten hollen om de batterij te vervangen. Als iemand de display aanschakelt voor 2 minuten heeft ie het wel gelezen, dus dat zou 30 logs zijn per batterij en da's wel heel nipt.

Zo heb ik de test gedaan. De linkse meter toont de spanning, de rechtse de stroom. De spanning is nu ik dit schrijf nog steeds meer dan 2.6V en we zijn al 7u verder! Wie zegt dat Chinezen rommel verkopen ? ;-)

donderdag 27 juni 2013

Blijven oefenen

Het is een beetje vreemd toch deze keer. Een nieuw ontwerp wou ik eerst één keer als test om daarna een printplaat met 12 stuks "in productie" te nemen. Het gaat opnieuw over een display en een chip die coördinaten moet tonen op de display. De display is nu 4 cijfers breed in plaats van de 2 die ik eerder in dit potje voor glucosestrips had gefriemeld.

Maar het liep dus mis. Het liep zelfs keer na keer mis. Ik wil eerst één ontwerp solderen om te zien of alles wel werkt voor ik twaalf stuks ga maken. Eerst zat ik dan ook met het idee dat ik enkel één ontwerp moest hebben, maar voor de veiligheid maak je er toch best twee. Printplaten maken is nog altijd een delicaat werkje en vaak komt het niet goed. En zeker niet met dit ontwerp. Er zitten maar liefst 8 koperbaantjes tussen de aansluitingen van de chip. Vroeger kon ik op die afstand met moeite drie banen etsen, nu ligt de lat dus veel hoger.

Uiteindelijk is dit toch één exemplaar van de drie die bekwaam zijn. In totaal heb ik er veertien geprobeerd, en buiten die drie waren ze allemaal mislukt. Geef toe dat dit op een beetje "ruis" na een pareltje is. Ik heb zelfs een goede font gevonden die je ook kan lezen deze keer ;-)

Maar dit was een lucky shot en de rest was dus slecht. Deze print is dan nog de mooiste van de pogingen. Dat het niet lukt is best raar, want ik doe helemaal niks anders dan de vorige keer. De eerste poging was met printplaten van een ander merk, en meteen gaf ik dat de schuld. Maar ook op mijn goedkope manier, dat zijn Chinese printplaten die ik zelf een fotogevoelige laag geef met een spray, was het resultaat slecht.


Ik begon dan ook te twijfelen aan mijn origineel ontwerp, want het lijkt alsof steeds de bovenkant van de print slecht is en onderaan is ie soms bruikbaar. Ik dacht dus aan de nieuwe laserprinter die misschien niet zwart genoeg afdrukt. Alleen, je kan dat dus helemaal niet zien omdat alles veel te klein is. Je kan ook geen foto nemen van een transparant want dat is niet duidelijk genoeg.

Dan heb ik toch deze foto kunnen nemen met de iPhone, die maakt zich minder zorgen over focussen op korte afstand. En tegen de avondzon zag ik dus wel dat het zwart is. Ik kan nergens door die baantjes kijken, dus ook het UV licht uit de belichtingsbak zal er dus niet doorkunnen.

Hoe het dan wel misliep weet ik niet zeker, ik gok op een slechte verdeling van die spray op de printplaat. Je moet die laag aanbrengen en dan een half uur in de oven laten drogen. Toevallig zal daar twee keer iets fout zijn gelopen.

Maar we blijven proberen..


donderdag 13 juni 2013

Next Generation Nerd


Die displays blijven me bezighouden natuurlijk. Alleen al omdat ze zo'n vreemde aansluiting hebben die zo goed als onbruikbaar is. Het is een rubberen band van iets meer dan één centimeter breed en één millimeter hoog. De contacten moeten van koper zijn want ze geleiden.

Maar het is bijna onmogelijk om er een draad aan te solderen. Toch werkt dat in die duurdere versie van de display die ik kocht en waar zo'n printje aan vasthing. Door dat printje kon je hem verbinden met een Arduino, maar de 10 goedkope exemplaren hebben dat niet en nu moet ik mijn plan trekken.




Je kan dat mysterie maar op één manier ontrafelen en dat is door zo'n display met print die werkt los te solderen. Daar schuilt het risico in dat ik iets openmaak en meteen om zeep zal helpen. Gelukkig was het niet zo en wat ik al vermoedde blijkt te kloppen. Het is trouwens heel goed nieuws, want de oplossing is zo eenvoudig dat ik meteen aan de slag kan.

Het eerste dat opvalt is dat ik in 't zak ben gezet! Het is helemaal geen scherm van een Nokia 3110, maar van een 5110. Dat is een heel ander model, maar blijkbaar is het scherm nogal gelijkaardig op wat details na.

Zo ziet het printplaatje er in detail uit op de plaats waar de connector aan de print vastzit. Dat klopt zelfs helemaal niet, ze zit niet vast. De rubber drukt enkel tegen het prinplaatje en op die plaats zijn er negen koperbaantjes die niet bedekt zijn en dus zo geleiden. Simpeler kan bijna niet. Dat moet nu lukken dat ik net opnieuw leerde om printplaten te maken, en dat moet nu lukken dat ik net dit fijne werk nu moet aankunnen.






De vraag blijft of het in de echte telefoon ook zo was.

Moet dat nu lukken zeg, dat ik deze antiquiteit nog had liggen.

En ja hoor! Het eerste wat opvalt is dat ongeveer dezelfde acht (oei, maar acht??) koperen baantjes aanwezig zijn.




Links zie je de acht pinnetjes van de display (en ja, die zijn dus van een 3110 en dus ook niet van rubber en dus ook weer helemaal anders) en rechts de acht baantjes. Druk ze op elkaar en floep, alles gaat geleiden en het scherm vraagt naar een simkaart.






Nu is dus de vraag of ik hetzelfde printje zelf kan maken. De acht (of negen? help!) baantjes zullen zeker lukken, die krijg ik wel fijn genoeg ontwikkeld. Alleen moet de display daarna exact, tot op minder dan 0.3mm op zijn plaats kunnen liggen op het zelfgemaakte printje.

Het is een uitdaging maar het zal zeker lukken.

Wat viel me nu het meeste op? Vroeger opende ik wel vaker een GSM en dacht: ai ai ai wat is dat voor een hoop kleine micro ellende. Nu denk ik: hé, ik kan hier van alles mee doen. De knopjes besturen met een Arduino, het scherm gebruiken, de trilmotor aansturen, de batterij en de simkaarthouder hergebruiken.

Next generation Nerd :D