Translate

Thursday, 22 October 2020

BMW Diversity antenna amplifier.

On old school pal, a once estate agent and daytime telly presenter, now a famous comedian (so we'll let him off for the first couple of misdemeanors) dropped me a message on Facebook....

"I've followed some of your repairs with astonishment and very little understanding.

Do you think you could look at something for me?"

Yeah .. why not ..

It's a diversity amplifier from a BMW E61 Tourer. 


They're apparently a really common fault on the E61 tourer, as they're situated in the tailgate, and suffer with water ingress, and Nick confirms this one was full of water when removed, and he'd left it to dry out on a radiator for a few days...

I expect it to be full of corrosion ... 

The plastic case just unclips, and reveals the PCB. 

Which is surprisingly clean and lacking in corrosion... 









So. The plan is to first work out what on earth this thing is supposed to be doing. The faults are the remote locking wasn't working, and the radio would reset to Radio 2 with the bass and treble set to maximum whenever the ignition key was removed... hmmm.

So, a spot of reverse engineering is required. 


The antennas (there are two) seem to feed into the red and black sockets on the top edge of the PCB. I suspect these may well be "hidden" antennas in the glass... The signal is filtered and is sent to a TEA6101 diversity switch. This analyses the signal from each antenna, and sends the strongest one on to the receivers. One signal is sent to a conventional TDA1576 FM demodulator, and on out to an amplifier and off-board via the molded socket. 


The second half goes to a TDA5210 UHF receiver/decoder.. what's the betting that's our remote lock/unlock ? Output from that feeds the IC under the heatsink clamp... 






There's also a small switching supply for +5V, and some amplification and filtering of RF along the way. 

Working out where the +12V power goes to the board, brings up the +5V supply... good. Poking round the data lines with an oscilloscope shows no activity ... but is it expecting data from the car? 

A careful visual inspection of the board under the microscope shows no corrosion. Time to remove the heatsink clamp...

I thought this may be hiding some sort of power amplifier, but no, it's a microcontroller. There's also some corrosion around it's 6MHz ceramic oscillator.... Scoping up around the microcontroller shows no activity ... 




Removing the oscillator shows up the corrosion.. See that black line between the two of those long pads? 











It's duly cleaned up ... 










The oscillator put back into place after checking the bottom of it is clean.... It's soldered back in with the hot air tool.







When I removed the oscillator, I also removed a small decoupling capacitor by accident (there can be some collateral damage with a hot air tool!) ... thankfully I didn't lose it, and this is hand soldered back in place.





I don't think the heatsink clamp is actually anything of the sort. I think it's an RF shield. Anyway it's replaced. Powering up now shows some activity on several of the microcontroller's pins..

 So, it's time to reassemble it, and send it back to Nick to see if it works or not ... fingers crossed.

**** UPDATE **** 
 It worked :)

Saturday, 5 September 2020

Glasses manufacturers - a moan.

<MOAN>

I have a moan...

I've been a spectacle wearer for 35 years, and almost every pair I've ever owned has had the same issue... an issue I'm sure many of you can relate to.

There you are, going about your business, then, with no warning ... *thunk*

One of your lenses falls out ...

