[Перевод] Возвращение к жизни Roland JV-30 за $5

8bx-hpsj8fsjrrluxm86fdh4wci.png


Небольшой фотоотчёт о диагностировании и восстановлении работоспособности 16-частного мультитембрального синтезатора Roland JV-30, который мне удалось урвать на гаражной распродаже всего за $5.

Поскольку блока питания в комплекте не было, нужно было что-то придумать. Запитывается он напряжением 9В 800 мА через цилиндрический разъём с минусом на центральном контакте. Для проверки я взял новый штекер, подключив к нему источник питания с ограничением тока, установленный на 9В.

9kewpcwvaobbsdlcfle3qkv-ihk.png

-j9lrnclefa3hei6-yzhbtl6sqg.jpeg

nucpf-wvwoeuebuiet4kxob2jfm.jpeg
Никаких признаков жизни. А при замере щупами показывает 7В 1.55A!

qpiltssmzitwdhiyrpbuyzqmhxy.jpeg
Пора заглянуть внутрь. Здесь уже точно кто-то бывал, так как половина винтов отсутствует

fcsbvyh5bibpbcwmrb7bz_gnsaa.jpeg
Ничто не взорвалось, никакого дыма, проверку нюхом проходит — едкого запаха горелой электроники не замечено

_js-xd3il8fd9kl6nwbwot1svma.jpeg

lnhfy3pms3ke4lm20t40kkvgyf0.jpeg
Так, стоп! Вижу взорвавшийся повреждённый конденсатор прямо за разъёмом питания. Он не обозначен, но похож на шунтирующий или фильтрующий, поэтому я заменил его на аналогичный — ёмкостью 1 мкФ и повторил попытку…

2whvvq_o8j_vgcxgtoznv96svpm.jpeg
Тот же результат, дело оказалось не в конденсаторе

Самое время достать ИК-камеру FLIR. Если что-то потребляет 1.5А, то оно должно нагреваться.

5_zhebm6tvjzhrcd5dqewt2u9y8.png
Нашёл подозреваемый компонент в отсеке питания рядом с выключателем (нижний правый угол)

6ingcgm4walsokrx-ryj1rw5y-q.png

mjh2yfyetgan0kbcrtvxnj7go2o.jpeg

danllk6cyudasfrizxxm66giyou.jpeg
Этот диод защиты от напряжения обратной полярности закорочен. Подозреваю, что причиной стал удар молнии, использование неподходящего источника питания или переполюсовка.

8vizoaotoj_asg2hzswegcvqaow.jpeg

▍ Заработало!


xcculf08hhuflre8awmoo7sntzs.jpeg

z0d-festeay4k4ajgvyi-7dtr_i.jpeg
JV-30, запитанный от 9В, с номинальным потреблением тока менее 500 мА

Подержанные JV-30 на eBay стоят в районе $300, а этот мне достался за $5 плюс конденсатор, диод, немного смекалки и свободного времени.

q4nvk1tb6tkjfx7z5ebvgut8sge.png

hkatquntmpwi4k6nddsxk9x4ure.jpeg

▍ Недостающая деталь


Так как у синтезатора не было одного ползунка, я спроектировал ему замену в OpenSCAD и напечатал пару таких штуковин из PETG с высотой слоя 0.1 мм. Вторым я заменил соседний ползунок.

Совет: при 3D-печати небольших деталей желательно располагать их подальше друг от друга, чтобы они успевали остыть до нанесения очередного слоя.


bdfnjm8ixpm49iouqnvgyf5m2v4.jpeg

wxtndh1-sjnma4ugrnyzify3cx4.jpeg

mnqrq3m6ptvljnklmu-y_m-q7wa.jpeg


Ползунки получились отличные и идеально подошли.

hhppu7cb8pdyfntcuhsula6fqzq.jpeg

fhkpg7j8kbkdqgv6pxxprr1sej4.jpeg

Исходный код OpenSCAD
/*
    Roland JV-30 volume slider cap
    by D. Scott Williamson
    May 16, 2022
*/

$fn=32;
// dimensions
w1=7;
w2=6.5;
l1=13.9;
l2=13.4;
h1=7.16;
h2=6.21;
steps=5;
stepl1=2.8;
stepl2=10.68;
stepl=((stepl2-stepl1)/2)/steps;
steph=(h1-h2)/(steps+1);
rad=.25;
holeh=5;
holew1=2;
holel1=5;
holew2=3.9;
holel2=2.2;

// part
color([.2,.2,.2])
difference()
{
    // basic slider shape
    hull()
    {
        // rounded footprint
        for(x=[-w1/2+rad,w1/2-rad]) for(y=[-l1/2+rad,l1/2-rad]) t([x,y,0]) cylinder(r=rad,h=.01);
        // rounded top corners
        for(x=[-w2/2+rad,w2/2-rad]) for(y=[-l2/2+rad,l2/2-rad]) t([x,y,h1-rad]) sphere(r=rad);
    }
    
    // steps
    for(i=[0:steps])
    {
        t([-w1/2,-stepl1/2-i*stepl, h2+i*steph]) cube([w1,stepl1+i*stepl*2,steph+.1]);
    }
    // + shaped hole in bottom
    cube([holew1,holel1,holeh*2],center=true);
    cube([holew2,holel2,holeh*2],center=true);
}

// Shortcut methods
module t(t) {translate(t) children();}
module tx(t) {translate([t,0,0]) children();}
module ty(t) {translate([0,t,0]) children();}
module tz(t) {translate([0,0,t]) children();}
module r(r) {rotate(r) children();}
module rx(r) {rotate([r,0,0]) children();}
module ry(r) {rotate([0,r,0]) children();}
module rz(r) {rotate([0,0,r]) children();}
module s(t) {scale(t) children();}
module sx(t) {scale([t,1,1]) children();}
module sy(t) {scale([1,t,1]) children();}
module sz(t) {scale([1,1,t]) children();}
module c(c) {color(c) children();}


sz7jpfj8i1pa6ocj-eia09dev4q.png

© Habrahabr.ru