Next generation ODROID-GO firmware

Post Reply
crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 06, 2018 1:53 pm

The next generation ODROID-GO firmware is being developed here:
https://github.com/OtherCrashOverride/o ... o-firmware

This firmware is intended to simplify flashing and updating applications for the device. Applications will provide a "firmware.bin" file that should be copied to a SD card. Application updates are as simple as replacing the "firmware.bin" file on the SD card and entering flash update mode.

The ODROID-GO will enter flash update mode by turning it off, holding the "B" button, and turning it on. The "B" button must be held for 5 seconds to confirm flash update mode and the blue LED will illuminate. Once flash update begins, the "firmware.bin" on the inserted SD card will be flashed to the device.

Application developers can use the "makefirmware" tool to package their software into a "firmware.bin" file:
https://github.com/OtherCrashOverride/o ... kefirmware

Code: Select all

makefirmware "Application Name" slot binary [slot binary]
An example for a typical esp-idf application:

Code: Select all

./makefirmware "My Application Name" 0 build/myapp.bin

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Fri Jul 06, 2018 2:08 pm

Great news! I assume this "self flashing" method will replace the menu and everything else, or does it just replace a rom at runtime?
If your binary is bad and won't start, can you flash a new one with the same method, or is the "bootloader" wiped as well?
To start the application multiple times do you need to boot and flash the firmware on each boot?
Does it boot to menu by default?
An extension to your/somebody else's menu would be to list bin files in a directory and on select copy that file to firmware.bin and enter flash mode. That way you could have a menu of custom programs.

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 06, 2018 2:31 pm

mad_ady wrote: I assume this "self flashing" method will replace the menu and everything else, or does it just replace a rom at runtime?
This new firmware will always be present on the device (unless intentionally erased). The "firmware.bin" contents do not overwrite it.
mad_ady wrote:If your binary is bad and won't start, can you flash a new one with the same method, or is the "bootloader" wiped as well?
Under normal circumstance, this can be recovered by placing the device in firmware update mode.
mad_ady wrote:To start the application multiple times do you need to boot and flash the firmware on each boot?
The "firmware.bin" is only flashed with the device is placed in firmware update mode. Power on/off does not cause additional flashing.
mad_ady wrote:Does it boot to menu by default?
Its design is meant to be trivial, so there is no menu. This does not prevent an application from providing a menu as is done for the emulators.
mad_ady wrote:An extension to your/somebody else's menu would be to list bin files in a directory and on select copy that file to firmware.bin and enter flash mode. That way you could have a menu of custom programs.
There is nothing preventing this; although, it is not an intended use. There are far simpler ways to achieve the desired result.

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Fri Jul 06, 2018 2:57 pm

crashoverride wrote:
mad_ady wrote:Does it boot to menu by default?
Its design is meant to be trivial, so there is no menu. This does not prevent an application from providing a menu as is done for the emulators.
What I meant was - when you boot - do you always boot to your app? (e.g. the last thing that booted)? If so, in order to get back to the rom launcher menu the app has to set the "menu/springloader" as active again, right?

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 06, 2018 3:09 pm

There is now device firmware and application firmware. This is device firmware. Its purpose is to flash application firmware. What that application firmware does and how it operates is entirely up to the author.

Voljega
Posts: 23
Joined: Fri Jul 06, 2018 4:58 am
languages_spoken: english
Contact:

Re: Next generation ODROID-GO firmware

Unread post by Voljega » Sat Jul 07, 2018 4:47 am

Excellent news do you know when it will bevready approximatively ?

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Sat Jul 07, 2018 8:34 am

I would like to begin public testing within the next two (2) weeks (before Jul 20, 2018). However, this is subject to change.

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Sat Jul 07, 2018 1:48 pm

If one were to write a new emulator (e.g zx spectrum) to slot 3 and zx spectrum knew how to load from data slot 3, does it mean that you can use the existing launcher to select, load roms and launch the new emulator? Or is something else needed as well?

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Sat Jul 07, 2018 2:48 pm

mad_ady wrote:does it mean that you can use the existing launcher to select, load roms and launch the new emulator?
No, springboard is not a development framework. It is [part of] a sample application demonstrating the device's capabilities.
Last edited by crashoverride on Sat Jul 07, 2018 5:02 pm, edited 1 time in total.

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Sat Jul 07, 2018 4:03 pm

I know, but I'm guessing it can be abused the way I described it, right? :)

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Sat Jul 07, 2018 5:02 pm

There is nothing preventing it. The best candidate for such abuse would be the NES emulator. You would overwrite it in flash and add ".nes" to the end of the ZX files that would placed in the "roms/nes" folder.

This is way off topic for this thread. If the community wishes to further discuss it, a new thread should be opened.

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Sat Jul 07, 2018 5:25 pm

Thanks and sorry for the derailment :)

User avatar
Kabron
Posts: 48
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by Kabron » Wed Jul 11, 2018 9:51 pm

crashoverride wrote: The ODROID-GO will enter flash update mode by turning it off, holding the "B" button, and turning it on. The "B" button must be held for 5 seconds to confirm flash update mode and the blue LED will illuminate. Once flash update begins, the "firmware.bin" on the inserted SD card will be flashed to the device.
I have two ODROID-GO one with 20180605 FW another flashed to 20180710.
None of them follows the above procedure.
I expected to see any specific activity on serial port during the procedure, but saw nothing special.
Instead, with button B pushed during power on the device returns to last game.

I need explanations.

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Thu Jul 12, 2018 9:26 am

At the time of this writing, the next-gen firmware has not been released yet. A pre-release version is used to support the 20180708 and 20180710 firmware. For those versions, the button must be held for 10 seconds instead of 5.

User avatar
Kabron
Posts: 48
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by Kabron » Thu Jul 12, 2018 3:30 pm

You guess I did not try?
10, 15, 20 seconds also does nothing

mameise
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mameise » Thu Jul 12, 2018 5:18 pm

Did you try latest one from today? Maybe that fixes it.

@Crash: Now the new firmware is official right? So i will try out after work :) Thanks for your great effort you put in this device.

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Thu Jul 12, 2018 5:25 pm

The new firmware is a "release".

pre-release = Work-in-progress / incomplete. Not tested. Intended for developers and testers.
release = Limited testing. May have issues. Intended for developers, testers, and early adopters.
official = Full testing. Intended for everyone.

mameise
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mameise » Thu Jul 12, 2018 5:53 pm

Thank you for your quick anwer. Release is enough for me to test this :) Will make my tests easier.
Sorry but just to get it right:

I could now use the bin file from an arduino ide sketch and flash it the new way and to go back to emulators i just use the firmware.bin from you. Did i get it? :)

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Thu Jul 12, 2018 6:26 pm

mameise wrote:I could now use the bin file from an arduino ide sketch and flash it the new way and to go back to emulators i just use the firmware.bin from you.
Only if you packaged the arduino sketch as "application firmware" using the provided tool:
https://github.com/OtherCrashOverride/o ... kefirmware

Otherwise, you need to re-flash the device firmware which will flash the application firmware (firmware.bin).

mameise
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mameise » Thu Jul 12, 2018 6:30 pm

Ah perfect hint, thanks :) And thanks for the provided tool.

briansm
Posts: 43
Joined: Wed Jun 27, 2018 3:35 am
languages_spoken: english
ODROIDs: Ordoid GO, Ordoid-W
Contact:

Re: Next generation ODROID-GO firmware

Unread post by briansm » Fri Jul 13, 2018 8:26 pm

Tried the latest firmware, but frustrating to work with. The first time I installed it it went fine. Then I tried installing an unconverted bin file, the loader complained. fine. But powering the device off/on keeps on dropping me into the firmware loader with an error instead of going back to a normal state. Tried flashing with earlier firmware release then upgrading again, still getting dropped into the firmware loader screen with an error message, either 'NO FILE ERROR' if there's no firmware.bin on the SD card, or a fast flashing blue light after the 'OK' screen when trying to write a converted bin file to app slot 4.

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 13, 2018 9:22 pm

briansm wrote:Then I tried installing an unconverted bin file, the loader complained.
Currently, the loader only accepts "firmware.bin" on the SD card. It contains a header to ensure the file is intended to be used on ODROID-GO.
briansm wrote:But powering the device off/on keeps on dropping me into the firmware loader with an error instead of going back to a normal state.
The device remains in firmware update mode until a firmware has been successfully written. This is by design since the state of flash is indeterminate until a successful update has occurred: it could be blank, it could be corrupted, it could be partially updated.
briansm wrote:a fast flashing blue light after the 'OK' screen when trying to write a converted bin file to app slot 4.
A fast flashing light means an error occurred, there should be a message stating what the error was on the display. The bottom "OK" indicates the last action that was successful and is meant to assist in diagnosing issues. Diagnostic information is also output on the USB cable and can be captured with a serial terminal set at 115200,N,8,1 with no flow control. It should be noted that for an application firmware to start, it needs to be written to slot 0. However, using a different slot should not result in a firmware loading failure (blue flashing light).

briansm
Posts: 43
Joined: Wed Jun 27, 2018 3:35 am
languages_spoken: english
ODROIDs: Ordoid GO, Ordoid-W
Contact:

Re: Next generation ODROID-GO firmware

Unread post by briansm » Fri Jul 13, 2018 9:53 pm

