Category Archives: Hardware


Keithley 2000 bench multimeter repair, part 2

First part here

3 days later, my mouser order arrived to Japan (this is super fast), I got the relays, desoldered the bad one (proper desoldering tool is very useful here).



(Right is new replaced, left is the old one for comparison, didn’t take it apart though).

Soldered the replacement and couple of screws later, I had the multimeter repaired, reassembled and ready to test.

(Don’t forget to note colors of the internal cables connected to the rear panel posts)


First I realised that once or twice another test had failed (500.2), and also 600.1 and 601.2 (which was definitely a change from original 600.1,600.2,601.1).

When the test process asks for 4-wire short I literally used a 4-wire kelvin clips shorted, and this seems to be the reason why error 500.1 came up, and likely the 600.x ones now were because I shorted HI to LOW instead of AMPS.

Now, for 4-wire short I used pomona banana leads (I think 12-ich ones) to get as close to a “real” Keithley 4-wire short brace (it’s literally a brace with 4 banana plugs that snaps right into the posts).

After the change of leads – all of the tests succeed. Voila, I repaired the multimeter (but I think I will someday make a a 4-wire short brace for reliable testing).


Commodore 64 UART Cartridge

I’ve always been a big fan of serial ports, modems and especially computer-to-computer null-modem communication,

I wanted my Commodore 64 to be able to serve as a serial terminal, but the built-in serial port has extremely low speed.

I found this project, called UART Cartridge, and I knew this is it, of course those carts are not possible to buy, I had to make them myself, so I got to work.

I’ve ordered the PCB’s, all the parts (some still haven’t arrived so I had to find alternative source), and built the first cart already.

The result is amazing, the cart looks great and works really well as well.


I’ve been using my C64 on a Dell U2410 monitor over Composite cable, and the result wasn’t very good,

as much as games look okay scaled, the small very sharp font doesn’t stretch well, so I had to look for other solutions.


First, I tried Japan-made EntaVision S-Video->VGA converter, with mixed results, the font is more readable but somehow it doesn’t handle interlacing well and everything looks jittery.


Then, I tried “UP Empire SD-CSH1” S-Video -> HDMI converter and the result is much better, the font is very readable, although on my Monitor I can’t adjust the 720p/1080p picture to 4:3 aspect ratio, well, with such a small font it might be even better to keep it stretched – makes it even more readable.


The schematics and design was done by Dennis Kuschel, and are available on his website:

I have enough parts to make a few more of those carts (and another part order pending), and will happily do so if you’re interested.

I would ship from Japan, it seems that worldwide shipping ranges between $4 and $8 depending on the speed.

Please contact me if you’d like to place an order (for tracking purposes I would recommend registering on my blog and placing a comment – also that other folks can see what is the demand).

Cost for a single unit : $40

Cost for 2-5 units: $35 each

Waiting time from placing an order to shipment – 2-4 weeks (although I will try to keep a small stock of ready-made carts or at least part sets for immediate assembly).

Please note that *your* cartridge may look different, due to supply of certain parts, some of them may be substituted for others.

The cartridges are fully tested on a PAL (EU) Commodore 64.

I have verified that the software itself works on an NTSC Commodore 64 with help of an emulator (VICE), there is no 100% guarantee that it will work on an actual NTSC C64 – and I will not accept returns should that be the case.

DIY 13W3 to VGA(D-SUB) adapter

While waiting for my Octane2 to arrive, I started preparations and made myself a 13W3 to DSUB Adapter.

There are plenty of adapters on the market, but most of them are either:

  • wrong way (to use 13W3 monitor with VGA Video card)
  • SUN-specific (some of them work with older SGI machines, but due to wrong routing of a couple signals, those do not work with newer machines like Octane)
  • There are (but difficult to find) SGI-specific adapters with only A1,A2,A3 signals routed.

