Monday, August 05, 2013

Изчистване на log-а (гмурканията) на ползван Suunto компютър

Преди няколко месеца си взех ползван Suunto D6 и ме дразнеше, че има записани дайвове в лога си.
След като се поразрових открих начин как да се изчисти паметта на компютъра, тъй като от сервиза (Водаспорт) отказаха да направят подобна процедура - заявиха, че трябва да го изпратя до Финландия в централния сервиз на Suunto.

*) Искам да отбележа, че процедурата е стандартна, т.е. използват се вградени заводски команди, за да се изтрие паметта и това по никакъв начин не поврежда софтуера (тествал съм компютъра няколко пъти и съм го сравнявал с друг по време на дайв).
НО все пак държа да отбележа, че отговорността си е ваша! Не поемам никаква гаранция, за това дали ще извършите процедурата правилно.
Просто споделям моя опит, защото е успешен и според мен всичко е достатъчно безопасно.


*) Софтуера би трябвало да работи без проблем за следните модели (аз съм тествал на D6):
Vyper/Cobra/Vytec(ds)/Stinger/Mosquito/Gekko/D3, D9/D6/D4, Cobra2/3 and Vyper2/Air

Ето и стъпките:

1) Изтегляте си Suunto Eraser от тук: (директен линк:
2) Изтегляте си стария софтуер на Suunto (Suunto Dive Manager 3), за да ползвате драйверите, които ще инсталира на PC-то Ви: (директен линк:
3) Инсталирате Suunto Dive Manager 3
4) Свързвате Suunto компютъра с кабел към PC-то си
5) Изчаквате PC-то да открие, че е закачено Suunto-то (долу в systray bar-a при часовника ще изпише, че е открил нов device свързан към PC-то)
6) Пускате Suunto Eraser и избирате правилния COM Port (обикновено ще имате само една опция)
7) Избирате какво да бъде изтрито: Clear History, Clear Personal, Clear Profile, Factory New
8) Избирате правилния Device Type (т.е. кой модел компютър ще изтривате):
1 - Vytec / Vyper / Cobra / Stinger / Mosquito / Gekko / D3
2 - D9 / D6 / D4
3 - Cobra2 / Vyper2 / Cobra3 / VyperAir
9) Натискате "Do It" и изчаквате (около 1-2 мин) докато не изпише, че всичко е наред "successful"

Това е.  :)

Ако имате въпроси - насреща съм.
Отново напомням, че отговорността за описаната процедура си е ваша! Не поемам никаква гаранция, за това дали ще извършите процедурата правилно.

Monday, October 15, 2012

Yamaha CRW-F1/CRW-3200 - Best CD Audio Recorder

After my LG DVD writer failed recently it came to my mind that I should search for an audiophile CD Recorder to replace my broken one.
That's how I got to know about Yamaha's CD Recorders they've build about 2001-2002 and their AMQR (Audio Master Quality Record) System.

Yamaha's exclusive Advanced Audio Master Quality Recording System is designed to deliver professional quality audio and data recording using conventional 74, 80, 90 or 99 minute CD-R discs. No other CD-RW records audio or data as clearly as the CRW-F1 thanks to Yamaha's Advanced Audio Master System."

The idea behind AMQR is that it makes longer  and better grooves when writing data on the CD layer which transits to better reading by the CD player. And because of that CD Audio format does not have error correction information stored on the CD, the way that lost bits because of poor recording (or scratch) are recovered are not so good. But with AMQR they do not need to recover anything since CD readers aka CD played will read everything!

Here are similar models that support AMQR:

Yamaha CRW-F1
Yamaha CRW-3200
Yamaha CRW-2200
Yamaha CRW-70
Plextor Premium 2 (this one uses Yamaha's AMQR technology, too)

And remember these can be found only second hand. :)

Have fun!

Sunday, August 12, 2012

Scale Background Image only with CSS

Have you ever wondered how to scale background image directly in browser?

A day ago I had to do optimization of an application for a client. At some point I found that major lag was caused when PHP code checks whether product image exists or not. Here's example how it was done:

$file_headers = @get_headers($d->picture);
if($file_headers[0] == 'HTTP/1.1 404 Not Found' || $file_headers[0] == 'HTTP/1.1 403 Forbidden' || $file_headers[0] == 'HTTP/1.1 301 Moved Permanently') {
    // show no-image IMG
else {
    //  echo $d->picture;

For every image there was a HTTP call to check whether the image is there or not. This works fine but is rather slow and also loads the server in a silly way.

After a little bit of a thinking over the problem I came with an elegant solution.
What I did is I made two HTML elements one over the other. The first one holds the "no-image" image and the second one placed above the first one with a higher z-index hold the actual product image BUT (the catch is here) image is set as a background-image CSS.
This way when the product image is missing user will see "no-image" and we do not need functionality to check whether product image exists or not.

So our server is unloaded from this silly task. :)

Here's an example code:

.no-image {
background-position: middle center;
position: absolute;
width: 195px;
height: 150px;
a.product-image {
background-position: middle center;
background-repeat: no-repeat;
position: absolute;
width: 195px; height: 150px;
display: block;
-moz-background-size: cover;
background-size: cover;
<div class="no-image" style="background-image: url('/upload/no-image.jpg');"></div>
<a href="'.$d->item_link.'" target="_blank" class="product-image" style="background: #000 url('<?php echo $d->pictures; ?>'); filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $d->pictures; ?>', sizingMethod='scale'); -ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $d->pictures; ?>', sizingMethod='scale');"></a>

But I needed scale product image right in the browser. You might have already noticed the code that makes this trick:
CSS3 for Firefox, Safari and all WebKit browsers:

-moz-background-size: cover;
background-size: cover;

and code for IE6/7/8:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='pictures; ?>', sizingMethod='scale');
-ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='pictures; ?>', sizingMethod='scale');

That's it!
Enjoy your great optimization.

Monday, April 23, 2012

A Lab PSU (Power Supply)

Two years I was wondering which Laboratory Power Supply to buy. I looked over Agilent and some Musteks, but most of them are expensive for me.

Now I decided to build one functional and cheap. What I do need:

- 3A max current
- 0-30V variable voltage
- variable current

Here is the choosen schematic. After reading on the forum I saw that the schematic has big issues fortunately a friend from out Bulgarian Audiophille Forum has made good work and I just got his PCB error free.
This is his website go and check the real deal

I added a termocontroller with a fan because the module can quickly overheat with this small sink I have for the main power transistor if you push it a lot.


Tuesday, February 28, 2012

How to calculate crossovers for speakers

While making my Custom Speakers (inspired by Lampizator's Endorphine 17 project) I was wondering how to calculate the crossovers.

I read a lot of theory, downloaded a bunch of programs, etc., but finally I came to the conclusion that the simplest crossover works best and I will describe you how you can make it by yourself.

First you need to find out the impedance of your speakers. Mine are 5Ohm Saba pairs, so I will make the example calculations based on that.

1) For tweeter you can put a capacitor in series which will form a first order High Pass filter which have to cut off frequencies below ~8kHz-10kHz (above those most midrange drivers became weak). In my case this is a 3-4uf capacitor. I choose 3,3uf capacitor.
You can use this calculator to find out what capacitance will suit in your case:

2) For midrange you need to make a Band Pass filter, so you can cut the low frequencies where the midrange driver is weak and the very high where it is also becoming weak and the tweeter will support it.
For Saba midrange driver these are below 300-400Hz and above 9-10kHz, so I needed a coil to filter high frequencies and a capacitor to filter very low frequencies - all put in series to the driver.
In my case this is a 0.39mH (mili Henry) coil and a 100uf capacitor. The 0.39mH coil start to cut off frequencies above 2kHz but with decent step so it can match to the tweeter filter correctly at ~9kHz.
And the 100uf capacitor will cut off everything below 318Hz, which is pretty fine.

Here is a band pass calculator which will show you all the curves:

More straight forward calculator for the High Pass part of the Band Pass filter:
And a straight forward calculator for the Low pass part:

3) Now we come to the bass section. The goal is to support the midrange. You can use any 12" or 15" speakers here. I choose Saba 10" 5Ohm because my room is pretty small and I had a bass extension boxes (without back wall of course!).
So let's see how we can cut off everything above 300-400Hz with a Low Pass filter (passes everything below the cut off frequency)
Here we have to be more aggresive that's why we will use a Second order Low Pass filter which consists of a coil in series to the driver and a capacitor connected to the ground.
I went with a 4mH coil (because of the price) and a 10uf capacitor. I could use a 50uf capacitor so I can get a 350Hz cut off frequency, but since I use a 10" bass speaker it is a little big weaker than 12" ot 15", I decided to go to higher cut off frequency so I can compensate the small bass speaker size.
But you should definitely make your calculations in a way that you cut everything above 300-400Hz if you have bigger bass speakers.

This is the calculator you can use:
*) remember you have to connect bass speakers with reverse polarity! So they can cancel each other with the midrange driver where they overlap, e.g. minimize unwanted destructive acoustic interference in the frequency region covered by both woofers and main/midrange speakers.

Here is my crossover as a final schema.

Coils have to be with low resistance (2-5Ohm). I use Jantzen Audio coils - C-Coil for bass and Wax Coil for midrange - Very very good coils from Danmark!

Final advice - do not use electrolytes. Buy PIO or Polypropilene capacitors. They are much better and you will hear the difference. Even if you use old russian PIOs (Paper In Oil).

If you have a small budget you can go with electrolytes, of course, but do not forget that the signal wire have to be connected to plus (+) side of the electrolyte capacitor.

Starting a Headphones Tube Amp project

A month ago I found 4 tubes 6n1p in my stuff, so I decided to use them. But what's the best thing you can use 4 russian tubes - of course, a headphone amp. And I do need one now since I am listening to music on headphones almost 5-6 hours per day.

I found a pretty good schematic for 6n1p headphone amp here ( by Bruce Bender.
I ordered all parts that I was missing and here are they.

Like most people I need my drug to get some inspiration and motivation for work - Jelibon beans. :)

I made the power supply for heaters and anodes.

These are the 3 x 6n1p tubes. They are small but should be efficient.

Monday, February 27, 2012

Kenwood KA 1100D

I would like to present you one of the best transistor amplifiers - the mighty Kenwood KA 1100D.

As a friend of mine said "It is the Cadillac of Kenwood's amps during 80s".

It has a very, very good phono preamp and desent sound compared to most of the good tube amps.

Inside view.

You can see 4 big Elna capacitors here - total capacitance 60 000uF!

If you can get one - do not hesitate! It's a perfect solid state amplifier!