I used the serial terminal to see what has happening, the flash happened OK but it was crashing after reboot (the old firmware using wrong addresses I guess).
I fixed it by just flashing the master firmware.bin at
https://github.com/OtherCrashOverride/g ... g/20180708

from SD card first, and then putting my own firmware.bin in over that.

How many slots are there? How does the springboard deal with something in an unknown slot? Or are the all pre-allocated just now? I'm just wondering how a new emulator would fit in.

Edit - Tried using slot 0, that works, it replaces springboard completely (I guess that's what normally lives in slot 0).

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 13, 2018 10:42 pm

briansm wrote:How many slots are there?
There are now 10:
https://github.com/OtherCrashOverride/o ... itions.csv
briansm wrote:How does the springboard deal with something in an unknown slot?
It is completely ignored.
briansm wrote:I'm just wondering how a new emulator would fit in.
Due to technical and other considerations, many things would need to be evaluated to determine how it would fit in.
briansm wrote:(I guess that's what normally lives in slot 0).
The menu is slot 0, NES is slot 1, GB/GBC is slot 2, and SMS/GG is slot 3.

User avatar
mad_ady
Posts: 5233
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1
Location: Bucharest, Romania
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mad_ady » Fri Jul 13, 2018 10:49 pm

Did you manage to create 10 partitions because you no longer have to save the rom being loaded in flash and load it directly from SD/PSRAM?

crashoverride
Posts: 4230
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Contact:

Re: Next generation ODROID-GO firmware

Unread post by crashoverride » Fri Jul 13, 2018 10:58 pm

mad_ady wrote:Did you manage to create 10 partitions because you no longer have to save the rom being loaded in flash and load it directly from SD/PSRAM?
yes.

mameise
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by mameise » Tue Jul 17, 2018 3:22 pm

crashoverride wrote:
mameise wrote:I could now use the bin file from an arduino ide sketch and flash it the new way and to go back to emulators i just use the firmware.bin from you.
Only if you packaged the arduino sketch as "application firmware" using the provided tool:
https://github.com/OtherCrashOverride/o ... kefirmware

Otherwise, you need to re-flash the device firmware which will flash the application firmware (firmware.bin).
Thanks again. Successfully converted an arduino sketch into firmware.bin and flashed with new device firmware by holding B during start.
Worked like a charm.

User avatar
Kabron
Posts: 48
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by Kabron » Thu Jul 26, 2018 6:38 pm

crashoverride wrote:

Code: Select all

./makefirmware "My Application Name" 0 build/myapp.bin
Could you be kind to explain more precisely.
I tryed several variants:

Code: Select all

vlady@HP MINGW32 ~/esp/odroid-go-firmware/tools
$ ./makefirmware "MultiApp" 0 build/multiapp.bin
-bash: ./makefirmware: Is a directory

Code: Select all

vlady@HP MINGW32 ~/esp/odroid-go-firmware/tools
$ make makefirmware "MultiApp" 0 build/multiapp.bin
make: Nothing to be done for 'makefirmware'.
make: *** No rule to make target 'MultiApp'.  Stop.

vlady@HP MINGW32 ~/esp/odroid-go-firmware/tools
$ make ./makefirmware "MultiApp" 0 build/multiapp.bin
make: Nothing to be done for 'makefirmware'.
make: *** No rule to make target 'MultiApp'.  Stop.
etc...

Code: Select all

vlady@HP MINGW32 ~/esp/odroid-go-firmware/tools/makefirmware
$ make
gcc -g main.c -o makefirmware
produces makefirmware.exe file

odroid-go-firmware building and flashing finished successfully except SD CARD ERROR and fast flashing blue

What is the exact building command?

User avatar
Kabron
Posts: 48
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO
Contact:

Re: Next generation ODROID-GO firmware

Unread post by Kabron » Thu Jul 26, 2018 7:46 pm

Well, with blood, sweet and fuck solve it.
For others:
1. in MSYS32 goto
~/esp/odroid-go-firmware/tools/makefirmware

2. make
it generates makefirmware.exe which will be used fot generation the target firmware

3. exit MSYS32 and run command prompt(cmd) from ~/esp/odroid-go-firmware/tools/makefirmware

4. find in MSYS32 folder and copy to ~/esp/odroid-go-firmware/tools/makefirmware files msys-2.0.dll and msys-gcc_s-1.dll

5. copy yourbin.bin to ~/esp/odroid-go-firmware/tools/makefirmware

6. in ~/esp/odroid-go-firmware/tools/makefirmware run
makefirmware "My Application Name" slot# yourbin.bin
it generates the target firmware.bin

Post Reply

Return to “General Topics”

Who is online

Users browsing this forum: No registered users and 0 guests