So, what to do – there are usually few options:

  • Buy SUN adapter, and modify it to work (this usually involves dissecting the molded plug and rerouting some cables inside).
  • Buy a 13W3 -> BNC adapter, along with BNC -> VGA (that’s the best solution if you have monitor with BNC).
  • Make your own :)

Being a DIY guy, I decided to sacrifice some cheap old VGA cable I found in the box, bought a couple of 13W3 plugs with mini-BNC’s and started soldering. I was actually surprised I could buy 13W3 plugs, sockets and those mini-BNC’s with no problem at all (I did have to ask the clerk for more because the boxes in the store were empty – they had a bunch in stock – if I recall, 100 JPY for each mini-BNC + 300 JPY for the plug).

The operation is fairly simple:

  1. Strip off the D-SUB cable on one end – if it’s molded be careful not to cut yourself – there will probably be metal shielding which really likes to cut your fingertips :P (which hurts A LOT).
  2. Find out which cables are for R,G,B and their shielding – even my cheap cable had them clearly separated each with it’s own shielding (if yours doesn’t – throw it away and buy another one – you won’t get good picture without each color properly shielded), Red had pink color, Blue was Blue, and Green was white – so finding out what is what wasn’t hard either.
  3. Put BNC protective caps first and strip off the shielding from each of those 3 cables. My cable had foil with outer plastic wrapping on each.
  4. Make sure you have the caps – otherwise you will end up desoldering and probably melting the cable.
  5. Do you really have the caps on ?
  6. Solder the signal cables into 13W3 mini-BNC’s, then wrap the shielding around nicely and solder into each BNC outer casing,
  7. You may need to file the shielding solder nice and round so that cap has snug fit – if you do it well, it will fit all the way with a little click at the end.

I didn’t buy the plastic enclosure yet, looking at dimensions of my plug, any DB25 sized should work.

My small advice – DO NOT insert mini-BNC’s into the plug (I was tempted and this made it a bit harder, also you can’t remove it once it’s in place), solder them while loose.

Use third hand – if you do put mini-BNC’s into the plug – they rotate which just makes it harder.

At every step, make sure you didn’t melt signal’s isolation and there is no short between any of the pins.

Once you’re done, verify the cable:

  • A1 (RED) signal should lead to pin 1 (top left) on the DSUB.
  • A1 (RED) shielding should lead to pin 6 (middle row left) on the DSUB.
  • A2 (GREEN) signal should lead to pin 2 (top 2nd from the left) on the DSUB.
  • A2 (GREEN) shielding should lead to pin 7 (middle row 2nd from the left) on the DSUB.
  • A3 (BLUE) signal should lead to pin 3 (top 3rd from the left) on the DSUB.
  • A3 (BLUE) shielding should lead to pin 8 (middle row 3rd from the left) on the DSUB.

That’s all – 3 shielded cables should to the trick.

In addition, I would also recommend soldering cable’s outer shielding into the metal casing of the plug. (If you don’t – it will probably work, but you will end up with some interference.)

If you fancy (or if you monitor doesn’t support Sync-On-Green), you may need to solder Sync signals into respective ports (I didn’t need to, and this has not been confirmed to work):

Pin 3 – C. Sync / Gnd goes to pin 10 on DSUB

Pin 4 – H. Sync goes to pin 13 on DSUB

Pin 5 – V. Sync goes to pin 14 on DSUB

Some pictures below:

13W3 plugs:

Male plug: this is what goes on your cable.

Note order of BNC: from the left (Blue)A3, (Green)A2, (Red)A1


Female socket – this is what your SGI Workstation already has.

Note order of BNC: from the left (Red)A1, Green(A2), Blue(A3)


Mini-BNC: this is what goes into your plug assembly – you can see the inner soldering point. Please also note the latch – once you insert into the assembly it’s permanent.


And the front


This is how the protective cap looks like – put it on the signal cable BEFORE soldering, and then after filing the outer solder a bit – push to fit – it should click, there’s no need to solder the cap together with the BNC.


The below is the MALE part – this is what your Workstation already has.


And this is how it looks when finished (here with protective cap off)


