Author: Lucas

MainsSensor is een klein printje dat gebruikt kan worden om te monitoren of iets nog “aan staat” , bedoeld om in de MakerSpace bij de deur een reminder te geven als je als laatste weg gaat en b.v. de compressor staat nog aan. (Of een van de andere apparaten die uit moeten, b.v. ook de ruime kilowatt aan verlichting).

Voor wie niet de hele zooi wil lezen, staat onderaan een demonstratiefilmpje.

Het printje bevat een attiny10 en een 433 MHz zendertje. (Vanwege die Attiny10 was ik vorige post dus met een usbasp bezig, de AVR dragon kan geen TPI).

Als het printje voeding krijgt, stuurt het via 433 MHz een bericht met een uniek ID en de status “aan”. Dit bericht wordt af en toe (elke 30 seconden) herhaalt: “ik ben er nog”. (Het HI-bericht).

Als de voeding wegvalt, wordt hetzelfde ID verzonden, met de status “uit”. (Het BYE-bericht). Dit BYE-bericht wordt direct enkele malen herhaald, tot de bufferelco leeg is.

Wat ik leuke aspecten van het mainssensorproject vond:

  • MainsSensor wordt rechtreeks uit het lichtnet gevoed*, via een seriecondensator. Voeding uit 12VDC is ook mogelijk.
  • MainsSensor moet een bericht versturen als de voeding nèt is weggevallen.
  • Het moet compact (Om er nog bij te passen in de bestaande behuizing van eender welk apparaat), dus:
    • de antenne voor de 433 MHz zender zit op de print ge-etst.
    • Spelen met een attiny10 in SOT23-5 (microcontroller, indeed! Dat ding is klein.)

Het schema en de software staan op github.

C1 is de seriecondensator, 47nF / 630VDC X7R in 1210 behuizing. Deze begrenst de stroom op ongeveer 3,2 mA. (Dergelijke ceramische SMD condensators in andere waarden worden ook toegepast als seriecondensator in ledlampen, lekker compact.) (In deze discussie op circuitsonline.net wordt over een dergelijke schakeling gefilosofeerd). R8 van 1k beperkt de inschakelstroom (en eventuele kortsluitstroom mocht C1 falen), en omdat dit een flameproof / fusible weerstand is fungeert deze ook als zekering.

Met die 3 mA wordt de bufferelco C2 geladen, waaruit de 433 MHz module wordt gevoed. Met een 12V zenerdiode D3  wordt de spanning begrenst op 12V. (De stroom verdeeld zich in de laadstroom voor de bufferelco, het gebruik van de schakeling, en de zenerdiode. Als de schakeling de 3 mA niet opmaakt, zal de bufferelco opladen tot de 12V bereikt is, daarboven gaat de zenerdiode geleiden). Via R6 en 5V zener D4 wordt 5V gemaakt voor de microcontroller.

Vòòr C2 zit D2, zodat vòòr D2 gemeten kan worden of de voeding wegvalt, zonder dat de bufferelco eerst leeg moet zijn om hier geen spanning meer te meten. Die buffer is immers nog nodig om de schakeling te voeden om een “uit”  bericht te sturen. C4 vlakt de te meten spanning af, R7 is hiervoor de belasting zodat C4 ontladen wordt als de voeding wegvalt. R3/R4 zijn een spanningsdeler.

C3 is 10 uF ceramisch, dicht bij de microcontroller als ontkoppeling, en tevens als buffer na R6. (Anders zou er een elcotje na R6 over D4 gestaan hebben, en 100nF ceramisch naast de micro – 10u ceramisch is compacter).

Voor het berekenen van de bufferelco is een schatting gemaakt: er is van uitgegaan dat het versturen van een bericht 1/40 s  duurt en 30 mA gebruikt. De bufferelco mag daarbij maximaal iets van 3 V dalen en moet dus minimaal I*dt/dV = 334  uF zijn. Om meerdere berichten te kunnen versturen en de tolerantie van een elco op te vangen is er 1000 uF geplaatst. In de praktijk voldoet dit uitstekend, ook al wijkt de daadwerkelijke tijdsduur en het stroomgebruik af van de inschatting, het goodbye-bericht kan ruim 2 seconden lang herhaalt verstuurd worden. (In het stadium van het project dat ik deze schatting maakte, noemde ik het nog MainsSpy en dacht ik nog Hamming(7,4) encoding toe te passen. Zie whiteboardfoto. Maar omdat het doel juist geen big-brother-robotnanny-spionage is maar een hulpje om dingen uit te zetten, heb ik het hernoemd naar MainsSensor. En forward error correction is hier niet nodig, dus geen Hamming(7,4). )

whiteboard-geklad uit een vroeg projectstadium, o.a. buffer elco inschatting
Buffer inschatting en andere projectnotities, uit een vroeg stadium van het project.

Dan de PCB antenne. Hiervoor heb ik me gebaseerd op een appnote van Murata (AN0036). Ik heb 2 PCB ontwerpen gemaakt, bij de eerste poging (rode printjes, V1.0) was de antenne veel te lang. Dat liet zich goed meten met de VNA (VNAart :)). Van de rode printjes met te lange antenne kan deze worden ingekort door het printspoor door te krassen, waarna opnieuw met de VNA gemeten kan worden wat de antenne-eigenschappen geworden zijn. De antenne van de gele printjes (v1.1) is ook iets te lang, maar minder dramatisch.

