Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore Donanım[Proje] xum1541 - Arduino Pro Micro ile PC'ye 1541 floppy bağlamak
Sayfa: [1] 2 3 ... 9   Aşağı git
Yazdır
Gönderen Konu: [Proje] xum1541 - Arduino Pro Micro ile PC'ye 1541 floppy bağlamak  (Okunma Sayısı 17090 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« : Mayıs 13, 2018, 01:02:33 ÖÖ »

Selamlar arkadaşlar...

Bu aralar iş seyahatlerim sebebiyle evden uzak kalmıştım. Eve dönünce uğraşmakta olduğum retro projelere yeniden el atmaya başladım. Bu ufak proje için aldığım malzemeler masamda duruyordu, ben de bir el atayım dedim...

Konu aslında yeni değil. PC'ye Commodore 1541 floppy sürücü bağlama olayı yıllardır mevcut ancak paralel port üzerinden "x" kodlu basit kablolarla sağlanmaktaydı. Paralel portun güncel PC'lerden kaybolmasıyla birlikte daha modern ve stabil yöntemler ortaya çıkmaya başladı. Bunlara en iyi örnek ZoomFloppy...

Bu yazımda Atmega tabanlı sıfırdan bir proje yapmak zahmetli veya ZoomFloppy gibi ticari bir çözüme para harcamak istemeyenleriniz için Arduino Pro Micro tabanlı bir xum1541 kablosu yapımını anlatmaya çalışacağım...

Konudan Özay'ın (@Simon) cgtr'nin facebook sayfasında paylaştığı bir yazıdan sonra haberim oldu;

https://www.facebook.com/groups/commodore.gen.tr/permalink/1516092741851322/

Bu yazıda bahsi geçen proje sayfası ise şöyle;

http://myoldcomputer.nl/commodore-64/xum1541-promicro/

Bu yazımda bu bahsi geçen kabloyu yaparken ...



... yaşadığım sorunlara da değinerek kendi kablosunu yapmak isteyecek arkadaşlara Türkçe bir kaynakça yaratmak istedim...

Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #1 : Mayıs 13, 2018, 01:17:41 ÖÖ »

Konuyu basitçe özetlemek gerekirse, xum1541 kablosu bir ucu USB diğer ucu Commodore seri portu soketi olan bir kablo. Amacı PC'ye Commodore 1541 sürücüsünü güvenli bir şekilde bağlamamızı ve her türlü disk işlemini gerçekleştirmemizi sağlıyor. Elbette ki PC'ye Commodore 1541 bağlama sebebimiz PC'de bir veri depolama cihazı olarak kullanmak değil, internetten indireceğiniz D64 disk imaj dosyalarını gerçek 5.25" Commodore floppy'lerine yazmak. Bu sayede retro deneyimini maksimumda yaşayabilmeniz için Commodore 64 ve 1541 sürücünüzü 1541 emulasyonu yerine gerçek floppy ler ile kullanabilmeniz mümkün oluyor...

Bu projeyi yapan arkadaş Arduino pro micro adı verilen ucuz Arduino'lardan birisini seçmiş kendine. Aslında Arduino ile aram pek iyi değildir, hatta Arduino konusunda cahilim. Ben genellikle Atmel micro denetleyicisine direk C ile kod yazarak proje yapmayı daha çok seviyorum ancak bu kullanılan modelin ucuzluğu ve doğal USB desteği bu projeyi basitleştiriyor ki bu Arduino modeli de aslından o kadar basit ki aldığım fiyata sıfırdan Atmega çipiyle bir devre yapmak neredeyse imkansız...

Neyse, yazıyı ilk okuduğumda bu Arduino Pro Micro nedir diye araştırdım. Bu modele dair bilgiyi Arduino web sitesinde bulamayınca (Orada sadece Arduino Micro var ve bu yazıda fotoğrafını gördüğüm devre değil) biraz daha araştırdım. Anladım ki bu model Sparkfun tarafından lisanlanlı olarak üretilmiş.

