Hyperion EOS0730i şarj cihazının PC yazılımı var, güzel de bir şey. Ancak bilgisayara USB ile bağlamak gerekiyor bunun için. Pil şarj ettiğim yer ile bilgisayar aynı masada dursa da, arada bir mesafe var ve kablo uzatmaktan nefret ediyorum.

Kablosuz yapalım dedik, yaptık.

Öncelikle belirtmeliyim ki bunu benden önce yapan olmuş. Yurtdışında bir tekerlekli sandalye forumunda açıklaması var. Ancak orada farklı bir Hyperion charger için anlatım var ve benim uyguladığım “USB bağlanınca Bluetooth’un devre dışı kalması” özelliğini düşünmemişler. Dolayısıyla yarı özgün bir çalışma diyebiliriz.

Detaylardan başlayalım; şarj cihazımız bilgisayara bağlanıyor, bu bağlantı USB ile sağlanıyor. USB’ye taktığımızda işletim sistemimiz cihazdan string descriptoru okuyor ve sürücüsünü ararken ekrana yazıyor. Benim örneğimde ekrana gelen şey, CP2102 USB to UART Bridge oldu.

Buradan hemen kafada ışıklar yanıyor; demek ki şarj cihazının içinde kalan aslında seri iletişim. Yabancı olmadığımız durum, sıklıkla kullanılıyor. Custom HID interface olmasına yeğdir diyebiliriz, gerçi onun da avantajları kendine göre ama, konu bu değil.

Seri iletişimi kablosuza çeviren birkaç hazır çözüm piyasada var. Cable replacer olarak geçen, kablo yerine bağlayabileceğiniz modüller var; amaç alıcı ve verici tarafta hiç bir şey değiştirmeden, sadece mevzuyu kablosuza çevirme. Ben de böyle bir çözüm kullandım; Çinde sürüsüne bereket 5-6$’a satılan HC-06 Bluetooth modül.

Kendisi şöyle bir şey:

module

Oldukça ufak, yanında şarj cihazından çıkan vidaları görebilirsiniz boyut karşılaştırması yapmak adına. Bu cihaz TTL seviyesi RS-232’yi Bluetooth ile aktarabilen, slave bir cihaz. Master ve slave olabilen HC-05 kardeşi de var ancak biraz daha pahalı ve bizim işimiz için gereksiz olduğundan kullanmadım.

Ufacık cihazda 34 tane pin var, neyse ki işimize yarayanları az.

pinout

12 ve 13. pinler besleme pinleri. 1 ve 2 seri bağlantıyı gireceğimiz noktalar. Belirtmekte fayda var ki bu girişler 5V tolerant değil! 24’üncü pinde bir LED bağlama noktamız var. 11. pin de reset; ben disable pini gibi kullanıyorum; detayı yazının devamında mevcut.

Sırada bu ufacık pinlere kullanacağımız kabloları lehimlemek var.

kablovemodul

Bağlantıda sarsıntıya ve kıvrılmaya dayanıklı olması için, 24AWG silikon multistrand kablo kullanıldı. 24AWG biraz kalın kaçıyor ama elimde o vardı. Tavsiyem bir incesi olan 26AWG, nam-ı diğer servo wire kullanmanız hayrınıza olur şeklinde olacak.

Fotoğrafta henüz RESET bağlı değil.

solderedmodule

Sonrasında bu kabloların ucunu şarj aletinde uygun yerlere lehimlemek kalıyor. Uygun noktaları buldum ve kullandım, aşağıda görülebilir.

Hyperion-Pinout

TX RX noktaları hemen CP2102’nin yanıbaşında. Modülümüz 3.3V ile çalışıyor. Şansıma, kullanılan PIC24HJ128GP310 da 3.3V ile çalışan, 16bit, 100 pinlik bir mikrokontrolcü. 8MHz’lik bir kristal görüyoruz ancak yüksek ihtimal PIC’de dahili bulunan PLL marifeti ile 32MHz’de çalışıyordur.

Bu sayede HC-06’nın da 5V tolerant olmayan seri giriş pinlerine level shifter yapmak durumundan da kurtuldum. Herşey 3.3V, oh ne rahat.

Devre üzerinde boş lehim adacıkları bulma çalışması yürüttüm ve sonuç olarak 3V3 ve GND alabileceğim noktaları belirledim. Daha bir çok farklı yerden alınabilir, benim tercihim bu noktalar oldu.

Noktalardan kabloları çekince şöyle bir görüntü oluyor. Sallantıya karşı kabloları konnektörlerin arasından geçirerek bir nevi sabitlemiş olduk, Türk işi çözümler.

routing

Bu arada o konnektörler LCD için, biri backlight, diğeri data konnektörü. Burada gözükmeyen bir de keypad için bir ribbon var. Şarj akım çıkışları konnektörlerine lehimli, dolayısıyla üst kapağı tam olarak çıkaramıyorsunuz cihazdan, yana yatırmanız lazım çalışabilmeniz için.

Ayrıca LCD takılı değilken cihaz boot etmiyor, büyük ihtimal LCD’yi sürerken pin tasarrufu amaçlı delay ile değil, aslen doğru metod olan R/W pinini bağlayarak, meşguliyet durumunu okudukları anlaşılıyor. Sırf LCD bağlı mı değil mi kontrolü yapıp, daha sonra serviste okunmak amaçlı EEPROM içine “beni ekransız çalıştırdılar, kapağıma saldırdılar” manasında bir flag atmıyor ise aferin Hyperion’a.

Sırf açılıp açılmadığını anlamak için böyle bir çözüm yoluna gittiyse de oha diyoruz kendilerine. Bu örnekte ise zaten içine havya daldırdığımız için garanti problemimiz bitmiş oldu, sıkıntı yok.