De meetresultaten variëren van exemplaar tot exemplaar, waarbij ook de veranderende eigenschappen van de veranderende meetopstelling meespelen, maar rekening houdend met dat voorbehoud: de antenne van de rode printjes resoneert op ongeveer 334 MHz, de SWR is daar ongeveer 3,9:1. Op 433 MHz is de SWR ongeveer 13:1. (meting 190609 153659). Met het inkorten van de PCB antenne op het rode printje wordt deze veel gevoeliger voor andere objecten in de buurt, maar kan deze bijvoorbeeld (meting 190609 155321) uitkomen op een resonantiefrequentie van 442 MHz met een SWR van 1,8:1 – de SWR op 433 MHz was ongeveer 2:1.

De nieuwe gele V1.1 printjes hebben (meting 190702 190935) een antenne met een resonantiefrequentie van 449 MHz, de SWR is daar ongeveer 2,5 :1. Op 434 MHz is de SWR ongeveer 4:1. Dat is dus stukken beter dan de 13:1 van een ongemodificeerd rood printje.

Verder bleek bij het schrijven van de software dat 32 bytes RAM toch wat weinig is. Het ID in ram werdt overschreven in de interrupt routine (ISR). Daardoor werdt ook dit aspect van het project interessanter dan voorheen gedacht.

Oorspronkelijk stond het ID hardcoded en was vrijwel alles al bekend bij compile time. Omdat de attiny10 zuinig moet zijn, loopt deze op een trage (128 kHz) klok. Tijdens het verzenden van een bericht beslissingen maken zou de timing verstoren, dus het te versturen bericht werdt tevoren in ram klaargezet. Er worden HI-berichten verstuurd zolang de sensor (en het apparaat) aan staat, en BYE-berichten als het apparaat (en de sensor) wordt uitgezet.

Later is een crc toegevoegd, waardoor er wat meer ram gebruikt wordt, hetgeen ertoe leidde dat de stack het ram in groeide bij de context switch bij de (pin change) interrupt die gebruikt wordt om te meten of de voeding is weggevallen, met dus als gevolg het overschrijven van de variabele met het uit-te-zenden bericht.

Omdat het niet erg is als de microcontroller reset en opnieuw begint bij het terugkomen van de spanning, heb ik ervoor gekozen de ISR zonder context save / restore uit te voeren (“naked” ISR). Om de microcontroller gegarandeerd te resetten, ook als de voeding terugkomt voordat de bufferelco leeg is, wordt bij het ingaan van de ISR de watchdog timer (WDT) op 2 seconden ingesteld. Zodoende wordt de microcontroller 2 seconden later gereset. Er is dus geen context restore en return from interrupt. Dit scheelt 13 bytes ram (van de 32).

De software aan de ontvangstkant is onder te verdelen in een aantal lagen:

  • De ontvangstlaag (datalinklaag)
  • De verwerkingslaag (Applicatielaag)
  • De presentatielaag

De ontvangslaag verwerkt de ontvangen bits tot berichten, die doorgegeven worden aan de verwerkingslaag. De verwerkingslaag slaat de ID’ s en de status van de ontvangen sensoren op. De presentatielaag haalt hier de naam van het apparaat bij en toont deze informatie.

De ontvangstlaag is een state-machine rond een timer-interrupt die de ingang polled om de startconditie van een bericht te detecteren. Eenmaal een startconditie gevonden, wordt een pin-change interrupt gebruikt om de rest van het bericht binnen te halen.

De verwerkingslaag slaat het ID op, en houdt bij welke apparaten nog aan staan d.m.v. een timestamp en de BYE-berichten. Als een apparaat zich niet afmeld met een BYE-bericht wordt het als “uit” beschouwd als er  enige tijd (anderhalve minuut) geen HI-berichten meer ontvangen zijn.

De presentatielaag geeft de informatie over wat er nog aan staat weer via een seriële verbinding en op een LCD. Op het LCD worden ook de ingestelde namen van apparaten getoond. De naam/ID koppeling wordt opgeslagen in het EEPROM van de atmega328.

De code van zowel de zenderkant als de ontvangstkant is ruimschoots voorzien van commentaar, dus bij verdere interesse in de werking: kijk op github.

Voor wie geïnteresseerd is in de berichtstructuur, is deze op de MakerSpace Wiki  gedocumenteerd. Ook alle andere documentatie staat daar.

Mocht het hierboven ingesloten filmpje niet laden is hier de link naar youtube.
En voor wie verder nog vragen of opmerkingen heeft, is onder deze blogpost een reactiemogelijkheid 🙂

*) De bijna verplichte waarschuwing: Let er dus op, mocht je dit nabouwen, dat de hele schakeling met het lichtnet verbonden is. De 5 VDC voor de microcontroller is dus, ten opzichte van aarde, nog steeds 230 VAC. Er is geen isolatie, en als je de “5V” zou aanraken, raak je 230 V aan. Niet doen dus. (Ditzelfde geldt voor de 12V).

Recently I bought an USBasp, or at least that’s what I thought. I bought a clone that was advertised as  “USB ISP USBasp USBisp Programmer for 51 ATMEL AVR download support Win 7 64 (RANDOM COLOR)”, marked on the case as “USB ISP version 2.0” and “MX-USBISP-V5.00” on the PCB.

I intend to use this as a TPI programmer for attiny10, so I need the USBasp firmware that supports this. But it turned out not to be compatible… Unless the hardware is modified 🙂 . (So that’t what I did)

USB isp PCB and case
On the case it is labelled USB ISP version 2.0. On the PCB MX-USBISP-V5.00.

Upgrading the firmware is easy. Connect the 10pin connector to another programmers 10 pin Atmel ISP connector, put a jumper wire on the USBasp “update jumper” (Labelled “UP” in above picture), power the “usbasp-clone”, and load the new firmware using the other programmer. Plenty tutorials for that at various places on the web.

However… Before I updated the firmware, the USBasp was seen by my computer, as an “Atmel Incorporated”. After the update, it did not connect any more. It did not show with “lsusb”, and nothing in “dmesg” either. So, after the update, it does not work any more. I broke it. Let’s see if I can fix it too.

Turns out, the USBisp v2 I bought has a slightly different schematic. Among other differences, there is a 0R resistor on the board that connects one of the USB lines to another MCU pin (PD3). PD3 is unconnected in the original schematic. After removing this resistor, it worked again and connected to my PC as a “Van Ooijen Technische Informatica shared ID for use with libusb”, and it is usable with AVRdude as an USBasp (I tested reading an attiny10’s flash, and it worked).

Before that, I tried other modifications that might be needed also, but that by themselves had no effect. The other differences where that my board had a 1k8 pull-up on the USB D- line (R3 in original schematic), and R1/R2 where 100 Ohms instead of 68. So I replaced those resistors with the original values, just in case, but I think it would have worked with 1k8 / 100R.

Also I cut the trace from PD6 to one of the LED pins, as that connection is also not in the original schematic.  And while I was at it, I added a decoupling cap on a vacant spot on the PCB and soldered the mechanical pins on the USB connector.

After all these modifications, it looks like this:

modified USPisp
Modified USBisp
Zoom in to see the red dots marking changed components and the red line indicating the trace I cut.

So now, I have a TPI programmer for my Attiny10’s. And if you bought the same or a similar enough USBisp or USBasp and ran into the same issue putting USBasp firmware on it, now you know how to fix it 🙂 (See first picture for PCB & case markings).

In aanvulling op Opgelost: RC522 RFID lezer leest (sommige) kaarten niet. (Deel 1):

Eigenlijk heb ik een groot deel van wat ik van plan was in deel 2 te schrijven, toch al in deel 1 verwerkt. Er zijn echter een paar “losse eindjes”.

Van de blauwe kaartlezers uit deel 1 bestaan vele varianten (ook in andere kleuren, maar ik doel vooral op de pcb-antenne). Er bestaan echter ook kaartlezers met dezelfde chip, die via I2C communiceren (ipv. SPI). Bijvoorbeeld onderstaande groene:

RC522 I2C
Groene mini RC522-I2C RFID lezer

Ik heb daarvoor de bestaande SPI-library aangepast: https://github.com/lukelectro/rfid/tree/I2Csupport . Er zijn meerdere (en andere) I2C RFID library’s voor deze chip, daar kwam ik echter pas later achter. Het blijft een leuke oefening in OO-programmeren (Mede om die reden heb ik overerving gebruikt. Het had eenvoudiger gekund door de bestaande library te slopen en deels opnieuw te schrijven, maar dan voor I2C. Of nog beter: door communicatie met de kaartlezer te scheiden van de rest van de library en mogelijkheden te maken voor I2C, SPI en UART.).

Deze groene kaartlezer werkt erg goed. Uiteraard, geen enkele garantie dat als je er nu een (aantal) besteld, je dezelfde krijgt als waar ik mee getest heb, waarschijnlijk bestaan er ook meerdere varianten van.

Verder was ik ooit van plan nog wat meetgegevens te posten van de “blauwe” kaartlezers, maar daar zie ik denk ik maar van af. (Ik zou dan moeten uitzoeken welke meting ook al weer waar bij hoorde, plus dat er dusdanig veel varianten van deze lezer zijn dat je eigenlijk zelf zou moeten meten als het niet werkt met de condensatorwaarden die ik eerder postte. Bovendien, en dat is wellicht het belangrijkste argument: Ik werkte toen voor het eerst met een VNA en zou dus zomaar eens meetfouten gemaakt kunnen hebben). Mocht het je echter toch interesseren, vraag dan gerust in de reacties.

In “Show Your Projects” op CircuitsOnline.net heb ik dit project al eerder getoond, maar het is ook wel een blogpost waard denk ik. Al is een blog natuurlijk eigenlijk bedoeld om te mekkeren over dingen als een gebroken arm wegens een onoplettende automobilist*, maar ook dàt had ik al op CO geuit. Blijft dus over om hier het schema van de jongleerkubussen te posten, en wellicht te linken naar de software en de files die je nodig hebt om de behuizing te printen. Zodat alles mooi bij elkaar is.

En aangezien al die benodigde informatie al gelinkt is in bovenstaande, blijft de rest van deze blogpost over voor meer foto’s.

Want als u zo ver gelezen heeft als dit vraagt u zich allicht af hoe een “RGB jongleerkubus” er nu uit ziet, wat je er aan hebt, en/of hoe ik op het maffe idee ben gekomen ze te maken. Al weet u dus alvast waarom een verdere jongleerdemonstratie in foto of videovorm wat langer op zich zal laten wachten. [sensuurbliep] automobiprutser*! (bovenstaande jongleerfoto’s zijn uiteraard van eerder datum. Plan was eigenlijk voor m’n blog wat foto’s te maken met de MakerSpace als sfeervolle achtergrond, ipv mijn kast. Ja, die muur is geel, nee, dat ligt niet aan de foto. Ja ik kan met 1 hand tikken :). )

