EmDeBe Hex Loader - Load Hex to Arduino Board



Emdebe Hex Loader ini berawal dari pertanyaan sekaligus ide seorang kawan,  Bisa ga kalau mau pakai Board Arduino tapi tidak ingin menggunakan IDE Arduino nya?. Jadi inginnya tetap menggunakan bahasa pemrograman yang sudah familiar. Mungkin juga sebagian dari kita,  sedang mempunya project dengan based Arduino Board sebagai main board nya, akan tetapi masih terkendala dari segi bahasa pemrograman nya. Kalaupun mau belajar dulu, pasti butuh waktu , akhir nya keinginan untuk tetap bisa menggunakan Board Arduino, dengan menggunakan bahasa pemrograman yang sudah dikuasai. Coba googling2 dan nongkrong di forum2 soal bahasan ini..dan akhir nya dapat jawaban nya "Bisa". Dan mulailah dibuat  software ini ( Emdebe ).

Sebelum nya, saya contohkan dulu program Hello Word ( Blink Led ) menggunakan IDE nya Arduino, seperti dibawah ini.


 Nah, perlu kita ketahui bahwa "Led" yang ada di board arduino ( disini saya pakai Arduino Uno ) ada di pin Digital 13. Bisa dilihat di pin maping di bawah ini

 
Sehingga, kalau kita ingin membuat program serupa seperti diatas dengan menggunakan Bahasa pemrograman lain, seperti di bawah ini  ada contoh dengan Bahasa Basic ( Bascom AVR ) dan Pascal ( mikroPAscal for AVR ).

Menggunakan Bascom



Setelah selesai menuliskan program nya, silahkan di save dan lakukan compile, sehingga akan kita dapatkan file Hexa nya. Seperti gambar di bawah ini.
 



Langkah berikut nya adalah mengisikan file Hex tersebut ke Board Arduino.  Nah,Kalau kita ingin mengisikan  file Hexa tersebut  menggunakan software arduino pasti ga bisa kan?  Oleh karena itu disni ada sebuah software dengan nama “EmDeBe Hex Loader” yang bisa kita gunakan untuk mengisikan file Hex tersebut ke board arduino. Berikut tampilan software nya..



Langkah pertama adalah pilih nomor com nya sesuaikan dengan com yang tersedia untuk arduino nya. Kemudian pilih nama board nya. Berikut nya panggil file hex nya..





lalu klik tombol “Write Hex”,  jika berhasil aka ada pesan seperti ini





dan lihat hasil nya pada board arduino uno nya apakah led pada board nya blink sesuai yang kita inginkan?

Selanjut nya dengan target membuat program yang sama seperti sebelum nya, akan tetapi sekarang kita akan membuat nya menggunakan bahsa Pascal ( mikroPascal for AVR ) , seperti di bawah ini :



dan hasil compilasi nya





lalu dengan cara yang sama seperti sebelum nya, silahkan dicoba di isikan file hex nya.. lalu lanjut kan klik tombol “Write Hex”.




Dan perhatikan hasil nya..sama kan??? Jadi dengan bantuan software ini, kita bisa menggunakan Board Arduino tanpa harus kawatir soal kewajiban menggunakan IDE Arduino nya. :D

Silahkan unduh software EmDeBe Hex Loader V1.1  nya disini.

Oh ya Emdebe Hex Loader V1.2 sudah ada lho, dengan penambahan "Serial Monitor", seperti gambar di bawah ini.


Nah, bagi kawan yg pengen unduh Versi terbaru ini, silahkan unduh aja disini.

Seiring dengan pemakaian, ada info bahwa software yang versi 1.2  tidak bisa ketika dicobakan ke Arduino Mega2560. Komunikasi ke arduino nya seperti nya ga sinkron, akhir nya dg bantuan seorang kawan, mulai di revisi dan berikut silahkan unduh software nya yang versi 1.2_rev. disni.

Ternyata cerita software ini tidak berhenti sampai disni. Ketika sedang bermain2 dengan Board Arduino + Bahasa Basic + Software Emdebe , merasa kesulitan ketika mau mengisi file data ( eeprom ) ke board nya , jadi pertanyaan nya bagaimana  cara nya kalau ingin mengisi File Eeprom ( *.hex, *.eep ) ke Arduino?

Awal nya berfikir..ah..mengisi data nya via program aja kalau gitu..
Jadi misal ingin memasukkan data "123456789" ke eeprom...kita bisa langsung menuliskan nya via program, seperti ini :

Dim Default_dat as string * 9
Default_dat = "123456789"
Writeeeprom Default_dat,&h0000

Program diatas adalah potongan program untuk menulis data "123456789" ke eeprom pada alamat 00h. Jadi iya memang tidak ada masalah, seperti itu saja sudah bisa kok,  akan tetapi cara ini kedepan mungkin akan sangat menyulitkan, semisal data2  akan kita isikan pada alat yang kita buat data nya banyak , nanti akan repot, artinya bagaimana? Artinya setiap kita ingin melakukan perubahan data default untuk di tiap sistem, maka kita harus mengubah nya dari program.

