NebraLtd / helium-syncrobit

Nebra OpenFleet for Syncrobit CM4 Miners
https://nebra.io/syncrobit
MIT License
11 stars 5 forks source link

Syncrobit #60 and #58 ecc selection #2

Closed invictus737 closed 1 year ago

invictus737 commented 1 year ago

Hello,

some V1 CM4 based Syncrobit miners are having the ECC address not standard and some extra handling is required for that special case. Please add at the minim the posibility to custom specify the i2c address (60 or 58) and the slot (0,1,2,3).

Regards

UrsoXone commented 1 year ago

Só, you have access to Syncrobit code too..noice. Yes, I saw the SLOT2 on hardware configuration file of this specific HS I shown.

I can check on the others HS to confirm too.

A sexta, 17/02/2023, 06:13, Aaron Shaw @.***> escreveu:

Looking at syncrobit code, it seems to be slot2 if it is on 0x58... https://github.com/syncrobit/chameleonos/blob/104e5842e597caf6da386aed3e2064c0829ac161/board/common/overlay/etc/init.d/S31hwdetect

— Reply to this email directly, view it on GitHub https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1434150059, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWOSBTG3DFJYNJ3ARZBZEQLWX4JH3ANCNFSM6AAAAAAUIYU5XM . You are receiving this because you were mentioned.Message ID: @.***>

shawaj commented 1 year ago

@UrsoXone it's a public repo. Everyone has access 🤪

UrsoXone commented 1 year ago

Really? Ehehe Can you give me the link?

A sexta, 17/02/2023, 08:27, Aaron Shaw @.***> escreveu:

@UrsoXone https://github.com/UrsoXone it's a public repo. Everyone has access 🤪

— Reply to this email directly, view it on GitHub https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1434289885, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWOSBTH7JICTXQ2C75HCDXLWX4Y5ZANCNFSM6AAAAAAUIYU5XM . You are receiving this because you were mentioned.Message ID: @.***>

shawaj commented 1 year ago

The link is in my comment above :-)

https://github.com/syncrobit/chameleonos

Zmejs commented 1 year ago

Any ETA for updated firmware? I have bunch of syncrobits and all of them seem to be using that 58 address unfortunately.

shawaj commented 1 year ago

No ETA I'm afraid. It will be at least a week or two though. We will do it as quick as we can but handling this effects a lot of different parts of our software so we need to do a significant amount of changes and need to test them all

UrsoXone commented 1 year ago

Can't we make a temporary solution and hardcoded it? or if let me know how can I configure it on Nebra ? ( manually) at least during the next 2 weeks the miners are running...

shawaj commented 1 year ago

It's not really possible to manually override unless you know the codebase in a detailed way and can do it yourself. Because it effects so many parts of the software

Zmejs commented 1 year ago

You mean that address 60 is hardcoded in several parts of code independently? I thought it should be some definition/variable which is then used everywhere. But yeah, i need that #58 version badly also, all my miners are flatline now.

shawaj commented 1 year ago

@Zmejs yes exactly. It's in various places.

BlueVenom1 commented 1 year ago

Im also having the same issue. Just flashed the Nebra firmware and receiving errors:

Radio Operational | Awaiting Location Assertion

ECC Detected | False

carlleewilson commented 1 year ago

Same situation for my Syncrobit as well. I flashed the Nebra firmware and after giving it a while I checked the local diagnostics dashboard.

Radio Operational | Awaiting Location Assertion

ECC Detected | False

shawaj commented 1 year ago

We are actively working to fix this but don't have a timeline ATM

jd3rul commented 1 year ago

Would you announce it here, once you release the fixed image ?

shawaj commented 1 year ago

@jd3rul yes of course :-)

martinpelant commented 1 year ago

So I too flashed my Syncrobit with the nebra FW as per this guide and am getting the ECC error plus no hotspot name (it is faithbul ivory bison). I'm also unable to set up a wifi (the helium hotspot app just fails to connect to it and in the nebra app there is no option to enter diag mode next to my hotspot and website doesn't have this setting.

Once the fix is ready will my hotpost auto update or will I need to reflash it manually/do something else with it?

nebra-diag.json.zip

WayneNebra commented 1 year ago

Customer with ticket number #410466 ECC error.

{"AN":null,"BA":"HELIUM-SYNCROBIT","BALENA_DEVICE_TYPE":["raspberrypicm4-ioboard"],"BN":"","BT":true,"BUTTON":27,"CELLULAR":false,"CONTAINS_FCC_IDS":[],"CONTAINS_IC_IDS":[],"CPU_ARCH":"arm64","E0":"E4:5F:01:51:4D:FA","ECC":false,"ECCOB":true,"FCC_IDS":[],"FR":"N/A (Non Nebra Miner)","FRIENDLY":"Syncrobit Hotspot","FW":"2023.02.07.0-16","IC_IDS":[],"ID":"af397933e7760f5874863b6d2e9e2871","KEY_STORAGE_BUS":"/dev/i2c-1","LOR":false,"LTE":false,"MAC":"wlan0","OK":null,"PF":false,"PK":null,"RE":"UN123","RESET":17,"SPIBUS":"spidev0.0","STATUS":22,"SUPPORTED_MODELS":["Syncrobit Hotspot"],"SWARM_KEY_URI":"ecc://i2c-1:96?slot=0","TYPE":"Full","VA":"COMP-SYNCROBITCM4","W0":"CA:C9:EB:C6:75:DF","firmware_short_hash":"54f2510","last_updated":"14:35 UTC 01 Mar 2023","serial_number":"10000000031df416"}

vstrong-info commented 1 year ago

You would need to be running Nebra software and run from diagnostics container:

./python-dependencies/hm_pyhelper/gateway_mfr_aarch64 --device ecc://i2c-1:88?slot=0 key

Changing the slot from 0 up until 4 until you see the correct animal name

Would you be able to provide instructions on how to access the diagnostic container? I am having the same issues my V1 Syncrobits. Thank you.

vstrong-info commented 1 year ago

@shawaj One more diagnostic data: {"AN":null,"BA":"HELIUM-SYNCROBIT","BALENA_DEVICE_TYPE":["raspberrypicm4-ioboard"],"BN":"","BT":true,"BUTTON":27,"CELLULAR":false,"CONTAINS_FCC_IDS":[],"CONTAINS_IC_IDS":[],"CPU_ARCH":"arm64","E0":"E4:5F:01:3B:54:8A","ECC":false,"ECCOB":true,"FCC_IDS":[],"FR":"N/A (Non Nebra Miner)","FRIENDLY":"Syncrobit Hotspot","FW":"2023.02.07.0-19","IC_IDS":[],"ID":"c6e930382ddbd19efd9eb30355272952","KEY_STORAGE_BUS":"/dev/i2c-1","LOR":false,"LTE":false,"MAC":"wlan0","OK":null,"PF":false,"PK":null,"RE":"UN123","RESET":17,"SPIBUS":"spidev0.0","STATUS":22,"SUPPORTED_MODELS":["Syncrobit Hotspot"],"SWARM_KEY_URI":"ecc://i2c-1:96?slot=0","TYPE":"Full","VA":"COMP-SYNCROBITCM4","W0":"0E:3D:9F:4B:33:CC","firmware_short_hash":"7a0ddd3","last_updated":"19:06 UTC 06 Mar 2023","serial_number":"100000008d94edbe"}

shawaj commented 1 year ago

@vstrong-info what is the animal name of your hotspot?

shawaj commented 1 year ago

@WayneNebra can you ask customer for the animal name of theirs in that ticket 410466 if possible?

vstrong-info commented 1 year ago

@vstrong-info what is the animal name of your hotspot?

Brisk Concrete Mole

7ChrisMM4 commented 1 year ago

@WayneNebra can you ask customer for the animal name of theirs in that ticket 410466 if possible?

Decent Goldenrod Sardine

7ChrisMM4 commented 1 year ago

@WayneNebra can you ask customer for the animal name of theirs in that ticket 410466 if possible?

@shawaj it is Decent Goldenrod Sardine

shawaj commented 1 year ago

Thanks @7ChrisMM4 🙏

vstrong-info commented 1 year ago

You would need to be running Nebra software and run from diagnostics container:

./python-dependencies/hm_pyhelper/gateway_mfr_aarch64 --device ecc://i2c-1:88?slot=0 key

Changing the slot from 0 up until 4 until you see the correct animal name

image @shawaj Would you be so kind as to point us in the right direction for running the command through Balena Cloud? Thank you.

7ChrisMM4 commented 1 year ago

Thanks @7ChrisMM4 🙏

@shawaj is there anything I need to do besides providing the animal name? Thank you for your help and support with this too!

WayneNebra commented 1 year ago

Customer with Ticket number #410811 ECC error on both machines.

Hot Wool Wolf

{"AN":null,"BA":"HELIUM-SYNCROBIT","BALENA_DEVICE_TYPE":["raspberrypicm4-ioboard"],"BN":"rough-car","BT":true,"BUTTON":27,"CELLULAR":false,"CONTAINS_FCC_IDS":[],"CONTAINS_IC_IDS":[],"CPU_ARCH":"arm64","E0":"E4:5F:01:4E:48:D7","ECC":false,"ECCOB":true,"FCC_IDS":[],"FR":"N/A (Non Nebra Miner)","FRIENDLY":"Syncrobit Hotspot","FW":"2023.02.07.0-19","IC_IDS":[],"ID":"303eeb09d2299fba2e0ba433d7b15dcd","KEY_STORAGE_BUS":"/dev/i2c-1","LOR":false,"LTE":false,"MAC":"wlan0","OK":null,"PF":false,"PK":null,"RE":"UN123","RESET":17,"SPIBUS":"spidev0.0","STATUS":22,"SUPPORTED_MODELS":["Syncrobit Hotspot"],"SWARM_KEY_URI":"ecc://i2c-1:96?slot=0","TYPE":"Full","VA":"COMP-SYNCROBITCM4","W0":"56:F5:92:C2:C2:CE","firmware_short_hash":"7a0ddd3","last_updated":"02:19 UTC 08 Mar 2023","serial_number":"1000000078018117"}

And

Gentle Basil Seal

{"AN":null,"BA":"HELIUM-SYNCROBIT","BALENA_DEVICE_TYPE":["raspberrypicm4-ioboard"],"BN":"","BT":true,"BUTTON":27,"CELLULAR":false,"CONTAINS_FCC_IDS":[],"CONTAINS_IC_IDS":[],"CPU_ARCH":"arm64","E0":"E4:5F:01:4C:99:C1","ECC":false,"ECCOB":true,"FCC_IDS":[],"FR":"N/A (Non Nebra Miner)","FRIENDLY":"Syncrobit Hotspot","FW":"2023.02.07.0-19","IC_IDS":[],"ID":"60eb01fe149474d186346443812103ed","KEY_STORAGE_BUS":"/dev/i2c-1","LOR":false,"LTE":false,"MAC":"wlan0","OK":null,"PF":false,"PK":null,"RE":"UN123","RESET":17,"SPIBUS":"spidev0.0","STATUS":22,"SUPPORTED_MODELS":["Syncrobit Hotspot"],"SWARM_KEY_URI":"ecc://i2c-1:96?slot=0","TYPE":"Full","VA":"COMP-SYNCROBITCM4","W0":"D2:E1:BE:23:D6:1B","firmware_short_hash":"65f068b","last_updated":"02:36 UTC 08 Mar 2023","serial_number":"10000000d282f992"}

UrsoXone commented 1 year ago

@shawaj is there any progress so far?

shawaj commented 1 year ago

No progress so far as we haven't had time to work on this very much I'm afraid.

shawaj commented 1 year ago

@UrsoXone actually I've just had an idea about how we can provide a quick (and somewhat hacky) fix whilst we work out a better way to provide a proper fix (which will take more time and more elaborate changes). It will require people to run their own fleet on BalenaCloud but that is pretty simple so should help get some people online in any case.

I'll see if I can get the quick fix working this weekend and report back.

vstrong-info commented 1 year ago

@UrsoXone actually I've just had an idea about how we can provide a quick (and somewhat hacky) fix whilst we work out a better way to provide a proper fix (which will take more time and more elaborate changes). It will require people to run their own fleet on BalenaCloud but that is pretty simple so should help get some people online in any case.

I'll see if I can get the quick fix working this weekend and report back.

Thank you @shawaj . BalenaCloud would help to run the above mentioned command to change the ecc slot but I have tried using Balena OpenFleet deployment for Syncrobit miners but could not get it to boot up. I have reported this issued here as well: https://github.com/NebraLtd/helium-syncrobit/issues/5#issuecomment-1462017866

shawaj commented 1 year ago

@UrsoXone I have added a "key override" feature here that uses device variables in balena to override the key - https://github.com/NebraLtd/hm-pyhelper/pull/227

Waiting for a review from someone on our team and then will need to pull it through to diagnostics. Also need to make a change in a script in hm-miner repo as well.

@vstrong-info I will reply on the other thread

shawaj commented 1 year ago

Actually, it's a little more complicated than I had previously thought so not sure my quick fix is going to be sufficient.

We also need to make modifications to hm-block-tracker repo too... https://github.com/NebraLtd/hm-block-tracker/issues/59

shawaj commented 1 year ago

ok I have made some good progress on the key override parameter, we will likely push to testnet tomorrow https://github.com/NebraLtd/helium-miner-software/pull/678

Hopefully it will all work ok, then we can promote to production fleets after that.

This is only an interim fix though to allow you to manually override the key URI in balena.

We are also still thinking internally on how to handle the possible multiple key locations in a better and fully handsfree way

shawaj commented 1 year ago

This PR is a partial fix for Syncrobit multi key issue: https://github.com/NebraLtd/hm-pyhelper/pull/230

This will solve the vast majority of cases. However some will still need to be overridden with a SWARM_KEY_URI_OVERRIDE device variable currently.

In order to provide a complete fix, we still need to implement the following:

We also need to pythonise the miner start scripts (or portions of it) to override the keyslot in the sys.config. Or to publish the determined key as an environment variable that the miner can ingest... But that seems more convoluted.

invictus737 commented 1 year ago

@shawaj how to check pkeys are existing on onboarding servers? for not yet onboarded miners?

shawaj commented 1 year ago

@shawaj how to check pkeys are existing on onboarding servers? for not yet onboarded miners?

@invictus737 you won't need to do that. Our software will do it automatically. I just put those notes there for myself of what there is still to implement :-)

Having said that, you can just do this via the Helium Foundation API... https://onboarding.dewi.org/api/v2/hotspots/address

You just need to replace the address part with the address you want to check. If it works you will get a JSON output. If it doesn't you will get an error like this:

{"code":404,"errorMessage":"Unable to find hotspot","errors":[],"data":null,"success":false}
7ChrisMM4 commented 1 year ago

@WayneNebra can you ask customer for the animal name of theirs in that ticket 410466 if possible?

@shawaj it is Decent Goldenrod Sardine

@shawaj - I am sure you're quite busy. Was just checking in to see if there are pending actions you are looking for from me or @WayneNebra on this ticket. Thank you!

shawaj commented 1 year ago

@7ChrisMM4 the current status is as follows:

  1. we just pushed an update to any devices running on our software that will fix the majority of devices where the Syncrobit device has an ECC key on i2c address 0x60/slot0 or 0x58/slot2 (version of this update is 2023.02.07.0-25)
  2. we know there are edge cases where the device is on 0x58/slot3 or others. We are working on a solution for these in the following PRs...
  3. in the interim, it is possible to get devices working that aren't fixed by (1) and are waiting on (2) but currently this is only possible via BalenaCloud. You would need to deploy the miner software to BalenaCloud using the "deploy with Balena" button on the main page of this repo or using the "deploy" button at balenaHub. After that you will need to add a device variable with the name SWARM_KEY_URI_OVERRIDE and the value should be in the format ecc://i2c-1:88?slot=3 where i2c-1 is the i2c bus, 88 is the address in decimal (88 corresponds to 58 hex, 96 corresponds to 60 hex), and slot is the ECC key slot.

EDIT: just as an additional note here, if after the update mentioned in (1) above (version 2023.02.07.0-25) your device is still not working and you are trying to work out which key slot your device uses, you have two options:

Hope that makes sense.

martinpelant commented 1 year ago

@7ChrisMM4 the current status is as follows:

  1. we just pushed an update to any devices running on our software that will fix the majority of devices where the Syncrobit device has an ECC key on i2c address 0x60/slot0 or 0x58/slot2

Is the update installed automatically OTA or do I need to reflash the module?

shawaj commented 1 year ago

@martinpelant that depends on when the last time you reflashed your device was, and whether you were running our open fleet images.

If you are running on BalenaCloud then you will need to manually update your device.

If you are running on our OpenFleet image, and you are running either of the latest two releases linked below then you will get the update automatically:

If you were on our open fleet and running an older release, you will need to reflash

martinpelant commented 1 year ago

So after reflashing I do see ECC Detected = True but the animal name is still missing. Does that mean it's in different slot on mine?

Screenshot 2023-03-24 at 7 20 05 PM
mg198 commented 1 year ago

Similarly, i flashed my last night and it hasn't come online yet, ECC=true but still shows errors on the nebra login

On Fri, Mar 24, 2023 at 3:22 PM martinpelant @.***> wrote:

So after reflashing I do see ECC Detected = True but the animal name is still missing. Does that mean it's in different slot on mine? [image: Screenshot 2023-03-24 at 7 20 05 PM] https://user-images.githubusercontent.com/398815/227620147-0b6f1ab2-e792-4218-8f4f-3a5289757a61.png

— Reply to this email directly, view it on GitHub https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1483300950, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYRSCZH6DJUUIULOBWR4BD3W5XX55ANCNFSM6AAAAAAUIYU5XM . You are receiving this because you were mentioned.Message ID: @.***>

-- Regards,

Mathew Gennaro

shawaj commented 1 year ago

@martinpelant @mg198 so just to clarify, it used to say ECC detected false?

And now it says ECC true for both of you but no hotspot name or address or helium explorer link?

mg198 commented 1 year ago

that is correct, it used to say false for the ECC (Now it says true). The physical hotspot has the red illumination but also flashes green 4 times every 3 seconds - im not sure if that means anything.

says Awaiting Location Assertion and is still inactive on the helium explorer. https://explorer.helium.com/hotspots/11n6ApbTNiNhCLf84Hm3mZGDyqNhP83dsj4Cvj2juTXuKD7byf

On Fri, Mar 24, 2023 at 8:44 PM Aaron Shaw @.***> wrote:

@martinpelant https://github.com/martinpelant @mg198 https://github.com/mg198 so just to clarify, it used to say ECC detected false?

And now it says ECC true for both of you but no hotspot name or address or helium explorer link?

— Reply to this email directly, view it on GitHub https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1483639793, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYRSCZHTP5KDE57QCE4K4NTW5Y5X7ANCNFSM6AAAAAAUIYU5XM . You are receiving this because you were mentioned.Message ID: @.***>

-- Regards,

Mathew Gennaro

shawaj commented 1 year ago

@mg198 is your hotspot running on the open fleet image? Or via BalenaCloud?

mg198 commented 1 year ago

i flashed it with this one: 2023.02.07.0-25-helium-syncrobit-2023-03-23-OpenFleet

On Fri, Mar 24, 2023 at 8:58 PM Aaron Shaw @.***> wrote:

@mg198 https://github.com/mg198 is your hotspot running on the open fleet image? Or via BalenaCloud?

— Reply to this email directly, view it on GitHub https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1483646473, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYRSCZCWHBM4AXBTRAPVZI3W5Y7LRANCNFSM6AAAAAAUIYU5XM . You are receiving this because you were mentioned.Message ID: @.***>

-- Regards,

Mathew Gennaro

shawaj commented 1 year ago

@mg198 I was just going through my notes above and realised your device from when we tested before is using key slot 3.... https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1427342499

So for now you will need to deploy via BalenaCloud to get this working as mentioned here... https://github.com/NebraLtd/helium-syncrobit/issues/2#issuecomment-1482031607

And you can just add the device variable SWARM_KEY_URI_OVERRIDE with the value ecc://i2c-1:88?slot=3

Your device should work then :-)

jd3rul commented 1 year ago

@shawaj I have same led beeps and issues as @mg198 , but I installed TEST version. Can I deploy via BalenaCloud in the dashboard?