Bu noktada işlem tamam, cihazı toplayıp çalıştırabiliriz.

Cihaz çalıştığında bilgisayardan Bluetooth aygıtları arattığınızda şarj cihazınız gözükecek. Eğer BT modülün adını değiştirmediyseniz (ki şarj aletine takmadan önce, bilgisayara seri bağlayarak yapmanız gereken bir iş, ben yaptım) HC-06 olarak göreceksiniz. Pair/eşleştirme konusuna girip, şifre olarak 1234 yazacaksınız. Sonuç olarak işlem bilgisayarınıza Bluetooth üzerinden çalışan bir seri port atıyor.

Bu seri port ile yazılımı kullanabiliyorsunuz, USB olmadan, kablosuz.

İlk seferde çalıştı, sıkıntı yaratmadı. Ta ki USB ile bağlayayım diyene kadar..

USB bağlandığında Bluetooth’u iptal etmek

BT modül şarj cihazı açıldığı an enerjilendiği için çalışır duruma geçiyor. Bunun yan etkisi olarak, her ne kadar Bluetooth üzerinden sorunsuz kullanabilseniz de, eski usül USB’den bağladığınız zaman çalıştıramıyorsunuz. Yani USB enumerasyonunda bir sorun yok, hatta USB seri kanalından veri de okuyabiliyorsunuz ama gönderemiyorsunuz. Dolayısıyla şarj cihazıyla bilgisayarınız iki yönlü bir iletişim kuramıyor, Hyperion Suite de çalışmıyor dolayısıyla.

Bunu yaşadığımda şarj cihazını toplamıştım, tekrar açmak zorunda kaldım…

Mevzunun teknik tanımı bus contention. Aynı hat üzerinde iki farklı cihaz olunca TX hattı kullanılmaz duruma geliyor bu örneğimizde.

Çözümünün yolu belli, aynı anda bir cihaz aktif olacak. Ya USB, ya Bluetooth.

Uygulamasının iki yolu var, birincisi bir switch ile Bluetooth modülü “açılır kapanır” yapmak. Aklıselim bir insan bu yolu tercih ederdi yüksek ihtimalle.

Şarj cihazı kasasına switch’in gireceği bir delik açmaya üşenmem ve çözümün yeterince şık olmadığı düşüncesinin ağır basması sebebiyle, yok bu bunun otomatiği arayışına girdim.

Çözümü CP2102 datasheetinde buldum. Cihazın 5V olan VBus’tan beslenen dahili bir regülatörü var. Bu sayede 3.3V cihazlarınızı da çalıştırabilirsiniz demişler, çipin kendisi 3.3V ile çalışıyor ve regülatörü de içinde, hatta dışarı bile veriyor; çok güzel.

Bunu buldum devre üzerinde; aşağıda işaretledim.

usbdetect

Kısaca bir USB kablo takıldığında işaretlenen nokta 3.3V’a çıkıyor. Takılmadığında ise floating kalıyor. Bunu stabilite kaygılarından dolayı weak (bahsi geçen yer supply rail olduğundan bayağı bir weak olmalı) bir pulldown ile aşağı çekmek lazım ancak yapmadım. Yapılmasını öneririm, ben sorun yaşamadım yapılmadığı halde. Ama yaşamayacağım manasına gelmiyor, bir MOSFET’te gate’i floating bırakmak yapılacak iş değil normalde.

mosfets

Neyse, bu detayı da bulduğumuza göre, BT modülün beslemesini ufak bir MOSFET ile açıp kapayabiliriz. Modül taş çatlasa 50mA çekiyor; MOSFET için sıkıntı olmayacak bir değer. Ancak tüm kabloları lehimledim, BT modüle giden GND de dahil. Şimdi sök tak kim uğraşacak dedim ve farklı bir yol aradım; onu da buldum: Modülün RESET pini.

Hemen denedim ve bu pini GND seviyesine çekince modülün iptal olup, TX/RX pinlerini de floating moda çektiğini teyit ettim. İlgili RESET pini floating bırakıldığında ya da high seviyeye çekildiğinde modül resetten çıkıyor. Floating bırakıldığında yine anahtar kelime, yazar burada yine bir pullup direncinden tasarruf etti. Oldu mu sana 2 direnç. Milli servet tabi, harcamamak lazım.

Böylelikle MOSFET drainini de RESET pinine bağladık.

Bütün bu kablo, MOSFET ve modülleri şarj cihazının sol kapağının içine silikon ile tutturdum. Sonuç şöyle bir şey oldu.

mounting

Nerede kaldı mükemmeliyetçilik diye soranlara, kapağın altında yanıtım hazır. Kimse görmüyor nasıl olsa diye çotuk sıcak silikon uygulamalarına kapak altında devam ettik.

LED’in yerleşimi manidar; tam o yerleştirildiği yerin plastiğinde fabrikasyon bir cutoff var ve arka tarafında etiket bulunuyor. Üstünde de USB port, temp sensor gibi ibareler var. LED yandı mı tam o yazıların arkasından yansıyacak şekilde yaptım.

Burada SMD LED kullanıp eşek kadar 3mm LED’i harcamamak gerekliydi ama, idare ediverin.

Şöyle gözüküyor dışarıdan:

led

Test yapıldı ve işlem başarılı. USB bağlandığında BT modül iptal oluyor.

BT ile de bağlayıp kontrolümüzü yaptık, şık oldu.

Kesin ip var.

Buyurun size kablosuz bilgisayara bağlanan şarj cihazı.

Kolay gele.