Yerli piyasada Sparkfun versiyonunun fiyatına baktım 80 TL civarındaydı. Zaten eski bir model olduğundan da tükenmiş durumdaydı. Sonra biraz daha araştırınca 30-40 TL arasında çakmalarını buldum. Ben benim Arduino'yu bir kaç diğer malzeme almak için gittiğim Konya Sokak'taki "Maker Anakara" dükkanından aldım.



Elbette ki aliexpress'den yarı fiyatına getirtilebiliyor

Gördüğünüz üzere bu model alışık olduğumuz Arduino'larla kıyaslandığında oldukça küçük ve bir projeye gömülecek nitelikte ucuz.
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #2 : Mayıs 13, 2018, 01:23:18 ÖÖ »

Bu kabloyu yapmak için ihtiyacınız olan malzemeler şöyle;

- Arduino Pro Micro (Çakmasını alın daha ucuz)
- USB kablo (bir ucu PC'Ye girebilecek şekilde büyük diğer ucu micro USB formunda olursa daha iyi)
- 6 pin erkek DIN soketi
- içinden 6 kablo geçen bir kablo (ben UTP network kablosu kullandım)
- bir minik kutu (opsiyonel)



Gördüğünüz gibi bende bir ucu Micro USB olan USB kablo yoktu. Ben de ucunda üzüm salkımı gibi çeşitli kablolar olan (genelde kırmızı ışıkta durunca arabanıza yaklaşan işportacıların sattığı ) çakma cep telefonu şarjının ucundaki micro USB soketi söktüm.
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #3 : Mayıs 13, 2018, 01:33:41 ÖÖ »

Ben elimdeki USB kabloyu micro USB'ye çevirmek için biraz uğraştım. Sizin böyle bir uğraşıya girmenize gerek yok. Direk micro USB kablo alabilirsiniz. Ancak dikkat edin sadece şarj özelliği olan ucuz kablolardan değil data hatları da olanından almanız lazım

Hatta micro USB kabloya bile ihtiyacınız yok. Ucunu sıyırdığını USB kablonun ince kablolarını direk Pro micro'nun ilgili yerlerine lehimleyedebilirsiniz zira ben kabloyu küçük kutuya sığdırmaya çalışırken çakma Arduino'nun micro USB soketi kopyu elimde kaldı Kahkaha

Neyse, micro USB kablo yapacak olanlar için gelsin bu adımlar diyelim ve devam edelim. önce USB kablonun bir ucunu kestim ve kabloları sıyırıp uçlarını lehimledim...



Sonra çakma şarj çıhazından söktüğüm micro USB soketini lehimledim...





Son olarak hepsinin dışına bir makaron geçirince micro USB kablomuz hazırlandı...

« Son Düzenleme: Mayıs 13, 2018, 23:03:19 ÖS Gönderen: yavuzg » Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #4 : Mayıs 13, 2018, 01:36:59 ÖÖ »

Eveeet, micro USB kablom hazırlanınca ilk olarak Arduino Pro micro'yu PC'ye bağlayayım dedim bakalım ne olacak, PC tanıyacak mı bu cihazı...

Üzerindeki ışıklar yanınca sevindim, çakma Arduino en azından çalıştı...



USB cihaz olarak da PC algıladı, oh oh her şey yolunda



... dedik ve erken konuştumuzu anladık



PC Arduino Pro Micro cihazımızı tanımadı...
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #5 : Mayıs 13, 2018, 01:42:08 ÖÖ »

Neyse biraz daha okuduk araştırdık, PC'Nin bu cihazı tanıması için sürücülerini yüklemek lazımmış. Bir kaç sürücüyü başarısız olarak denedikten sonra (Sparkfun sürücüleri işe yaramadı) kullandığım işletim sistemi için (Win7 64-bit) uygun sürücülerin Arduino IDE programından çıktığını öğrendim.

Dolayısıyla bu cihazı kullanabilmeniz için bedava olan Arduino IDE programını indirmenizi tavsiye ederim.

https://www.arduino.cc/en/Main/Software

Bu yazılımı kurduğunuzda sürücüler de kuruluyor ve "Pro Micro" Arduino Leonardo olarak windows'da beliriyor... (Zaten Sparkfun'ın sitesinde de bunun firmware'inin Leonardo olduğunu okumuştum)


Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #6 : Mayıs 13, 2018, 01:56:56 ÖÖ »

İşi yarıladık...

Şimdi sıra Arduino Pro Micro (Leonardo) ya xum1541 firmware'ini USB üzerinden atmaya geldi.

Bunun için avrdude kullanıyoruz.

xum1541 (promicro) firmware'ini bu linkten;

https://github.com/zyonee/opencbm/tree/master/xum1541

Avrdude'un son sürümünü de (6.3) bu link'den indirebilirsiniz;

http://download.savannah.gnu.org/releases/avrdude/

Şimdi hemen adamın sitesindeki gibi avrdude komut satırını yazıyorum ve firmware'i kolayca atmayı hayal ediyorum... (Hayat keşke internette yazılanlar kadar kolay olsa )



Ama bu basit komutu bile başarıyla çalıştıramamanın hayal kırıklığını yaşıyorum




avrdude hata veriyor. periyodik olarak deniyor deniyor deniyor ama sonuç nafile...
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #7 : Mayıs 13, 2018, 02:09:58 ÖÖ »

Meğersem bu cihaza USB üzerinden firmware atabilmek için bu alete önce reset atmalıymışız. Onunla da kalmıyor, reset'ten sonra alet sizi 8 saniye bekliyormuş. Bu 8 saniye içinde cihaz bootloder modunda sizin firmware atmanızı beklerken COM portu numarası da değişiyormuş. Genelde de ilk bağlandığında aldığı COM port numarasının bir fazlası olurmuş...

Bu bilgilere ulaşmak için kaç tane yabancı forum yazısı okudum tahmin edersiniz

Orijinal Arduino Micro veya Leonardo'da bir reset butonu olmasına rağmen bu çakma cihazda maalesef yok. O zaman bu cihaza basit bir de reset butonu ayarlanız gerekiyor...




Bu butona basıp değişen COM port numarasını görün önce...


Sonra bekleyin, 8 saniye sonra alet bi geri dönsün. Sonra avrdude komut satırınızı burada gördüğünüz COM port numarası ile güncelleyin...



Sonra bil eliniz reset butonunda, Windows Device Manager arkada açık vaziyette, diğer eliniz de avrdude komut satırında hazır beklerken reset butonuna basın...

Windows "di dong" diye ses çıkartıp Device Manager kendini yenileyip yeni COM portu ile Arduino Leonardo'yu görüntülediğinde diğer elinizle avrdude satırını çalıştırmak için enter'a basın

Sonuç?



Firmware yüklemesi %87 civarında alet bir anda sapıttı... Aleti söktüm taktım ancak artık PC takılan bir USB cihazı olarak algılamıyordu. Arduino Leonardo kayboldu...

Kısaca aleti büyük bir başarıyla "brick" ettim
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #8 : Mayıs 13, 2018, 02:30:46 ÖÖ »

Eveet, proje bir anda xum1541'den birck edilen arduino nasıl kurtarılır projesine dönüştü

Şimdi öncelikle lafı daha fazla uzatmadan arduino'Yu nasıl brick haline getirdik onu anlatayım.

Hata şöyle gelişti; ben xum1541 firmware'ini adamın yazısındaki linkten ulaştığım github sayfasında görünen "xum1541-PROMICRO-v07.hex" dosyasını mouse sağ tuşa basıp indirdim. Sonradan anladım ki github sayfasında gösterilen link aslında HEX dosyasının internetten tarayıcısında "görüntülenebilir" bir text versiyonuymuş. Yani binary firmware atacağımız yerde saçma sapan bir text versiyonunu atmaya çalışmışım. Doğal olarak bu text versiyon (yani aslında html sayfası) oldukça büyük ve firmware atılması 8 saniyeden uzun sürdü ve cihaz bir anda açılınca içinde saçma sapan bir firmware ile hayat döndü.

Yani artık ne Arduino Leonardo ne de xum1541 durumunda. Brick oldu kısaca

Bunları neden yazıyorum? Siz de cihazı birck etmeyin diye. Ola ki brick ettiniz, ne yapacaksınız?

Anlatayım.

Cihaszımız artık içinde USB'den firmware kabul edebilecek bir bootloader'a sahip olmadığından bu işi ICSP yöntemi ile başka bir Arduino ile veya programlayıcı ile yapmak lazım. Bende başka Arduino yok ancak eski model basit bir USBasp programlayıcı var...

Arduino'ya ICSP'den bağlanabilmek için önce birlikte gelen pin header'ları lehimliyorum.



Sonra bu web sitesindeki pin dizilimine bakarak bir ICSP kablosu yapıyorum...

http://www.coreforge.com/blog/2014/09/recovering-arduino-pro-micro-atmega32u4/



Sonra Arduino ve kabloyu bir breadboard'a yerleştirip...



... USBAsp programlayıcımı bağlıyorum...



... ve bu düzeneği PC'ye bağlıyorum.



Şimdi bu şekilde cihaza xum1541 firmware'İni atabilecek aşamaya geldim ancak amaç bu işi ekstra programlayıcı ile yapmak değil basitçe USB üzerinden yapmaktı ki herkesde AVR programlayıcı olmayabilir. Dolayısıyla projenin bu kısmını Arduino kurtarma amaçlı olarak devam ediyorum...

Bu sebeple xum1541 firmware'İ yerine Leonardo'Nun firmware'İni atarak devam edelim. Atacağımız Leonardo firware'ini uzakta aramamıza gerek yok zira daha önce kurduğumuz Arduino IDE yazılımının içinde mevcut. Ve hatta bootloader'ı Arduino IDE yazılımı ile de basitçe yüklemek mümkün olsa da (ki yukarıda linkini paylaştığım eleman da öyle yapmış) Arduino IDE yazılımı benim çakma USBAsp programlayıcı ne yaptıysam tanımadı...

Neyse, zaten Arduino IDE de bu işi arkaplanda avrdude ile yapıyormuş zaten onu da öğrendikten sonra Leonardo firware'İni elle atmaya karar verdim.

Firmware dosyası ise Arduino IDE yazılımının kurulum dizininde mevcut;

C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\caterina\

Bu klasördeki "Leonardo-prod-firmware-2012-12-10.hex" dosyasını atacaksınız...



İşlem başarılı...

Bu işlem sonunda aleti USBAsp'den söküp ICSP bağlantılarını çıkartıp USB'den PC'ye tekrardan bağlayınca Windows'un o "di dong" sesini duyunca bi oh çektim




Artık işimize geri dönebiliriz...
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #9 : Mayıs 13, 2018, 02:36:49 ÖÖ »

Arduino Pro Micro'yu kurtardıktan sonra esas projemize geri döndüm...

xum1541 firmware'İni bu sefer github'daki "Clone or download" linkinden indirdim.

Hazırlıkları yaptım. Komut satırı hazır, device manager hazır...



Reset butonu hazır...



... ve butona basıp, COM4'ü gördükten sonra avrdude satırını doğru HEX dosyası ile  çalıştırdım...

İşlem bittiğinde windows yeni bir cihaz bulduğunu bildirdi



Device manager'da artık Leonardo yok, xum1541 var Kahkaha Kahkaha Kahkaha

Logged

i_r_on
Uzman
*****
Mesaj Sayısı: 2.866



Üyelik Bilgileri WWW
« Yanıtla #10 : Mayıs 13, 2018, 02:39:22 ÖÖ »

XU1541'i yapsaydın keşke Usb desteğini harici devre ile sağlıyorsun ama en azından bu kadar uğraştırmıyor.  Bir kısmı delikli pertinaks, bir kısmını da breadboard üstünde yapmıştım. (Zira Atmega8'i pro mini ile kolayca programlayabiliyorsun )

Devamında OpenCBM ve Zadig falan gelecek sanırım. Oralar da saç baş yolduruyor biraz

Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #11 : Mayıs 13, 2018, 02:49:11 ÖÖ »

Şimdi artık xum1541 (promicro) windows sürücülerini yükleyebiliriz.

Bunun için "Zadig" yazılımını kullanıyoruz...

http://zadig.akeo.ie/

Zadig tek bir EXE. Direk çalıştırıyorsunuz ve önce menüden Options=>List All devices diyorsunuz.

Dolan listeden xum1541'i seçiyorsunuz ve aşağıdaki resimdeki gibi libusb 1.2.6.0 seçip install driver butonuna basıyorsunuz (resimde re-install gözüküyor zira fotoğrafı çekmeyi unuttum, resmi driver yükledikten sonra çektim)


 
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #12 : Mayıs 13, 2018, 02:52:20 ÖÖ »

XU1541'i yapsaydın keşke Usb desteğini harici devre ile sağlıyorsun ama en azından bu kadar uğraştırmıyor.  Bir kısmı delikli pertinaks, bir kısmını da breadboard üstünde yapmıştım. (Zira Atmega8'i pro mini ile kolayca programlayabiliyorsun )

Devamında OpenCBM ve Zadig falan gelecek sanırım. Oralar da saç baş yolduruyor biraz



