Next generation ODROID-GO firmware

Moderators: mdrjr, odroid

Next generation ODROID-GO firmware

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

The next generation ODROID-GO firmware is being developed here:
https://github.com/OtherCrashOverride/odroid-go-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/odroid-go-firmware/tree/master/tools/makefirmware
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
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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.
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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?
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

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

Excellent news do you know when it will bevready approximatively ?
Voljega
 
Posts: 20
Joined: Fri Jul 06, 2018 4:58 am
languages_spoken: english

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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?
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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? :)
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

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

Thanks and sorry for the derailment :)
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
Kabron
 
Posts: 45
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

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

You guess I did not try?
10, 15, 20 seconds also does nothing
Kabron
 
Posts: 45
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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.
mameise
 
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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? :)
mameise
 
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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/odroid-go-firmware/tree/master/tools/makefirmware

Otherwise, you need to re-flash the device firmware which will flash the application firmware (firmware.bin).
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

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

Ah perfect hint, thanks :) And thanks for the provided tool.
mameise
 
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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.
briansm
 
Posts: 43
Joined: Wed Jun 27, 2018 3:35 am
languages_spoken: english
ODROIDs: Ordoid GO, Ordoid-W

Re: Next generation ODROID-GO firmware

Unread postby 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).
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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).
briansm
 
Posts: 43
Joined: Wed Jun 27, 2018 3:35 am
languages_spoken: english
ODROIDs: Ordoid GO, Ordoid-W

Re: Next generation ODROID-GO firmware

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

briansm wrote:How many slots are there?

There are now 10:
https://github.com/OtherCrashOverride/odroid-go-firmware/blob/master/partitions.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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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?
User avatar
mad_ady
 
Posts: 4427
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Next generation ODROID-GO firmware

Unread postby 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.
crashoverride
 
Posts: 3914
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Next generation ODROID-GO firmware

Unread postby 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/odroid-go-firmware/tree/master/tools/makefirmware

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.
mameise
 
Posts: 79
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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?
Kabron
 
Posts: 45
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO

Re: Next generation ODROID-GO firmware

Unread postby 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
Kabron
 
Posts: 45
Joined: Sun Feb 24, 2013 9:01 pm
languages_spoken: english
ODROIDs: U2, ODROID-GO


Return to General Chat

Who is online

Users browsing this forum: No registered users and 4 guests