You pick the lens up, only to find the microscopic screw that held it in has, of course, vanished (or at least, due to your now compromised vision, you can't find it)

Now, I appreciate the need for a fixing to hold the things together. I also appreciate said screw is under a lot of stress, the glasses twisting as you take them on and off, the heating and cooling that goes on etc, so that poor little screw works loose. I get that...





So why in god's name put the screw in from the bottom? Just WHY?

It comes loose, falls out, followed a few seconds later by the lens... 

Why not put it in from the top? It may work loose, but at least it's got less chance of falling out?



Also, have you people never heard of locktight? Boeing have been gluing aeroplane wings on for years... can you not find a suitable adhesive?

It's not like these things are cheap to buy (aeroplanes or glasses)....

So, if you're a glasses wearer, or you partner is, take a moment today to check your screws. Stick a bit of nail varnish on the threads. You're welcome...

</MOAN>

Bush NE-2105 DAB Clock Radio repair.

 Mrs Doz stuck her head round the workshop door...

"The kitchen radio's stopped working. It's just making rude noises."

I went to inspect it ...

Sure enough it's just sat there, with it's LCD display flickering and making raspberry noises..
It's a Bush NE-2015 DAB radio with FM and a now long-obsolete iPod dock. It's put in Sterling service for 9 years...


Anyway... let's get it apart. Bush (or whoever makes their stuff these days) have carefully marked the fixings I need to remove with an arrow ... it's almost like they want someone to repair it...


Four screws on the bottom along the front....













... and two on the back, hidden under a plastic cap which just pops out...

There's a knot in the aerial wire, undo it...










Slide the back off, and undo the mains, auxiliary input connectors, and put the back to one side...











 It all looks rather nicely made. I'm pleasantly surprised.












Even if they didn't *quite* manage to get the switched mode supply IC in straight!

There's no sign of capacitors having blown their tops, no leakage...








5 Screws sees the main PCB lifted so I can gain a bit of access..










There's some signs of that nasty glue, that turns brown and goes conductive... it's scraped off before it gets worse.



Now a hunch tells me the power supply isn't starting up. The supply is started up in the usual manner, by a voltage fed from the mains rectified voltage, via a resistor chain, and a small capacitor. I check the (two) mains reservoir capacitors are dischanged with a 10K resistor (and they were holding a charge, enough to give the unwary engineer an unpleasant zap!) . The small start-up supply capacitor is removed. It's 47uF at 25V... 

 The ever-reliable Jingyan MESR-100 ESR meter shows an ESR of 6.67 ohms... 











A new one measures 0.34 Ohms, much better..












I also check the two main reservoir capacitors... They're 10uF at 400V each...

ESR is acceptable.









As is the measured capacitance. I'll pronounce those fit, and re-fit them, along with the new start-up capacitor...










A quick re-assemble, and, ace ... it all works!


Another saved from land-fill. I'm always surprised by the audio quality from this little radio, and now I'm impressed by it's build-quality too... a rare thing in this day and age. Well done Bush!

Friday, 4 September 2020

Garrard Zero 100 Plinth cosmetics.

After the Zero 100 was repaired (here and here) I was left with a very tatty homemade plinth.



The plan is to tart it up and make it something that Mrs Doz will tolerate...

Let's remove the old existing veneer.

First up is to steam the veneer with a clothes iron, and a damp cloth. This should soften the glue. You can then start to work a knife blade under the veneer and slowly remove it. Try to work along the veneer, not splitting it, warming and working your way along as you go.

This veneer is obviously held on with some synthetic (rather than animal) glue, as it was quite tough. Nice thick veneer too... pity it was poorly done. This didn't aid removal!



So after a couple of hours work, we've not got a tatty plywood box. At least it's square...











Now I did consider some black and white plastic laminate, but initial experiments weren't very successful.. wood it is ... but I still want something "different" for a very different turntable...

I experiment with a strip of the available veneer, and some water based stains. I like the ebony, but a straw poll of Mrs Doz, and my neighbours, Suzie and Steve, and anthracite comes out top...

The stain comes from eBay seller letspack_uk , and comes as a small sachet you mix up with hot water, and allow it to cool before applying.





The plinth is veneered, and stained in 4 coats of the anthracite.











This is after 4 coats of stain, and 2 coats of finishing oil with many more to come! After each coat, the finish is flatted back with some fine wire wool.









About 20 coats of finish are applied, carefully flatting back after each one. The result is a lustrous finish. 

The Turntable is mounted solid, as the suspension is missing it's foam dampers (probably long since rotted away), and unlikely to help. 



Rather pleased with the end product :)

Sunday, 16 August 2020

Arduino TV clock with vintage clock source (or another stupid Arduino clock, or "The Ping-Pong Clock")

A while back, the boss presented me with a gift ...


"Found this, I thought you'd like it"











It's a pair of 460KHz Crystals in a standard B7G glass valve envelope. Pretty.












It's sat on my desk for months ... I keep looking at it, and wondering what to do with it...

About the same time, my mate Alan gave me a small CRT video monitor.













I think it's come from a reversing camera from a lorry...










After working out the power pins on the rear, it springs into life, and a stupid plan is hatched....

Take the crystal, and build a CD 4060 oscillator/ripple counter, divide the output down to produce ~28Hz (460000/16384). Feed the 28Hz into an Arduino interrupt pin, and get it to run a clock. Run the TV out library as well, and produce an image on the screen. Brilliant. Stupid. All in one go.

Now, with a crystal oscillator, we need to know the crystal's "load" capacitance. This is formed by the two capacitors off each crystal leg to ground. Every crystal needs these. Get it wrong, and it's unlikely to reliably oscillate (if it does at all). For example, the usual Arduino crystal of 16MHz needs about 22pF on each leg to reliably start up. We'll also need to bias the 4060 so it always starts. Regular readers of this blog will know I used to include a 1 megohm resistor (unnecessarily) across the arduino crystal in my stand-alone designs. We'll need this in our oscillator. (We didn't in the ATMega328 because the bias is supplied by the IC). We'll also need a load resistor. The load resistor is there to make sure there's a voltage on the crystal with which to start the oscillation.

The issue we have is we have no idea of the load capacitance required, or it's required load resistor. There's a rule of thumb about load resistors. 1mm thickness of crystal = 1K ... our crystal is a little over 1mm thick, let's opt for 2.2K. Capacitance? No such rule of thumb. I was going to put 2 adjustable 100pF capacitors in each leg, and twiddle until it would reliably start. Sadly, I could only find one 100pF capacitor... so that went in one leg, and a 22pF fixed capacitor on the other.

Result? Nothing. No amount of twiddling of the 100pF capacitor helped. OK, add another 22pF capacitor to the circuit to give 44pF ... and it's oscillating, but it frequency isn't stable. Remove the two 22pF capacitors and replace with 100pF ....


... and bingo! ... 28.061 Hz pops out of the Q14 pin. It's reliable and steady as a rock. It's a shade off frequency, but crystals do tend to drfit with age, and I doubt my load capacitance quite meets the original spec. It should be 28.076171875Hz.. (460000/16384)








It's all built "fugly" style on a bit of perf board.



























Here's the circuit

The pulses are fed into an Arduino Uno which allows a bit of development to go on, and a discovery is made (should have read the read.me!) .... you can't use an interrupt when using the TVout library, as the interrupts are being used to generate the timing need for video ... no problem, we'll use another arduino to generate the video and pass the data to it over a serial interface..









Now Arduino no1 is just doing the final bit of dividing down and outputting seconds over it's hardware serial interface, it's given it's own 16MHz crystal and mounted on the perfboard along with a 7805 to provide the 5V. The Arduino Uno is now used to develop the video software.







Before long, we have a rather nice clock display running.... (The photo doesn't do it justice, this is the tiny colour monitor I use in the workshop, and the photograph has artifacts..) . There's still plenty of memory left though ....








How about an animated "Pong" (Copyright Atari, the dawn of time) clock? Oh this is getting silly... Yeah, OK...

There appears a number of Arduino "pong" clones on the web, that will (allegedly) sit happily with TVout. After trying, I can't find one that works properly. Shoddy ball/bat collision (it's at best hit and miss 🤣), the ball flying right through the bat half the time.. we don't want that, so I re-engineered the code to suit.

Next thing... We don't want the monitor on all the time, consuming power and wearing the CRT cathode out. So some means of switching on the monitor when someone maybe looking at it. I did contemplate using a passive infrared sensor (PIR), but that's overkill. A simple sound detector will do. We can implement this on Arduino 1. 

A small electret microphone is amplified using an op-amp, and the output fed to Arduino 1's A0 pin.
This input is measured a few times, averaged, and compared to a value. There's an interesting bit of code here, whereby the audio is "rectified" in software, this means any negative audio is "flipped" over,  and a negative peak has the same value as a positive one (I've got a cunning plan for this bit of code, watch this space...). Anyway if this level increases above a certain point, there's some noise about, and we can switch our monitor on.


The output pin feeds a BC547 transistor, which in turn switches on a P-channel FET as a high-side driver, which supplies 12V to the monitor. A minimum on time is specified, as the monitor takes 8 seconds for the CRT cathode to warm. Even with the monitor off, Arduino 2 is still doing it's thing and creating the video waveforms and dealing with time.  






A temperature sensor is added to display the temperature as well... 

This is connected to A0 of Arduino 2. It's just a cheap 10K NTC thermistor. 












Meanwhile, we need a method for setting the clock. 3 push buttons are added, one for hours, one for mins and one for set, and connected to Arduino 2. When Arduino 2 starts up, it automatically enters this screen, and the hours and minutes can be set with the buttons. Once the set button is pressed, a reset pulse is sent to Arduino 1, and it's restarted, setting the seconds back to zero.


I also added a bit of code to enable easy calibration of the clock. Grounding pin D6 (pin 12 on the actual microcontroller) puts Arduino 1 into a calibration mode, whereby it outputs minutes elapsed since start-up and seconds over the serial interface. Disconnect Arduino 2, and connect Arduino 1 to an FTDI converter and monitor the serial output. Open the arduino monitor , and enable time stamp. Write down the time the sketch started, and the difference between that and the current elapsed time. Leave it for hours, then calculate how far it's drifted and use this value to alter the calibration value in Arduino 1 (old cal factor * ( number of seconds expected / number of seconds counted) . Excellent, it now keeps good time.

Excellent ... what about a chime?

I don't want just a beep or something from the micro... I'd like a proper chime.

(It's at this point, it begins to dawn on me I may have taken leave of my senses...)

A small solenoid is purchased from eBay... 









...and a bicycle bell...












.. all conjured up into a chiming assembly! 













... and a driver circuit created to be driven from Arduino 2.
















So the final thing looks like this ...

The vintage crystal is top left, with the 14 bit ripple counter to it's right, and the 7805 voltage regaultor to the right of that.  The horizontal ATMEGA328P is our seconds generator, and controls the power to the monitor, the microphone and amplifier can be seen just below it. The high side FET is there too, and runs very cool, as the monitor draws about ~520mA when running. The vertical ATMEGA is creating the video, and also drives the chime, via the low side FET under the stripey ribbon cable, which leads off to the three push buttons, hours, minutes and set. Video is connected to the monitor via the small coax just above the ATMEGA.

The final schematic.


The clock display itself has three modes.


Clock ...












... pong ...












 ... and 3D cube ...




The software can be found, as usual, on my github page https://github.com/andydoswell/stupid-video-clock , and I've included the TV out library as well, as I've modified it so it compiles without issue, has a "degrees" symbol and tweaked the timing a shade. 

Now, I'd better start thinking about a case for it... some sort of perspex thing?

My colleague , Alan, has given it a good name... "Well, it goes "ping", and plays "pong" ... it's the ping-pong clock" 😁