Om te beginnen met waarom: ik wilde een step-up led-driver maken, om iets te doen met RGB leds op een 3,7V lithiumcel waarbij ook blauw en groen fatsoenlijk stroombegrenst zijn. En daarmee gelijk de hardware van de stm32f030 beter leren kennen.

Een simpel serieweerstandje bij een blauwe led gaat het niet redden, als de stroom constant moet zijn: de accu kan variëren tussen de 4,2 V wanneer vol en de 3,0 V wanneer helemaal leeg. De spanningsval over de led is b.v. 3,2 V bij 20 mA. De weerstand zou dan 1 V / 20 mA moeten zijn als de accu vol is, oftewel 50 Ohm. De weerstand bij lege accu zou -0,2 V / 20 mA moeten zijn… Dus negatief 10 Ohm. En dan nog keurig mee variëren met de accuspanning ook… Da’s wel een heel bijzondere weerstand… vandaar de wens voor een step-up leddriver. Met enkele LED’s in serie blijven ze op 4,2V dan gewoon uit omdat de gezamenlijke drempelspanning hoger is, en kunnen ze mooi in stroom geregeld worden met een step-up met terugkoppeling over een serieweerstandje – zie schema.

En RGB leds zijn leuk, maar bewegende RGB leds zijn nog leuker. Verder kan ik een klein beetje jongleren. Dus, vandaar de jongleerbal. Of jongleerkubus. Want dat lijkt makkelijker stevig te printen te zijn, omdat er een boutje in alle 4 de hoeken kan. Een ronde doorzichtige bal uit 2 helften stevig dicht krijgen is een beetje een uitdaging. Die ik uit de weg ben gegaan.

Er zit verder een adxl345 accelerometer in, om het ding te kunnen laten verkleuren op moment dat ‘ie gevangen wordt. Gewoon constant verkleuren kan ook: de “tap” detectie van de adxl wordt gebruikt om van modus te wisselen. Zie software 🙂 En Schema :).

Wat je er aan hebt is dus dat je ermee kunt jongleren. Wat met een lange sluitertijd mooie foto’s oplevert. Al dan niet met 2e-gordijn flits.


Natuurlijk zijn er ook wat uitdagingen, b.v. m.b.t de valbestendigheid. Het blijkt echt nodig de behuizing stevig dicht te schroeven. Als de helften t.o.v. elkaar kunnen schuiven, b.v. omdat in de prototypefase de boel met een elastiekje dicht zit ipv 4 boutjes, schuiven zo de elco’s en spoeltjes van de print af:

Er zijn meer technische uitdagingen geweest in dit project, zoals zwevende ingangen die het stroomverbruik in sleep erg verhogen. Makkelijk te testen op breadboard met weerstandsarrays als externe pull-up:


En zoal wellicht een beetje terug te zien in mijn vorige post: “lol met wireless power transfer” heb ik overwogen de jongleerkubussen inductief te laden. Maar daar omwille van de eenvoud vanaf gezien. Laden via de schroefjes is betrouwbaarder stabiel te krijgen.

Wie geïnteresseerd is in technische details wil ik graag uitnodigen vragen te stellen als comment, dan kan ik daar wellicht weer wat leuks over schrijven. Dit was een meerjarenproject, met allerlei afleiding tussendoor, en om te voorkomen dat de blogpost over het project zelf ook erg lang wordt laat ik het er voor nu even bij.


voetnoot: (armnoot?)
*(die nog minstens zolang ik in het gips zit af en toe op dergelijk humoristische wijze genadeloos te pas en te onpas erbij gesleept zal worden als voorbeeld van hoe het níet moet… Vooral omdat ‘ie is doorgereden vind ik het een [censuurbliep]. Nou kan ík niet door met míjn rijlessen omdat die anonieme prutser er goed aan zou doen er een paar lessen bij te nemen…Ik kan/mag niet eens fietsen! Of jongleren! Neem dan je verantwoordelijkheid en stap uit/oepssorryhulpverleenverzekeringsgegevens… Nouja. dat dus. Kan ik toch nog mekkeren op mijn blog 😛 Ben ik stiekem best goed in.)

Het plannetje met de Sencys filament ledlamp die ik vorige blogpost uit elkaar heb gehaald, was om deze draadloos te laten oplichten. Er bestaan namelijk gadgets waarbij een zwevende ledlamp licht geeft. In theorie kan daar stiekem een batterijtje in verstopt zitten, maar dat is stukken minder leuk om na te maken. Een magneet laten zweven heb ik al eerder gedaan, dus deze blogpost richt zich op het draadloos voeden van de ledlamp.

Resultaat (klik voor groter, “hoover” voor bijschrift):

Daar is natuurlijk het een en ander aan vooraf gegaan, want niks werkt ooit in 1 keer. (En we staan allemaal op schouders van reuzen).

