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

Support for arm64 Raspberry Pi #22

Open
Soltares opened this issue Sep 27, 2024 · 5 comments
Open

Support for arm64 Raspberry Pi #22

Soltares opened this issue Sep 27, 2024 · 5 comments

Comments

@Soltares
Copy link
Contributor

A few requests have come in requesting to run MeshSense on a Raspberry Pi. This should be possible, in theory, although the webbluetooth library does not have a prebuild currently for arm64. See thegecko/webbluetooth#190

Will need to look to see how a build would be accomplished manually.

@RyanWor
Copy link

RyanWor commented Sep 27, 2024

Subscribed. Thank you Chris!

I guess I should have just said arm, not sure if changes things or matters. I'd be perfectly fine running 32bit OS if possible since it would be the Pis only role to run MeshSense and talk to a rooftop node over IP. Either though way thanks for this awesome application! I am loving it!

@typicalaimster
Copy link

typicalaimster commented Sep 27, 2024

I'd love this as well. Especially if it can be headless and running in the background. I'd just simply use the Web portal at that point. See also: #8

@azwirko
Copy link

azwirko commented Oct 29, 2024

I'll admit this is surely NOT elegant. I'm not using BT to connect to my node, and only access via WiFi IP. To that extent I've hacked a few of the "api" related .ts files to bypass or ignore some of the BT functions. I simply ran the code and commented out sections until I could get a response on http://localhost:5920/ I've not extensively tested MeshSense doing this, but the attached screenshot shows its at least working to an extent on my RPi 4. Maybe a 'diff' export could be made or possible a #ifdef block for "noBT" to accomplish the same.

Aside from having to 'apt-get install' cmake and ninja-build, here are the changes made to some of the MeshSense files prior to starting the api and ui pieces with npm.

in api/packages.json
line 55 delete:

   "webbluetooth": "^3.2.1",

in api/src/meshtastic.ts
line 26 comment out:

   // import { beginScanning, bluetoothDevices, stopScanning } from './lib/bluetooth'

lines 54-58 rewrite as:

   if (value == 'disconnected' || value == 'searching' || value == 'reconnecting') {
      // beginScanning()
   } else {
      // stopScanning()
   }

in api/src/lib/bluetooth.ts
line 1 comment out:

   // import { Bluetooth } from 'webbluetooth'

20241029_17h48m37s_grim

Happy hacking!

Mesh node K1RA
LongFast Slot 9 in Northern Virginia west of Washington D.C.

@Soltares
Copy link
Contributor Author

That's awesome! I would anticipate MeshSense to largely work without issue. It was originally built with IP-only and bluetooth was added later. Only thing that stands out to me are the lack of traceroute lines in the screenshot, but the connected node is not reporting a position so that could be part of the reason.

This brings up an interesting question of whether or not to provide an official ARM build with bluetooth functionality disabled.

Thanks for sharing! 👏

@azwirko
Copy link

azwirko commented Oct 30, 2024

Soltares, good catch. My dev node 1RA2 does not have built-in GPS, nor Lat/Lon set. After setting up a fixed position now the map shows as attached:

20241029_21h33m28s_grim

Hope you can get it running as well.

Soltares added a commit that referenced this issue Jan 28, 2025
For manual building on arm devices #22 and for tracking a later version of SimpleBLE #16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants