-
• #2
bluetooth stack so called SoftDevice is provided from Nordic as a binary but it is fully documented and comes as part of the sdk and there is no issue to rebuild espruino from source with this. You can of course flash any other software over swd port using any opensource bluetooth stack like nimble used in mynewt or the one in Zephyr if you are opensource purist. Nordic also provides alternative SDK with Zephyr https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_ble_controller.html where BLE stack is open source but this one is not used in Espruino for practical reasons. The binary stack works very well and is easy to work with, also it is certified by Bluetooth SIG and supported by Nordic, more details here https://www.nordicsemi.com/Products/Development-software/S140 .
Basing your purchase decision on this is a bit strange since the watch is running javascript and bluetooth stack is several layers deep below.
Anyway if you would wish to port Espruino to Zephyr or Mynewt/nimble you certaily can.
-
• #3
Thank you for the detailed explanation! Most of it is well above my pay grade. If I read it right, the answer to my question is "no".
I am not a developer and won't be flashing any other software. I will leave that for folks with different talents than I have. I will just be using the watch and the software others have the talent to program for the community.
When I said mentioned my purchase decision what attracts me to the project is it was advertised as "open source" in the 1st article I read, then I was told it isn't fully open source. I am trying to move as much of my electronic life to open source projects.
-
• #4
Sun 2021.10.03
Thank you @user134951 for your interest in Espruino and Bangle v2
'what attracts me to the project is it was advertised as "open source" in the 1st article I read'
Although this isn't mission critical, by chance do you have the link to that article as it would be interesting to see how open source was described there. Maybe a bit of polish on the wording could lead to an easier understanding for others.
-
• #5
I would liken this to saying operating systems based on Linux are open source, except when you start adding binary blobs like nvidia or printer drivers.
You can recompile Espruino to not use bluetooth (for example the stm32 ones don't have bluetooth) but the watch won't be as functional (e.g. no app store, no wireless comms).
Nordic is the manufacturer of the microprocessor that powers the watch, and they also provide the bluetooth stack. Since they are the manufacturer, the Nordic provided bluetooth stack works best with the chip, similar to how nvidia drivers have better support than the nouveau reverse engineered drivers.
Another tricky thing for opensource products working with wireless comms would be compliance. If you use the Nordic sdk, you can mention that in your product docs and the certification officials would know what to do (since a lot of products with the Nordic chips would usually use the sdk and they would have experience with it). If you don't, you're in for a more grueling (and possibly more expensive) certification process since you'll need to ensure your wireless energy signals don't go beyond what local laws require. Since Espruino can be used in consumer products (the only one that comes to mind right now is https://lab.ruuvi.com/espruino/ ) the product manufacturers benefit from this as well.
-
• #6
If I read it right, the answer to my question is "no".
Well I tried to answer in practical way to the question that was asked in very philosophical "Richard Stallman"'s way. Yes the bluetooth stack that is currently running in the watch is not open source. And so is not the hardware, both its design (PCB) and the chips used (and Pintetime is same in this). You can draw the line between open and closed anywhere. If you decided bluetooth stack is where it matters then so be it :-)
-
• #7
I would liken this to saying operating systems based on Linux are open source, except when you start adding binary blobs like nvidia or printer drivers.
In this situation it is more like asking for open source firmware running inside your wi-fi card or inside usb bluetooth dongle when running Linux. Or asking for source of GSM/3G/4G/5G baseband firmware in your Android mobile phone.
Fortunately unlike with Nvidia in this case Nordic is quite open and participates in Zephyr as I linked before so there is fully open source BLE stack. Two in fact - Zephyr and Apache NimBLE that Pinetime guys are using.
-
• #8
Ok, so the software is open source, but the hardware is not. That makes sense. I am facing the same thing with the Jing Pad I have ordered.
Thanks again for the detailed answers.
Here is the link requested. https://www.hackster.io/news/the-bangle-js-an-open-sourced-javascript-powered-smart-watch-6359962646c2
After the above answers and rereading the article I see it says the same thing. I just didnt read it that way the 1st time.
Blame on my being a consumer, not a developer.
-
• #9
Thank you for posting the article link @user134951
'Blame on my being a consumer, not a developer.'
Hey go easy on yourself. It is admirable that you took the time to detail your inquiry here and also having the fore thought to ask questions to have an informed decision before making a purchase.
-
• #10
When I said mentioned my purchase decision what attracts me to the project is it was >advertised as "open source" in the 1st article I read, then I was told it isn't fully open source. > I am trying to move as much of my electronic life to open source projects.
Then this one is for you. The software is fully open source.
There are also regulatory reasons for closed firmware, since in some countries you are not allowed to change the way the radio system works since it may cause interference with other wireless products and they will loose their general operating license.
-
• #11
I think everyone's covered this already, but just to add my take:
- All the code we have written for Bangle.js is open source. If you wish you can modify and recompile as you see fit
- Part of the firmware on the watch (effectively the 'driver' that talks to the hardware) is closed source, but this does not affect your ability to modify Bangle.js however you see fit.
If you're being totally strict then no, not every byte of the code inside Bangle.js is open because of that driver code, but this is for practical reasons.
Even if the Bluetooth stack was open, you could probably argue that because the ARM microcontroller is closed source, there was some code in there (be it microcode or something in ROM) that was still closed source. It's where you draw the line really.
We're trying to do the best we can to provide an open, flexible experience. That means spending money and developer time on creating usable, open software rather than ensuring every last byte of code is open in the most extreme sense.
If the only thing you care about is your device being fully open then maybe Bangle.js isn't for you, but maybe PineTime isn't either. You probably need to try and find some RISC-V based device.
- All the code we have written for Bangle.js is open source. If you wish you can modify and recompile as you see fit
-
• #12
Ok, I think I am sold just based on the amount of community support there seems to be for the device.
I appreciate everyone taking time out of their day to answer my question, sometimes more than once! =)
-
• #13
Just to add to this, as it seems from KickStarter some people are taking issue with the lack of open software.
PineTime (and Bangle.js) use a touchscreen controller with a processor inside, and proprietary binary blob of firmware
Everything I have control over - the main firmware, the documentation, tools, apps, etc is Open Source.
Having some proprietary code is pretty much inevitable, but if that is a problem for anyone it's probably best that they don't back the project.
-
• #14
I don't understand this discussion as no one would change the low level firmwares of subcomponents. Most people don't know that they exist.
-
• #15
In my case it is due to not understanding the intricacies of building the product. I am just a consumer that is enough of a computer geek to have just enough knowledge to get in trouble.
I knew there would be people smarter me on the topic here that wouldn't mind sharing their knowledge and helping me learn.
Most people don't know how much they are being tracked either........
-
• #16
In my opinion you can't get more safe with a connected watch than with this. Of course a mechanical watch is the safest one :-)
-
• #17
You'd be surprised that even the computer you're using has an opaque, second "brain" that nobody except the manufacturer has any idea of what it's doing (maybe even tracking you?) https://en.wikipedia.org/wiki/Intel_Management_Engine
-
• #18
You'd be surprised that even the computer you're using has an opaque, second "brain" that >nobody except the manufacturer has any idea of what it's doing (maybe even tracking you?) >https://en.wikipedia.org/wiki/Intel_Management_Engine
I know what IME is and this problems also applies to NICs. But how should the Bangle watch screen firmware communicate with the internet? Even BT firmware can't do it.
-
• #19
I was actually replying to @user134951 :D
With regard to your question on comms with the internet, Gordon answered a similar question: http://forum.espruino.com/conversations/309832/
-
• #20
BTW in addition to NimBLE and the BLE stack in Zephyr which is part of the nRF Connect SDK there is yet another opensource BLE stack for NRF5x https://github.com/packetcraft-inc/stacks
see also https://www.prnewswire.com/news-releases/packetcraft-launches-open-source-bluetooth-low-energy-stack-which-is-integrated-with-arm-mbed-os-for-seamless-iot-connectivity-300931376.htmlreadme says it uses SDK 16.0.0 and was tested with gcc-arm-none-eabi-9-2019-q4-major
interesting, will give it a test
it is also part of MBED OS and they have newer version there
https://github.com/ARMmbed/mbed-os/commit/8afb1c5bac06ee90ff6f43adc51088239d5834b8
A couple of Pine Time owners have mentioned your project on their Telegram channel, and I have asked a few questions of 1 of the members that has both watches. I am interested in Bangle.js #2 and my question is 'is the bluetooth open source?'.
One of the guys says your bluetooth is not based on Nimble, but rather a closed source bluetooth stack ( right/wrong word ). While I don't understand the mechanics of it, I do understand the difference between open and closed source so I thought I would ask here rather than basing my decision to purchase on what "some guy" said.
Thanks! JC