De simpele samenvatting  van het proces dat tot bovenstaande foto’s geleid heeft is:

  1. Zie “zwevende lamp gadget”.
  2. Bedenk dat dat wel eens met Highly Resonant Wireless Power Transfer kan werken, waar je eerder mee gespeeld hebt.
  3. Merk bij demontage van een goedkope ledlamp met seriecondensatorvoeding, dat zo’n seriecondensatorvoeding zich eigenlijk prima leent om een spoel aan te hangen om zo een resonantiekring te maken.
  4. Hang er een spoel aan, meet de resonantiefrequentie, maak nog een 2e kring die op dezelfde frequentie resoneert, voed die met een functiegenerator, en probeer de spanning aan de ledlampkant op te jakkeren tot het ding licht geeft.
  5. Kom er vervolgens achter dat het knap lastig is die spanning te halen. Bedenk: “Goh, wellicht werkt het beter met méér wikkelingen aan de ledlampkant, dan heb ik minder fluxverandering nodig voor dezelfde spanning aldaar, en wordt het dus aan de generatorkant makkelijker.” Pak er bovendien de labvoeding en een fet bij, om niet beperkt te worden door de uitgangsstroom van de functiegenerator.
  6. Herhaal stap 4 met de nieuwe spoel.
  7. Succes!

Hieronder een paar foto’s van stap 2, want “spelen met wireless power transfer” is best lollig. Zo kun je bijvoorbeeld een LED laten oplichten op je inductiefornuis. Ook als de resonantiefrequentie van wat je gemaakt hebt flink afwijkt van de frequentie waarop het fornuis werkt, de LED heeft immers maar een paar milliwatt nodig om licht te geven, terwijl koken kilowatts nodig heeft… Er is dus ruime marge voor slechte koppeling (Dan blijft de LED tenminste ook heel…)

Led op inductiefornuis 😉

Een rode LED heeft een drempelspanning van rond de 2V, maar de filamenten in zo’n ledlamp bestaan uit een heleboel Leds in serie, en hebben een drempelspanning van zo’n 60V. In de sencsys ledlamp staan er 2 in serie, dus ergens rond de 120V zal ik toch wel nodig hebben om die te laten oplichten. Dat is andere koek dan fietslampjes…

Gelukkig, omdat de kring resoneert, kan de spanning flink opslingeren. Ik heb dus geen 120V voeding nodig.

Eerst maar eens oefenen met een neonlampje:

wireless power transfer to a neon bulb
WPT naar een neonlampje

Dat werkt, al wordt de spoel erg warm. De efficiëntie zal dus vrij beroerd zijn. Maar, prima proof of concept. (Ik wist al dát het kon, maar het zelf voor elkaar krijgen is toch de eerstvolgende stap). (In het lasergesneden MDF kastje zit de andere spoel en een oscillator, ingesteld op ongeveer 68Khz – overeenkomstig met de resonantiefrequentie van de spoel bij het neonlampje met de gele 68 nF condensator – dat de getallen overeenkomen is puur toeval).

Daarna maar eens proberen met de ledlamp. Met 23 windingen werkt het niet, dan krijg ik de spanning (op het resonantiepunt) maar tot ongeveer 60V.

Dus dan maar “zo veel mogelijk, mik op minimaal 200” wikkelingen proberen, onder het mom van “met dezelfde fluxverandering, meer spanning”, en opnieuw bepaald wat daar de resonantiefrequentie van is.

Een printstift leek wel ongeveer een bruikbare diameter te hebben, een accuboor kan wel als aandrijving dienen van een geïmproviseerde wikkelaar (Omwentelingen tellen, maar er een beetje naast zitten is niet erg), en met plakband – of “een flexibele koppeling” volgens marketing –  zijn die 2 aan elkaar te zetten:

geïmproviseerde spoelenwikkelaar
Geïmproviseerde spoelenwikkelaar.

Zo’n 270 omwentelingen later… (Nuja, een deel van de foto’s is met de spoel van 23 wikkelingen. Daarbij zijn wel de aansluitingen duidelijker zichtbaar, omdat het dikker draad is).

Daarna opnieuw de resonantiefrequentie bepaald. Dat gaat als volgt: Sluit een functiegenerator aan over de LC (parallel)kring, stel ‘m in op een sinus, amplitude niet heel belangrijk maar ongeveer 1 Vpp oid. Meet met de oscilloscoop (of AC voltmeter), varieer de frequentie, en zoek naar de maximum uitgangsspanning (exacte waarde niet belangrijk). Noteer de frequentie waarbij de spanning maximaal is. (Bij serie-resonantie: waarbij de spanning minimaal is).

Dat is met déze spoel en déze ledlamp toevallig 29 kHz. (Er is een bandbreedte van enkele kHz, 29 kHz is een onthoudbaar getal wat daarbinnen valt, niet het exacte midden.) Mocht je het nabouwen zul je zelf moeten meten, ook als je dezelfde ledlamp zou hebben, want je spoel is gegarandeerd anders. Al zit het waarschijnlijk in de buurt als je dezelfde diameter prittstift gebruikt en exact even veel omwentelingen mist met tot 270 tellen. (Het exact aantal wikkelingen is niet belangrijk, omdat de resonantiefrequentie de stap erna gemeten wordt. Het moeten er alleen niet te weinig zijn. En het is fijn boven de 20 kHz uit te komen omdat het anders hoorbaar wordt voor de jongeren onder ons)

er valt natuurlijk aan te rekenen