Here ready to be closed and used.


Flashing and hacking the android phone for Japanese Softbank network.

polish english 

Niedawno uczestniczyłem w Google Developer day 2009 w Yokohama, i dostałem za darmo telefon HTC Magic z Google Android – edycja limitowama.
Bardzo fajne i ciekawe urządzonko, ma wszystko czego potrzebuję, ale niestety jak to zwykle w japonii bywa, nie działają w nim MMS’y gdy używam zwykłej karty Sim z mojej komórki.


Tutaj, w Japonii, używa się e-maili zamiast SMS, ale to nie są “prawdziwe” maile – to tylko MMS’y ukryte pod postacią emaili i konwertowane w locie przez operatora.
Więc, wysyłając email na adres, serwer skonwertuje go automatycznie do MMS i wyśle do odbiorcy,
i odwrotnie, wysyłając e-mail z telefonu, w efekcie wyślemy MMS’, a serwer skonwertuje go w locie to e-maila i wyśle na swiat.

Odbieranie MMS działa tak: przychodzi specjalnie skonstruowany SMS, zawiera pierwsze 1024 bajty wiadomośći i oprócz tego informacje dla telefonu jak pobrać resztę – poprzez zwykłe HTTP, i tutaj zaczyna się problem, Softbank(moj operator w Japonii) blokuje telefony inne niż sprzedawane przez nich.

Jakby tego bylo mało – oprogramowanie w moim telefonie miało całkowicie wyłączoną obsługę MMS.


Krok 1:

Robimy kopię zapasową urządzenia (możesz pominąć krok jak jesteś leniwy lub pewny że wszystko się uda ;-) ):

Podążaj za instrukcją na tej stronie:

(Fastboot możesz pobrać ze strony HTC wymienionej w punkcie 2).

W tym kroku jedynie musisz pobrać obraz ‘recovery image’,

rozpakować, skopiować do telefonu uzywając:

adb push recovery-new.img /sdcard/recovery-new.img
adb shell sync

Kiedy już plik będzie skopiowany, uruchom ponownie telefon, i w czasie startu trzymaj BACK i POWER wciśnięte – android uruchomi się w trybie fastboot, wpisz:

fastboot boot recovery-new.img

Android uruchomi się z tego obrazu, który pozwoli ci między innymi zrobic backup wszystkiego do karty SD.

Wybierz opcję ‘nandroid backup’ – pliki zostaną zapisane na karcie SD.

NIE MA potrzeby robienia innych krókow z tej strony “root the magic”, one są potrzebne do innych celów, tutaj je pomijamy.

Krok 2:

Jak sprawić aby android obsługiwał MMS (jeżeli twój operator nie blokuje nie-swoich telefonow – to jest jedyny i ostatni krok):

W tym kroku wymienisz całkowicie oprogramowanie urządzenia, ja użylem oprogramowania do urządzenia rozdawanego na Google IO, dzięki temu mam dostęp to kilku funkcji niedostępnych w normalnej wersji, takich jak polecenia i wybieranie głosowe, Amazon MP3 itp.
Niestety jest też i zła strona – to oprogramowanie nie ma obsługi jezyka japońskiego.

Najpierw, upewnij się czy twój android pozwala na wysyłanie MMS, otwórz aplikację Messaging, wpisz tekst, wciśnij menu, jeżeli NIE MASZ opcji “add subject”, “attach” – znaczy że android ma zablokowame MMS.

Podążaj za instrukcją ze strony HTC:

Nie przejmuj się tym co piszą ze oprogramowanie nie będzie kompatybilne itp. (częściowo mają rację – urządzenia różnią się, ale to żaden problem).

Ja polecam uzyć metody fastboot (nie takie trudne),

Musisz pobrać program ‘fastboot’ z ich strony i 2 obrazy: Radio Image i System Image.

