Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run webserver with configuration/status page #65

Open
webhdx opened this issue Nov 15, 2022 · 8 comments
Open

Run webserver with configuration/status page #65

webhdx opened this issue Nov 15, 2022 · 8 comments

Comments

@webhdx
Copy link
Owner

webhdx commented Nov 15, 2022

90% of the time WiFi module on Pico W will idle. Since we have second core available we can run small webserver showing status page with diagnostic information. It could be also possible to provide another configuration interface. This is not in any way important but may be still a cool feature to give PicoBoot more edge over other modchips.

@SpiLiam
Copy link

SpiLiam commented Nov 15, 2022

approved

@Mello5617
Copy link

This'll be cool

@pjc09h
Copy link

pjc09h commented Jun 3, 2023

I'd contribute to this, especially if we intend to run an authenticated Samba client rather than the proposed server and sync them to local M.2 SSD drive files, so as not to load games off a shitty Pico W wireless connection.

The idea in my mind is a configuration page that manages a Samba share to sync on boot. So you can point the modchip at your GazelleGames seed folder on the LAN and automagically have your recent game downloads locally available.

One last thought: TOTP or at least basic HTTP auth is essential. My main gripe with similar things like the MemCard Pro, is that all your data is exposed on the LAN unauthenticated.

@webhdx
Copy link
Owner Author

webhdx commented Jun 3, 2023

Samba client makes a lot of sense. Thanks for the idea!

@pjc09h
Copy link

pjc09h commented Jun 3, 2023

I return with probably bad news.

MicroPython received wisdom says that a Samba client in that language is a non-starter, and to use FTP/HTTP instead. It may be possible in C with existing libraries, but given the slow EXI bus speed, I dunno how useful it would be or what happens if a Samba transfer is stopped and resumed.

How feasible would it be to integrate a USB port into the M.2 Loader as in this kind of board, so as to mount the drive on a laptop out the side of the GameCube? I saw in the prototype video that the Micro-USB port would need to be where the M.2 port currently lives, probably limiting the SSD form factor and causing a lot of headaches...

Anyway, maybe a good use for this web page would be to back up and restore Swiss configurations, upload new PicoBoot firmware, and to view and save diagnostic logs?

@webhdx
Copy link
Owner Author

webhdx commented Jun 3, 2023

USB is feasible but RP2040 only supports USB 1.1, it's slow... too slow for transferring ISO images.

@Extrems
Copy link

Extrems commented Jun 3, 2023

Why do they need to be transferred? They can already be loaded directly from the network.

@pjc09h
Copy link

pjc09h commented Jun 3, 2023

The thought was more like an integrated USB 2.0+ adapter that bypasses the RP2040, for the sole purpose of mounting the drive on a laptop without external hardware. Extrems, buying a BBA doesn't thrill me.

That discussion is outside the scope of the issue. Back on topic, I'd be interested to make a small web page similar to IPMI. Something with authentication over self-signed TLS if possible, that accepts firmware uploads and shows an SHA hash of the upload before flashing it and rebooting, can transfer small files like Swiss configs, and display basic stats.

There's a couple extra things like making an access point to initially connect to, and associating the Pico W with an existing network and persisting the info. OTA updates in particular seem sketchy beyond the point of "verify the received hash and don't shut down the device while flashing."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

5 participants