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

FreeBSD / *BSD support and packages #554

Closed
cederom opened this issue Jul 22, 2021 · 8 comments
Closed

FreeBSD / *BSD support and packages #554

cederom opened this issue Jul 22, 2021 · 8 comments

Comments

@cederom
Copy link

cederom commented Jul 22, 2021

Hello world :-)

I just got the NRF-PPK2 and I see that I need nRF Connect for Desktop, thus my issues:

  • no package is available for any BSD platform.
  • can you provide BSD/FreeBSD packages?
  • is there any other python based shell utility to work with NRF-PPK2 and no heavy GUI preferably installable with pip into virtualenv?

FreeBSD/OpenBSD/NetBSD are more mature than Linux and better in maintenance because they stick to standards and self-compatibility. These are more industrial systems but when you look carefully macOS is based on BSD+MACH, Playstation works on FreeBSD, etc. Open-Source is not only Linux. In fact Linux was always kind of Windows in Unix world :-)

If you need support in FreeBSD/BSD platforms I may help, just want to know if there is at least any interest from Nordic?

Best regards :-)
Tomek

@datenreisender
Copy link
Contributor

To be quite frank with you: Sorry, but *BSD support won't happen in the foreseeable future, so I will close this issue.

Some reasons for it:

  • nRF Connect for Desktop is based on Electron and Electron currently does not support FreeBSD.
  • Besides Electron we use other low-level libraries for which we first would have to make sure to have *BSD support, J-Link being an especially important one.
  • So far there was very little demand for it, I personally hear this request for the first time now.
  • None of the developers currently uses *BSD (which is of course a chicken-egg-problem), so we would currently only insufficiently test such builds but would also have to first create other infrastructure, e.g. build and test machines.

Sorry. Not only won't we do this, I also think that the effort for someone else (e.g. you) to port nRF Connect for Desktop to FreeBSD would be quite huge.

Regarding your question of a non-GUI-tool for PPK: I am not aware of one. @wlgrd wrote wlgrd/ppk_api but I do not know whether he has any PPK2 updates or written something else.

@cederom
Copy link
Author

cederom commented Jul 29, 2021

Hey there @datenreisender :-) Thanks for your time and reply :-)

Do you know if there is a specification for PPK2 protocols? I need to use it on FreeBSD and it may not be a problem for me to create my own (Python) library.. I will also take a look at ppk_api thank you for the hint maybe that will do the work! :-)

FreeBSD / OpenBSD / NetBSD is perfect platform to verify Open-Source portability of the underlying tools and frameworks. As you can see this Electron stuff seems a dirty hack as most things on Linux "works for me"^TM. On the other hand if something works on BSD it will work anywhere, this is far mature OS with maintenance and self compatibility in mind (take a look at macOS, Playstation, etc) :-)

Is there any good reason behind choosing Electron instead React Native or similar? I can see Electron project manifest ideologies in the first place on their website while cross-platform statement seems false.

If you ever need FreeBSD guy I am willing to help. I like and appreciate your support for Zephyr. By the way Zephyr works flawlesly on BSD because it is well designed bottom up from Unix roots so portability is not an issue here :-)

@cederom
Copy link
Author

cederom commented Jul 29, 2021

Quick check. PPK is just branded proprietary J-Link. I thought that it was your own Open-Source device. Game Over :-)

I can see that Electron is very popular among big players, thus your choice, this is also why they don't care about portability.

Thank you for your time @datenreisender :-)

@wlgrd
Copy link

wlgrd commented Aug 2, 2021

@cederom That holds true for the first version of the PPK, but for the PPK2 the story is different (No J-Link, just USB CDC ACM). I didn't write a PPK2 library for Python, since IRNAS is doing such a great job at it =) Have a look at https://github.com/IRNAS/ppk2-api-python, hope you find what you need.

@cederom
Copy link
Author

cederom commented Aug 2, 2021

Perfect! This is exactly what I need nothing more, simple python module that talks over usb to ppk2 so I can automate things, and it seems to work out of the box on my FreeBSD! Very nice starting point :-)

Is PPK2 firmware Open-Source? Will it change in time? Can you please share at least protocol specification? That would bring more interest in PPK2 to the Open-Source community and tools developers (not only Windows GUI users) :-)

Thank you @wlgrd and @datenreisender !! :-)

@wlgrd
Copy link

wlgrd commented Aug 2, 2021

The firmware will not be open source in the foreseeable future, unfortunately. But hopefully this can help you a bit. Looking at the source code for our implementation and IRNAS's, it should be doable to piece it together quite nicely =)

                                                  |-- USB power present, bit 17
        |-- Logic state, 8 bits (24-31)           |   |-- Range, 3 bits (14-16)
        |                     | count (18-23)     |   |     |
        |      Logic  (8bits) |                   U   | R   |    Analog samples, 14 bits (0-13)       |
Bit     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

@cederom
Copy link
Author

cederom commented Oct 22, 2021

Regarding React Native I just took over a mobile application project from a guy that could not finish it, I know why, because it depends on hundreds of external modules that change almost everyday, even Expo used to configure and build application is buggy as hell. Working with modern cross platform JS frameworks is a nightmare, while maintenance is even worse :-)

If Qt did not go the way they did that could be the only sensible solution. Now its just FLTK for desktop applications, and maybe Python + LVGL for full portable cross platform one day..

@cederom
Copy link
Author

cederom commented Oct 12, 2022

Hello world :-)

As I need to come back to PPK stuff now:

  • Are there any updates on Open-Source approach to library that would enable all features of PPK2 out-of-the box with Python?
  • I think the most versatile approach to have things working out-of-the-box and always-in-pocket would be having PPK2 Mobile App :-) But I cannot find this module in nRF Connect Mobile. I have reported this feature request here [feature] PPK mobile app pc-nrfconnect-ppk#294.
  • Regarding JavaScript I have totally abandoned this crazy world, switched to Python + Kivy for cross platform GUI development including Mobile Apps :-)

Best regards :-)
Tomek

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

3 participants