aynen...

Ya ben saptığım dolambaçlı yolları yazınca karmaşık gözüküyor aslında. Benim yaptığım hataları yapmayın diye böyle yazdım.

XU1541 yapmamamın sebebi bu yöntem biraz daha pratik sanki, eğer benim yaptığım hatalar yapılmazsa tabii
Logged

yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.107



Üyelik Bilgileri
« Yanıtla #13 : Mayıs 13, 2018, 03:03:48 ÖÖ »

Zadig ile xum1541'in windows sürücülerini yükledikten sonra artık cihazımız windows tarafından tanınır hale geldi



Şimdi artık 1541'i yönetebilmek için gerekli olan yazılımı, OpenCBM'i indiriyoruz.

http://opencbm.trikaliotis.net/

Önce yazılımın zip paketini PC'nizde uygun bir yere açın.




Sonra yazılımın kurulumunu yaptığınız kablonun tipine göre yapan "install" komutunu çalıştırarak tamamlayın..




OpenCBM aslında Commodore IEC bus ile konuşmaya hazır ancak ham bir yazılım. Komutları elle çalıştırmak yerine bir grafik arayüzüne ihtiyacınız var. Bunun için de CBMxFer yazılımını indiriyoruz;

http://www.6502.org/users/sjgray/software/cbmxfer/cbmxfer.html

Yazılımı kurarken de OpenCBM'in kurulduğu yeri gösteriyoruz (Bunu unutmayın burası önemli). Yani "C:\Program Files\OpenCBM"


Logged

i_r_on
Uzman
*****
Mesaj Sayısı: 2.866



Üyelik Bilgileri WWW
« Yanıtla #14 : Mayıs 13, 2018, 03:07:05 ÖÖ »

aynen...

Ya ben saptığım dolambaçlı yolları yazınca karmaşık gözüküyor aslında. Benim yaptığım hataları yapmayın diye böyle yazdım.

XU1541 yapmamamın sebebi bu yöntem biraz daha pratik sanki, eğer benim yaptığım hatalar yapılmazsa tabii

Doğru diyosun

Github'da firmware için hiç başıma gelmedi ama başka tipte dosyalarda yaşadığınla çok karşılaştım.

Pro micro arduino ile tak çalıştır şeklinde. Reset tuşuna falan da gerek olmuyor (zaten öyle bir buton yok dediğin gibi). Hex dosyasını arduino sketch'ine çevirme imkanı varsa arduino ide'si de kullanılabilir programlamak için.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Sayfa: [1] 2 3 ... 9   Yukarı git
Yazdır
Gitmek istediğiniz yer: