portapack-mayhem / mayhemhub Goto Github PK
View Code? Open in Web Editor NEWWeb interface for everything HackRF/Portapack
Web interface for everything HackRF/Portapack
We would like a click on the interface to simulate a touch on the Portapack
Since we cannot download the file directly from GitHub because of the CORS issue, we will need to create a Cloudflare function that acts as a proxy for us to download the file. But we need to limit its scope so that it can only download from this specific repo.
Here is some example code to get started (Note this is for a worker, so will need to be updated to a function)
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url)
// Define the URL for the file to be downloaded
let fileUrl = 'https://example.com/file.zip'
// Modify this for the logic to determine your file URL
// if(url.pathname.startsWith('/specific-path/'))
// fileUrl = 'https://example.com/file2.zip'
let response = await fetch(fileUrl, request)
// You can modify the response here, like setting content-disposition to force a file download
response = new Response(response.body, response)
response.headers.set('Content-Disposition', `attachment; filename="yourdesiredfilename.zip"`)
return response
}
We would like to add support for the incoming single tar of APPS and firmware bin.
See that PR for implementation:
portapack-mayhem/mayhem-firmware#1704
Ideally, the web app could retrieve the file directly on github nightly or stable releases, and also allow tar file provide from host for manual selection and flash (devs ?)
Sometime I prefer to just use my keyboard and pilot my Portapack that way.
For it to be quick and effective, I'm not using the live view for this.
Sometimes I prefer to do commands, and I don't care the keyboard or live view or whatever.
It would be great if we could hide/reduce each items of the GUI, separately (I mean one hide button per item)
That would allow one to make a custom view more adjusted to the usage.
Add auto scroll for console so it's always at the end. Make sure eif user scrolls up it also breaks the auto scroll and when they go to the bottom, it starts it again
Trying to update the firmware when having a clean freshly formatted SD card in the device isn't possible, as it errors out when the firmware folder doesn't exist.
Currently the PWA doesnt work in offline mode as it doesnt seem to cache the correct files
Right now there is no way to upload to root. Add this ability so we can upload files to root
Switch to Cloudflare pages so we can create an Edge API for extra handling as well as increate the speed and location of the edge servers hosting the frontend
Sometimes there will be a bug where the folder explorer is not showing hte correct data. This is because it gets a response from another command and things its the response from its ls /
command, so it populates the folder explorer with output from some other random command.
We need a better way of tying commands to responses and/or somehow retrying if its a failed response
@gullradriel has seen this bug a few times
When using the web console and typing 'help' the console show no output, but when doing it using 'screen' on the portapack I can see that help output something.
We could use https://github.com/google/web-serial-polyfill for platforms such as Android which support the WebUSB API but do not support the Web Serial API.
For some reason Intel Macs have issues sending data and Apple Silicon Macs just do not want to connect. It will connect long enough to get the moto output out and then instantly disconnect after that. There must be some sort of bug on the HackRF side. I have validated this on other online WebSerial API websites too
Make top bar links clickable even if not hackrf is connected.
We should allow navigation to our webistes whatever is the usb serial state
What is the goal:
Create an option that would remove the file browser and command console, leaving only the remote control section of Mayhem Hub. The remote only display would also auto center on the screen per the devices resolution.
What is the benefit:
This would create a display that is touch screen friendly for devices such and tablets, phones or small form factor devices such as a RasberryPi with a touch display. Allowing for better ease of use when using Mayhem Hub as a remote control via said touch device.
Nice to have:
Keep the background of this mode black as an indication that you are not in the normal mode.
We would like the ability to send full strings, and if the focus is on a text edit entry set that text edit to string.
That, or a full ASCII keyboard mapping linked with the textedit buttons .
Edit: implementation in portapack side, see PR portapack-mayhem/mayhem-firmware#1708
We can add a bit of accessibility for disabled user by using the functions in the linked PR and a text to speech api.
There is one button to list the current screen, and one button to have information on focused item.
ideally it would so you can set radio frequencies in audio for example
88.5[Enter] should set 88.5MHz for example but the . key doesn't seem to send an event
please and thank you! :)
We would like to have a mapping for the keyboard:
If possible we can do custom button assignments and store it in the local storage, and just provide a default one at start.
Please add a delete button near the download button after each filename
or
Allow to mark as delete and delete in batch
When the screen gets too small, the navbar goes away. We should add a hamburger menu to handle this
Add a navbar with link such as the FAQ, Wiki, Repo etc...
Now we have FontAwesome included in the package, we need to update the emoji's so that we use FA instead
If there is no FIRMWARES folder, and I try to upload a costum, it creates the folder, but uploads the new FW to the root, and can't flash it.
After the folder creation, it should upload the tar there.
If the commands in portapack-mayhem/mayhem-firmware#1768 are added, we would like to have a system view and a radio levels graphical view.
Radio informations could be added as text information in a column.
We would like to have to little 2x button, that would act as a switch on/off and allow us to have and use a 2x version of the PP screen.
In one of the latest changes I broke the button disable. So now they dont disable while waiting for a response.
We would like to implement the Screen Sharing functions that can be seen in that app:
https://github.com/htotoo/PPRemoteSharp
But on the web app.
Ability to take screenshot of only the PP screen only would be awesome.
We would like the mouse wheel to act as rotary button
Maybe allow the users to switch the directions, kind of a revert mode, would also be useful as some will prefer to go up for a left turn, and vice versa
If possible, when a new UI is designed and deployed, maybe consider keeping the current one (Test UI) as an option for smaller touch screen devices as the interface works well. Or add it to the new UI as touch friendly option.
We should add this in to make it quicker and easier to design our UI components https://daisyui.com/
When testing updates from test-drive, it happened that I already had downloaded a ppfw.tar file, and I downloaded another one.
The new one had the name "portapack-mayhem_OCI.ppfw (1).tar"
It failed and produced the following log:
ch> fopen /FIRMWAREportapack-mayhem_OCI.ppfw (1).tar
usage: fopen <path>
ch> fseek 0
no open file
ch> fwb 100000
no open file
Need to create a function to send off command and wait for a response for that commands response, so for instance if we send off a command for a screenshot or for info we know we are getting the correct response
When device gets connected, first thing it should do it update the rtc time to be same as the computers time.
Connect to the GitHub API to show the latest release version, or show if there is an update available
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.