fixing design flaws

I bought one of those Real Time Clock modules:

I noticed it has a diode and resistor to charge the battery on the back. But I plan on using a non-rechargable CR2032 cell. So these had to be removed:

modified RTC module for non-rechargable battery

I also removed the power LED, since I plan on using it in an alarm clock with a partly translucent enclosure, and I don’t want the light to disturb me at night.

I think these modules mostly get used with primairy (non-recharable) lithium cells, so why was that diode/resistor there in the first place? Charging those cells might lead to leakage (at best), or more spectaculair failure (explosion?) at worst.

If you had battery leakage or other issues with these modules, please let me know in a comment.

If you have one of these DS3231 modules and plan on using it with a standard CR2032 coin cell (non-rechargable), I’d strongly recommend removing the diode and/or resistor, as shown in the pictures above.

EDIT:
I’v measured the 32 kHz output on my 2 modules with a Agilent 34401A. According to the datasheet, this should be 32.768 kHz, typ@3v3. One of my modules outputs 32.763 kHz, the other 32.761 kHz at 3v3. This is 5 resp 7 Hz slow: 153 resp. 213 ppm, way over the specified 3.5ppm over temperature… It would cause me to be late at a rate of about 2 minutes a week. For comparison: my wristwatch does 30 Seconds a Month. So, probably I got out-of-spec or fake modules… Darn!

EDIT2: Those modules get used/sold with rechargeable/secondary cells as well. Makes little sense considering how long a primary cell would last in this application, but at least explains why there is a charger circuit on board.

EDIT3: More about the 32-Khz-out-of-spec problem, in Dutch, here: https://www.circuitsonline.net/forum/view/147354. Also: I’ve bought a known-good chip from Farnell and plan on comparing performance – more later. The chip I bought is a DS3231MZ+ , which has a MEMS-oscillator, not a crystal like the …SN has. So cannot be compared 1-to-1, because its 32 kHz output is not compensated (only the internal 1 Hz is, within 5 ppm.)

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.

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.

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

 

 

Some of the RC-522 RFID card reader modules that can be bought on ebay / aliexpress have a problem: they do not read all (types of) cards they should be able to read. In this blog post I want to explain how to recognize these faulty readers and how to fix them. (There is a more detailed post in Dutch)

rfidadvertentiefoto
RC522 module (picture source: generic advertisement)

Choosy Cardreaders

Lets start at the beginning:
At MakerSpace Leiden those RFID-RC522 card readers are used in the access-system and AC-node system. Participants of the MakerSpace can scan their cards to get access to the MakerSpace (access system) or to enable power to heavy machinery that requires training (After completing the training ; AC-node system).

Most use their OV-chipkaart. (Public transport card, Oyster card for UK readers).

The problem that surfaced is that some of the RC522 card readers won’t read some cards (Including the OV-chipkaart).

That’s obviously a problem when the door won’t open or the machine won’t start, or your project using those card readers doesn’t work with all the cards it should be working with.

Post thumbnail

Ik heb een probleem (mede-)ontdekt met de RC522 rfid kaartlezer modules die op ebay / aliexpress en dergelijk aangeboden worden: ze lezen sommige kaarten niet. In deze blogpost wil ik uitleggen wat het probleem is, en hoe het opgelost kan worden, in de hoop dat mensen die hetzelfde probleem tegenkomen daar wat aan hebben.

rfidadvertentiefoto
RC522 module (foto uit advertentie van verkoper)

En omdat het anders een erg droog stuk tekst wordt, schrijf ik halverwege een stuk onzin over een zomerjurk. (Want dit is mijn blog, en niet mijn scriptie :P)

Kieskeurige kaartlezers

Laat ik bij het begin beginnen:
Bij MakerSpace Leiden worden deze RFID-RC522 kaartlezers gebruikt om toegangskaarten te lezen in het deursysteem en bij de zwaardere machines waarvoor training nodig is. Deelnemers van de MakerSpace kunnen daarbij hun OV-chipkaart (Of een andere 13,56Mhz RFID kaart die ze al hebben) gebruiken. Ze kunnen dan deze kaart gebruiken om toegang te krijgen tot de MakerSpace, of om b.v.  (na relevante training en goedkeuring) de cirkelzaagtafel in te kunnen schakelen.

Het probleem dat daarbij boven water kwam, is dat sommige RC522 kaartlezers sommige kaarten niet lezen. (Wat voor de (on)nodige frustratie zorgt als het toevallig je eigen kaart is bij de lezer van de deur waar je door wilt… Of het is de kaartlezer van het project waar je mee bezig bent…)