Zgodnie z instruckjś, zainstaluj Radio Image – prawdopodobnie, twój telefon po restarcie nie wystartuje poprawnie, będzie widoczne logo android ale nic wieęcej (w adb logcat będzie widać że próbuje startować co chwilę) – nie ma co panikować, to normalne.

Wgraj obraz Radio Image na kartę SD poleceniem:

adb push <radio-image-package>.zip /sdcard/
adb shell sync

wejdz w tryb Recovery przytrzymując HOME podczas startu, potem wybierz opcję ALT+s na ekranie, późśniej HOME+BACK, urządzenie powinno się zrestartować – nie panikuj jeżeli się nie uruchomi.

Jak juz masz wgrany Radio Image – czas na System Image:

Wgraj obraz na kartę SD:

adb push <system-image-package>.zip /sdcard/
adb shell sync

Wejdź w tryb fastboot (BACK+POWER podczas restartu) – ZAPAMIETAJ wersję ‘hboot’ – będzie ci potrzebna.

Mozesz spróbować wgrać system image już teraz, ale dostaniesz błąd że wersja nie pasuje do twojej wersji hboot (wymagana 1.33.3004, ty masz pewnie 1.33.3005).
Żaden problem – mozemy to obejść :-) .

Co należy zrobić – rozpakować System Image do folderu, znaleźć plik android-info.txt i zmienić wartość opcji ‘require version-bootloader’ podstawiając tam wersję hboot która odczytałeś przy starcie fastboot.
Następnie spakować zawartość folderu do nowego pliku zip, wgrać ten system image na kartę SD.

Więc, już teraz masz wszystko gotowe, spróbuj wgrać ten obraz, NIE ZAPOMNIJ żeby wybrać opcję ‘clean userdata and cache’ – to jest wymagane, bez tego, dostaniesz logo android na ekranie i nic więcej.

fastboot update .zip -w

Krok 3:

(Jeżeli twój operator blokuje nie-swoje telefony):

Musimy zmodyfikować klienta MMS żeby przedstawial sie w sposób bardziej lubiany przez operatora (Jest niewielka szansa ze ten krok rozwiąże twój problem w całości – nie jestem pewny czy wgranie nowej aplikacji MMS odblokuje wysyłanie czy nie – ja przeszedłem przez wszystkie 3 kroki):

Wersja hardkorowa:

Pobierz źrodło android ze strony google, skompiluj, i zainstaluj ten patch:

--- packages/apps/Mms/src/com/android/mms/transaction/  2009-06-12 23:56:28.000000000 +0900
+++ packages/apps/Mms/src/com/android/mms/transaction/  2009-06-12 23:47:20.000000000 +0900
@@ -220,7 +220,7 @@
     private static AndroidHttpClient createHttpClient() {
         AndroidHttpClient client
-                = AndroidHttpClient.newInstance("Android-Mms/0.1");
+                = AndroidHttpClient.newInstance("SoftBank/1.0/705NK/NKJ002/SN001 Android-Mms/0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1");
         HttpParams params = client.getParams();
         HttpProtocolParams.setContentCharset(params, "UTF-8");
         return client;

(Ten patch zmeni tylko UserAgent w kliencie MMS, nie zmieni przegladarki WWW).

Skompiluj źrodło jeszcze raz (jedynie aplikacja MMS zostanie przekompilowana), i zainstaluj swieżą aplikację Mms do androida poleceniem:

adb install -r ./out/target/product/generic/system/app/Mms.apk

Wersja dla leniwych:

Pobierz Ten plik i zainstaluj uzywając adb:

adb install -r Mms.apk

Nie zapomnij skonfigurować APN do MMS, jako ‘apn type’ NIE WPISUJ ‘mms’ – to nie działa.

Wszystkie pliki jakie są potrzebne wgrałem na swoja strone tutaj:


Rooting HTC Magic – creating backup

HTC Google IO device support page

Android source

Co dalej: zmienić źrodło jeszcze bardziej – żeby miec ładne menu z edycją UserAgent w aplikacji Mms :-D.

Powodzenia :-)