portapack-mayhem / mayhemhub Goto Github PK
View Code? Open in Web Editor NEWWeb interface for everything HackRF/Portapack
Web interface for everything HackRF/Portapack
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
Currently the PWA doesnt work in offline mode as it doesnt seem to cache the correct files
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
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
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.
We should add this in to make it quicker and easier to design our UI components https://daisyui.com/
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.
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
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
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 a click on the interface to simulate a touch on the Portapack
The Firmware update at the hackrf.app website does not work when using a Macbook. I have v2.0.0 installed on the portapack. I am able to successfully connect to the portapack but when I click the "Update to latest stable release" button nothing appears to happen.
I am running macOS 12.7.3 on a MacBook Pro (16-inch, 2019).
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.
Please add a delete button near the download button after each filename
or
Allow to mark as delete and delete in batch
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.
Add a navbar with link such as the FAQ, Wiki, Repo etc...
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
In one of the latest changes I broke the button disable. So now they dont disable while waiting for a response.
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.
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.
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
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.
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.
When the screen gets too small, the navbar goes away. We should add a hamburger menu to handle this
Now we have FontAwesome included in the package, we need to update the emoji's so that we use FA instead
I usually use the page for upload FW to PP. So I don't need the screen, but after each page refresh it loads the screen because the Live screen's default is on.
If it could remember the last setting and load that on page load I could use the page without waiting to the screen to load. Would be faster a bit :)
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 ?)
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
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.
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
}
Connect to the GitHub API to show the latest release version, or show if there is an update available
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.
Right now there is no way to upload to root. Add this ability so we can upload files to root
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.
When device gets connected, first thing it should do it update the rtc time to be same as the computers time.
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.
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.