Jadi disini sedang dicarikan solusi nya bagaimana mengisikan file eeprom ( *.hex, *eep ) ke Board Arduino langsung dari Software. Awal nya dikira, bootloader pada arduino sudah ada handling untuk prosedur write/read eeprom secara software. Akan tetapi ketika beberapa kali dicoba untuk membuat  software Eeprom Loader nya selalu gagal saat proses verifikasinya, seperti ini error report nya :


Hmm..dari sini jadi penasaran kenapa ga bisa ditulis eeprom nya dari software, akhir nya beberapa kali diskusi dengan para master-master, dan akhir nya sampai pada info bahwa "Bootloader pada Arduino sekarang sudah tidak ada prosedur untuk handling penulisan eeprom via software, kalau arduino yang versi-versi awal itu  masih bisa, tapi sekarang sudah ditiadakan".

Berikut kutipan nya :

" The older Arduino bootloaders handle EEPROM.

The current UNO boards use Optiboot which does NOT handle EEPROM.

Optiboot fits into only 256 words and consequently is more appealing to the Arduino community. i.e. 32256 bytes available for sketches.

Personally, I would have thought it wise to tweak Optiboot in ASM so that it does flash and eeprom correctly.

Most Arduino sketches don't use pre-loaded EEPROM. As Cliff says, you can initialise it in your setup().

You only encounter the 'feature' when you use the bootloader for non-Arduino programs. (as I do)

There are too many UNOs out in the world. If you 'updated' Optiboot it would seriously upset all the pre-existing UNO owners.

David."

Jadi ternyata memang sudah tidak ada cara untuk mengisi file eeprom ke Arduino nya melaui bootloader, mungkin cara yang bisa ditempuh adalah menggunakan bantuan Downloader dari luar (semisal usbasp,univisp, dll ) dengan koneksi via jalur isp langsung ke mikro yang ada di Board Arduino nya.

Hmm..malah makin ribet yah kalau gitu. Akhir nya dapat satu jalan juga hasil dari belajar dan diskusi kesana kemari bersama para maestro :D.

Ini software Emdebe nya sudah bisa write eeprom langsung ke board arduino. namun disini ada  kelemahan nya, yaitu kita tidak bisa mengisi file flash dan file eeprom secara bersamaan.

Aturan nya adalah :

1. Mengisi file eeprom terlebih dahulu
2. Dilanjutkan mengisi file flash

 

Ok lah, rasanya saat ini cukup untuk menangani bagian ini, sambil kedepan ditunggu saran2 dari para master2 yang lain supaya menjadi masukan kedepan lebih baik.

Berikut tampilan Eeprom Loader nya, saya cobakan ke Arduino Uno.



Coba panggil file eeprom ..



Setelah itu coba write, dengan klik tombol "Write Eeprom"


Dan tunggu hingga selesai...


Setelah langkah ini selesai, maka selanjutnya kita ingin mencoba nya apakah data nya sudah masuk atau belum, sekarang kita menuju Page "Hex Loader" untuk mengisi file Flash "baca eeprom" lalu kita tampilkan data eeprom nya via serial" ( sebelum nya temen2 bisa membuat sendiri program untuk membaca data eeprom dari alamat sekian ke sekian ).


Nah sekarang berikut nya buka tab "Serial Monitor", lalu sesuaikan com nya..dan klik tombol connect


Yah, Alhamdulillah..data2 eeprom nya sudah sesuai dan barangkali temen2 juga mau cobain software Emdebe Loader V2.0 ini silahkan unduh disni..

Selama percobaan ini, saya hanya baru test run pada Arduino Uno, jadi mohon bantuan nya bagi kawan2 yang memiliki board Arduino variant lain..ditunggu komentar nya dan saran2 nya yah...supaya bisa buat belajar juga  :D

Semoga bermanfaat dan salam inovasi selalu .. :D


Comments   

0 #7 Florene 2017-05-08 03:30
Glad to be one of the visitors on this awe
inspiring internet site :D.
Quote
0 #6 manicure 2017-05-03 02:53
Saved as a favorite, I really like your site!
Quote
0 #5 anto 2015-11-17 12:55
saya nyoba yang verso 2 tapi muncul peringatan seperti ini

apa yah dan dagaimana penyelesaianya

trim

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: InvalidArgument =Value of '0' is not valid for 'index'.
Parameter name: index
at System.Windows. Forms.ComboBox. ObjectCollectio n.get_Item(Int3 2 index)
at Emdebe_Loader.f rmardumain.tmrp orts_Tick(Objec t sender, EventArgs e)
at System.Windows. Forms.Timer.Tim erNativeWindow. WndProc(Message & m)
at System.Windows. Forms.NativeWin dow.Callback(In tPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
Quote
0 #4 Sandi Saputro 2014-08-29 23:41
@Vao : thanks.. :D
Quote
0 #3 Sandi Saputro 2014-08-29 23:40
@mas Goreng Nase : bener mas...spasi itu dihitung 1 byte = 1 karakter..ascii nya 20 kalau ga salah..
Quote
+1 #2 Nasi Gorenk 2014-08-29 13:10
Kalau EEPROM ATMEGA328 diisi data seperti Asmaul Husnadiatas, berarti jumlah karakter yg bs disimpan max 1024 karakter termasuk spasi ya mas...?
Quote
+1 #1 vaolina 2014-08-29 06:23
Alhamdulillah
Quote

Add comment


Security code
Refresh