Voor wie exacte getallen wil: Spoel 1 aan de generatorkant staat parallel met 520 nF foliecondensators, is ongeveer 48.6uH, binnendiameter 42 mm, weerstand 0.3 Ohm, Q van die kring is 29.5 Spoel 2 aan de ledlampkant staat in serie met ceramische condensators volgens het schema van de ledlamp, resulterend in 4.6nF omdat ze in serie staan. De spoel aan de ledlampkant heeft 270 wikkelingen (of iets meer dus), een binnendiameter van 26 mm, en een weerstand van 9.4 Ohm. Ondanks de hogere weerstand (langer en dunner draad dan de andere spoel) én de grotere verlieshoek van ceramische condensators, is de Q van deze kring beduidend hoger, namelijk 127. Dat is te danken aan de hogere inductiviteit van deze spoel: maar liefst 6.55 milliHenry. Zie ook bovenstaande foto.

Wie uit de Q de bandbreedte wil berekenen, moet er rekening mee houden dat de 29 kHz niet exact is, en bovendien niet in het midden ligt.

De voeding levert 12V, de Fet is een STP16NF06L (maar vooral omdat ik die had liggen, elke goede schakelfet zal voldoen), de opgenomen stroom is ongeveer 200mA als de ledlampspoel níet in de buurt is van de generatorspoel, en loopt op van 400mA tot  ongeveer 1A als de ledlampspoel wél in de buurt is. (beiden afgelezen metertje van de voeding, en het is geen nette DC stroom, zie scopebeeld, dus neem dat met een korreltje zout).

gemeten over de voedingsspanning. Dunne lange draden en pulsvormige belasting, zie foto van opstelling bovenaan.
Sfeerbeeld. Gebroken glazen staafje is hier ook goed zichtbaar. (Lamp per ongeluk laten vallen, buitenkant en filament gelukkig nog heel)

Ook valt te experimenteren met de koppelfactor door een ferrietstaaf in de buurt van de spoelen te houden, of door beide spoelen te steken voor een betere koppeling. Daar heb ik een filmpje van gemaakt: https://www.youtube.com/watch?v=YMGsd-n59TY

Ik heb gebruik gemaakt van de informatie uit dit whitepaper voor dit project. Of eigenlijk de versie uit 2013 (De link verwijst naar de versie uit 2017, die liet zich anno bijna 2019 makkelijker vinden).

Vragen, opmerkingen, aanvullingen, gedachten, spelfouten en dergelijke zijn welkom als reactie!

Dit is een ietwat stream-of-consiousness (Maar dan leesbaarder (hoop ik)) blogpost over een… Ledlamp! Enjoy!

Sencys SCL C35C 5393181

Ik ergerde me er aan dat mijn sencys™ filament kaarslamp knipperde.  Vanaf dat ‘ie nieuw was zat er een 100Hz flikkering in het licht, wat te zien is als “stroboscopisch effect” bij alles wat beweegt in het licht van zo’n lamp. Met je handen wapperen geeft hetzelfde “10-vingers-per-hand” effect als dat het bij oude beeldbuimonitoren gaf. (Jaja, dat heeft opa nog meegemaakt kinders!)

Dus dan maar uit elkaar gehaald om te zien of daar wat aan te doen is. Zit er überhaupt wel afvlakking in het ding? (Voor wie het exacte typenummer wil: SCL C35C 5393181. Ik beveel ‘m niet aan, vanwege dat irritante geknipper.)

Aangezien de “lampenlijm” niet loslaat, heb ik de zaag in de rand van de fitting gezet. Dat werkt, maar is een lastig omkeerbare vorm van demontage.

de zaag er in

(hoewel een ledlamp niet heet wordt, is toch dezelfde lijmsoort toegepast als bij gloeilampen. En die laat alleen los, als je het juist niet wilt, b.v. als je een lamp indraait. Op andere momenten hecht het uitstekend en is het bovendien hittebestendig en watervast.)

In de fotogalerij hieronder is elke stap van demontage te zien, en ook “remontage” en het schema. (Klik op de foto voor groter, “hoover” om het onderschrift te lezen).

Op de eerste foto is ook te zien, dat in de filamenten aan 1 kant een klein gaatje zit als polariteitsaanduiding. Deze kant is verbonden met de + van de afvlakcondensator, dus het is de anode.

De elektronica zit in kunststof. Veel elektronica is het trouwens niet, zie het schema op de laatste foto. Het is hetzelfde als veel andere goedkope ledlampen, alleen de 4.7 nF rechtstreeks over de gelijkrichter heb ik niet eerder gezien. Ook niet in de documentatie van anderen. (Al heb ik niet álle filmpjes van bigclive bekeken. Blijkbaar hebben sommige mensen het demonteren van ledlampen als hobby ?!?!?…. Zegt degene die een uitgebreide en gedetailleerde blogpost schrijft over het demonteren van een ledlamp 😉 )

De afvlakelco is 2.2uF, blijkbaar is dat te weinig om het stroboscopisch effect tegen te gaan. Er is in theorie plek voor een grotere elco (zowel capaciteit als afmetingen), maar zonder de lamp helemaal te demonteren kun je er niet bij om te vervangen, en de lamp daarna weer in elkaar zetten is “nogal een uitdaging”.

Als ander voorbeeld van een andere goedkope ledlamp met dit schema (maar zonder de 4.7 nF): VT-7126 ledspotjes gebruiken ook 2.2uF als afvlakking, maar die kunnen worden geopend op een manier dat ze ook weer heelhuids dicht kunnen, en met 10uF knipperen ze niet meer. (Die raad ik dus ook niet aan, tenzij je geen last hebt van stroboscopisch effect, of houd van het zelf modificeren van ledlampen.)

De gemiddelde stroom door de led’s neemt wel toe bij een grotere afvlakcondensator (En de rest van die discussie is ook interessant). Ze geven dan dus meer licht maar worden ook warmer.

Zonder de lamp verder te demonteren is het wel gelukt het afgezaagde stuk weer vast te solderen, waarbij de elco opnieuw in kunststof is ingepakt (krimpkous).

De lamp werkt daarna weer net zo goed (of slecht) als eerst, maar omdat het er niet netjes uit ziet, niet stevig is én ik eigenlijk de filamenten anders wil aansturen, heb ik alsnog de hele lamp weer uit elkaar gehaald en het schema opgetekend. (En de lamp vervangen door een ander type waarbij ik minder/geen last heb van geknipper).

schema. Overigens, de condensator gelabeld 47 nF is 4.7 nF

Netspanning komt via 33R en 330nF binnen bij de gelijkrichter. Secundair staan de 2u2 afvlakcondensator, een 1M bleeder, en de LED’s. Tot zover het klassieke “goedkopeledlampenschema”. Alleen de 4.7 nF rechtstreeks over de gelijkrichter aan de wisselspanningskant wijkt daar van af. Om de rol hiervan te achterhalen zou het interessant kunnen zijn het schema eens in een simulatiepakket in te voeren… Er is over nagedacht, maar wat is de achterliggende gedachte? Het is een goedkope lamp, dus als ‘ie weg kon zou ‘ie er niet zitten.

Moet ‘ie een inschakelpiek opvangen? Of stoorpieken als op dezelfde groep inductieve lasten worden uitgeschakeld? Maar op DC geredeneerd: De seriecondensator van 330nF is significant groter dan de 4.7 nF, dus als beide condensatoren opladen zal de laadspanning vooral over de 4.7 nF komen te staan, die is als eerste “vol”. De elco aan de dc-zijde van de gelijkrichter is dus ook noodzakelijk (en nuttiger) om de (inschakel)piek op te vangen. Evenals uiteraard de 33R weerstand om de piekstroom te begrenzen.

Al hoeft, uitgaande van de netfrequentie f van 50Hz (T = 20ms), en een worst-case inschakelmoment op de top van de sinus, de 4.7 nF maar lading op te nemen tot de eerstvolgende nuldoorgang, dus 5 milliseconden. De RC tijd van 33R*4.7 nF is echter slechts 0.2 microseconde. Weliswaar is daarna de condensator nog niet vol (63%), maar het is dusdanig veel te weinig dat het duidelijk is dat een verklaring in een andere richting gezocht moet worden.

Op AC zullen de 330nF en 4.7 nF zich als een spanningsdeler gedragen, waarbij de 4.7 nF alsnog de grootste spanning voor z’n rekening neemt omdat diens impedantie groter is. Zou het bedoeld zijn zodat een 330nF met een lagere maximum spanningsrating gebruikt kan worden? Wellicht wat vergezocht. Het blijft speculatie natuurlijk, op deze ceramische condensatoren staat geen opdruk waaruit de specificaties herleid kunnen worden.

Maar er is over nagedacht. Iets met EMI dan? Maar is het erg als de LED’s net wat korte piekstromen krijgen door netvervuiling? Of zouden ze zelf (door hun geknipper en niet-lineariteit) netvervuiling opleveren? Wie gedachten heeft over de 4.7 nF:  laat een reactie achter! (Hoi Aart, mocht je dit lezen. Het was inderdaad jouw idee toen we erover brainstormden in de makerspace)

Wat ook netjes is, is dat secundair een 400V elco is toegepast. Die blijft dus heel, ook als de led’s stuk zouden gaan en onderbreken. Een elco met een rating nét iets hoger dan de brandspanning van de LED’s zou ook werken, maar als de led’s dan stuk gaan en daarbij onderbreken komt er een veel hogere spanning over de elco te staan. Dan kan het elektrolyt gaan koken waarna door de druk de elco openbarst. Omdat de ontwerper hier rekening mee gehouden heeft en een hogere werkspanning heeft gekozen zal dat hier dus niet gebeuren.  Er is dus duidelijk wél op gelet een goede, veilige ledlamp te ontwerpen, maar desondanks knippert ‘ie. Hoe lang zou er over vergaderd zijn?

Terzijde: De sla groeit nog prima.

Ander terzijde: Ik vind het soms ietwat lastig een verhaal te schrijven dat zowel voor de techneut áls de niet-techneut prettig leesbaar is. Niet teveel jargon, maar ook niet te jip-en-janneke. Met wat pech dus zowel teveel jargon áls te simpel. Het is natuurlijk een blog, dus alles kan, en mijn schrijfstijl wisselt dan ook af en toe. Maar laat een reactie achter als je ondanks alles tot hier doorgelezen hebt en er toch wat over wilt zeggen :). Of als ik, ondanks de lengte van deze post, nog iets vergeten ben te vertellen wat je altijd al wilde weten over (filament) ledlampen :P.

EDIT: het is 4.7 nF, geen 47… Dat maakt de “spanningsdeler” theorie absurd en filtering waarschijnlijker.

sla la
Dit is de Sla-La
daarin groeit la-sla
al zijn er nog ruime doorgroeimogelijkheden

(Het is eigenlijk veldsla, maar ja, het groeit in een la, et cetera…)

Ik werkte deze post af en toe bij met nieuwe foto’s. De meest recente status is 09-01-2019.
Daarna heb ik de la-sla uit de sla-la geoogst. Toevallig op dezelfde dag veldsla in het groentepakket, de eerste van het jaar. Kleinere blaadjes, maar wel stukken milieuvriendelijker: de La-sla heeft 46 kWh gekost… (16 uur per dag licht 30W, schakelklok 1W 24 uur per dag. De LED’s zelf zijn 9W, de rest zit in de stroombron en de ventilator. Het kan dus zuiniger… Maar ik ga er van uit dat het een eenmalige (woord)grap is. Als ik b.v. aardbeien of munt in de la ga zetten maak ik ‘m eerst wel zuiniger… Andere ventilator, vooral…)

slala 9-01-2019
9-01-2019
Links uit de slala, rechts uit de koude kas van een échte veldslateler

 

Kijkje ín de slala met het lampje (dat alleen aan gaat als de la dicht is, zodat het lijkt of de sla in het donker groeit als je de la open doet):
https://www.youtube-nocookie.com/embed/p2ySo9aPeXk?rel=0

Magic!

Ik had een pcb voor de circuitsonline voeding gekregen, dus heb ik de rest van de onderdelen gekocht en de voeding opgebouwd in een mooie behuizing.

Het is meer metaalbewerking dan elektronica, maar dat is ook wel eens leuk voor de afwisseling, en ik vind het een erg mooi resultaat. De afwerking van een elektronica-project is immers ook belangrijk.

Ik heb ‘m al eerder getoond in het Show Your Projects topic op Circuitsonline, en ook in het Circuitsonline Voeding-topic.

Ik ben vooral blij met hoe goed het gelukt is de indicatorled’s netjes onder elkaar te zetten op het front. Hierbij heb ik gebruik gemaakt van een X/Y tafel (op de MakerSpace). Het gat voor de voltmeter is met boren, zagen (tafelfiguurzaagje) en vijlen tot stand gekomen.

Ik heb van tevoren een ontwerp gemaakt van hoe ik de frontplaat wilde hebben, in OpenScad, om te puzzelen hoe alles past en om een papieren boormal te maken. Op basis van het ontwerp van de frontplaat heb ik in Inkscape de belettering gemaakt en gepositioneerd. De tekst is aangebracht d.m.v. toner transfer.

Om het draaispoelmetertje te kunnen toepassen heb ik het “overgebleven” opampje van de LM324 Quad-opamp ingezet als buffer. Dat is dan weer wel echt elektronica. Gelukkig was het met een kleine aanpassing aan de onderkant van de PCB redelijk gemakkelijk op een nette manier te doen.

Deel van het schema
Schema van aanpassing

 

schema van aanpassing
Schema van aanpassing – omschakelbare meter

(De serieweerstand van de draaispoelmeter is buiten de meter geplaatst zodat omgeschakeld kan worden tussen de uitgangsspanning rechtstreeks meten, en de uitgangsstroom meten via de inverterende versterker/buffer.)

Voor wie zijn CO voeding in dezelfde behuizing wil inbouwen: Het is een Hammond 1455T2201. Het koelblok dat ik gebruik is een V 6505 van 1.2K/W, die past goed op de achterkant. (Als je de net-entree aan de achterkant wilt hebben, kun je een kleiner koelblok zoeken, maar ga niet onder de aanbevolen 1.5K/W).

Post thumbnail

Last week I got 2 of these displays from a friend who couldn’t get them to display anything. (He knows I like those challenges.) Above picture proves it now works.

What was the case:

The data sheet says (e.g. in the schematic at page 8) a 100pF capacitor should be placed on CLK and DIO lines to GND.

verbatim quote from the data sheet: “100pF capacitor connected to the DIO, CLK communication port pull-up and pull-down can reduce interference to radio communications port.”

The capacitor is probably meant to reduce the signals rise time and thus reduce high frequency harmonics.

On the PCB, a 10nF capacitor was present, and that’s the cause of the display not functioning, just like overly long connections would cause this (when the wire length itself adds to much capacitance)

So, for those of you who bought one of these displays on Aliexpress, DX, or ebay, try removing those 2 capacitors (Or replacing them with 100 pF) if the display doesn’t work.

lowres_tm1637_desolderCsOnDioAndClk_circled
remove those 2 capacitors or replace them with 100 pF

 

Post thumbnail

Afgelopen week kreeg ik 2 van deze displays van een vriend die ze niet aan de praat kreeg en weet dat ik van dergelijke uitdagingen houd. Op bovenstaande foto het bewijs dat het inmiddels gelukt is het displaytje wél aan de praat te krijgen.

Wat was het geval:

In de datasheet staat (o.a. in het schema op blz. 8) een condensator van 100pF op de clock en datalijn naar gnd.

Letterlijke quote uit datasheet: “100pF capacitor connected to the DIO, CLK communication port pull-up and pull-down can reduce interference to radio communications port.” Het zal waarschijnlijk de bedoeling zijn met deze condensator de flanken van het signaal minder stijl te maken en zo minder hoogfrequente harmonischen te hebben.

Op de PCB zat echter een condensator van 10 nF, en dan werkt het niet meer, net zoals het niet meer werkt als de verbindingen te lang zijn (De draden zelf voegen dan dusdanig veel capaciteit toe).

Dus, mocht u/je een van deze displays gekocht hebben bij een van de vele aanbieders op ebay / Aliexpress, en het werkt niet, probeer dan eens deze 2 condensatortjes (van CLK en DIO) te verwijderen.

lowres_tm1637_desolderCsOnDioAndClk_circled
Verwijder deze 2 condensators of vervang ze door 100 pF