Extension ideas for device firmware

Moderators: mdrjr, odroid

Extension ideas for device firmware

Unread postby mad_ady » Fri Aug 10, 2018 2:25 pm

With a stable/official device firmware release on the way, I'd like to stir things up and throw in some ideas about how a future device firmware version might work. (I can hear @crashoverride in the background going for his pitchfork) :)

With new community emulators and programs there needs to be a software distribution/update mechanism directly on the GO (since it has wifi). The device firmware could act like an app store, connecting to a HK server to get a list of apps, version, description, maybe an image/screenshot and a download link. Upon the selection of an app, the device firmware would download the file (which can be hosted on github or elsewhere) to sd/odroid/firmware and then offer to flash it. It could do the same with new device firmware updates.

Requirements:
* Hardkernel needs to maintain a list of apps collected from the forum (operational overhead)
* Wifi needs to be configured on the GO. One way to do it would be to switch the GO to AP mode and connect with a browser to a simple web interface where the user can write ssid/password (and maybe a url for the repo?). Once set the settings get saved in flash (if I remember correctly the esp has special flash reserved for wifi parameters, does it not?). When rebooted in device firmware mode the device tries to connect to HK to see if there are updates and prompt the user. This is also an opportunity to "call home" anonymously for statistic purposes if HK wishes to collect such data.
* NTP - when downloading from HTTPS either accept all certificates (might be simpler to implement), or do a time synchronization something like poor man's ntp below (timezone doesn't matter for ssl):
Code: Select all
curl  -i http://www.google.com 2>/dev/null | head | grep Date
Date: Fri, 10 Aug 2018 05:22:52 GMT

* somebody needs to have the time and skill to implement all of this (I have neither). Not sure how big device firmware would get...

Ideas, comments, pitchforks to the face?
User avatar
mad_ady
 
Posts: 4265
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Extension ideas for device firmware

Unread postby crashoverride » Fri Aug 10, 2018 8:39 pm

I have no plans to go (no pun intended) in this direction, but its possible for anyone else to do so by making a "AppStore.fw" application. I have purposely avoided the use of WiFi since ODROID-GO is intended to be portable and used in locations where WiFI is unavailable or unsuitable.
crashoverride
 
Posts: 3864
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Extension ideas for device firmware

Unread postby EternityForest » Wed Aug 15, 2018 3:15 pm

I think the biggest deal is the ability to run code without wearing out the flash memory. The ability to dynamically load an arduino sketch ELF file into IRAM, modifying/relocating/etc as needed to link with the functions in the "host" sketch would be amazing.

This sounds hard though, so I don't even think I'm going to try :P.

An alternative(Which I am in fact working on at least part of, and will post about in another thread), is an interpreted language. Squirrel seems fast enough, and if C does most if the real work, I think it could even be more efficient than gameboy emulation. Plus, true loading and unloading of code as needed from the SD card in a dynamic language means unlimited sized games. Right now an Arduino sketch embedding Squirrel uses ~350K, and 12k static ram before actually loading any squirrel code, which is pretty reasonable, especially if you write a lot of your menu system in squirrel itself.

Imagine a full command line on the device, so you could change variables on the fly, and add in cheat codes to make development easier!


If an "App Store" did exist, what if it used MDNS discovery to basically list any and all apps that anyone was sharing on the same net, leaving it to you to decide if you trust the signature? There's a lot of cool stuff to be done with MDNS.
What if one device could act as an access point, and you could share games directly like the Nintendo DS?

I know smartphones have no trouble acting as a hotspot, perhaps there's a fun way to use that?

It seems pretty reasonable to set WiFi SSID/Password info directly via a menu based interface, especially if it can remember multiple connections and you only have to do it once.

Full disclosure: I don't actually have an Odroid Go(They went out of stock fast), and I'm currently mostly developing with a few other ESP32 boarsd including a custom one I developed.
EternityForest
 
Posts: 4
Joined: Tue Jul 17, 2018 1:43 am
languages_spoken: english

Re: Extension ideas for device firmware

Unread postby mad_ady » Wed Aug 15, 2018 4:14 pm

The problem with MDNS is that it works only in a lan environment, so there's not much discovery you can do.
User avatar
mad_ady
 
Posts: 4265
Joined: Wed Jul 15, 2015 5:00 pm
Location: Bucharest, Romania
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1

Re: Extension ideas for device firmware

Unread postby EternityForest » Thu Aug 16, 2018 3:54 pm

True, it's LAN only, but you can use an Odroid as a hotspot, and with the right UI, it could be workable. Maybe.
EternityForest
 
Posts: 4
Joined: Tue Jul 17, 2018 1:43 am
languages_spoken: english


Return to Projects

Who is online

Users browsing this forum: No registered users and 0 guests