microsoft / pxt

Microsoft MakeCode (PXT - Programming eXperience Toolkit)
https://makecode.com
MIT License
2.1k stars 588 forks source link

Bluetooth Download feature #4807

Open pelikhan opened 6 years ago

pelikhan commented 6 years ago

bluetoothpartialflashing

Description

Download code wirelessly via Web Bluetooth. Supported for micro:bit currently.

How to enable it?

If you cannot see that button and you editor supports this experiment, go to About, then click Experiments and Bluetooth Download. If you cannot see this card, your editor does not support yet this feature.

Known issues

Needs initial drag & drop

This feature only supports partial flashing now. This means that you need to first drag and drop a .hex file using the USB cable; then you'll be able to update that same scripts using Bluetooth.

Pairing issues in windows

Use the "No Pairing" setting in the Project Settings for Windows.

My micro:bit is stuck in pairing mode

Partial flashing failed to finish.

My micro:bit won't start after failed partial flashing?

Feedback

Do you use this feature? Is there something you'd like to change? Did you encounter issues? Please drop a comment on this issue to send us your feedback.

imhori commented 6 years ago

Is the function supported in android chrome?

  1. Microbit has a pairing-mode LED showing after press "Download" in macos 10.14.1 with chrome 70.0.3538.77
  2. Test in android 8.0.0, chrome 70.0.3538.80 has a stucking after press "Download", LED always no change. screenshot_20181104-083752
pelikhan commented 6 years ago

Please try on https://makecode.microbit.org/beta

Get Outlook for iOShttps://aka.ms/o0ukef


From: u-hori notifications@github.com Sent: Saturday, November 3, 2018 5:52 PM To: Microsoft/pxt Cc: Peli de Halleux; Author Subject: Re: [Microsoft/pxt] Bluetooth Download feature (#4807)

Is the function supported in android chrome?

  1. Microbit has a pairing-mode LED showing after press "Download" in macos 10.14.1 with chrome 70.0.3538.77
  2. Test in android 8.0.0, chrome 70.0.3538.80 has a stucking after press "Download", LED always no change. [screenshot_20181104-083752]https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F41528875%2F47958775-4fa1ca80-e00d-11e8-9aac-d9a0a17f4047.jpg&data=02%7C01%7Cjhalleux%40microsoft.com%7Cae827a6b0866465544b008d641efc2cb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636768895359644149&sdata=C1giAbsTNZAkjvYiozPVEg2nlPzyQ%2FDcMJvitkCgdzA%3D&reserved=0

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fpxt%2Fissues%2F4807%23issuecomment-435632815&data=02%7C01%7Cjhalleux%40microsoft.com%7Cae827a6b0866465544b008d641efc2cb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636768895359654157&sdata=gBq%2BYj9F8cUiNeE68vLjRg%2FgkPOETvGCZkTZtwWiJ1I%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD-4KXOUa5snm6ygpl-ENdvjxCp6D4_oks5urjo9gaJpZM4XZy3B&data=02%7C01%7Cjhalleux%40microsoft.com%7Cae827a6b0866465544b008d641efc2cb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636768895359654157&sdata=BOE%2B%2FokVGQ6Gqcqrdoz02ZLiAXUOtRfdtDnvgGPZS3E%3D&reserved=0.

imhori commented 6 years ago

@pelikhan Use https://makecode.microbit.org/beta#editor has tha same result. And in beta, Macos also can't trigger a pairing-mode LED showing.

pelikhan commented 6 years ago

Try going into “no pairing mode”. For the first flash, you need to do drag and drop. Still beta - UI needs love.

pelikhan commented 6 years ago

Use https://makecode.microbit.org/beta?dbg=1 and open JavaScript console to see full logs

pelikhan commented 6 years ago

https://twitter.com/krantas/status/1057996189981798400?s=21

imhori commented 6 years ago

Use https://makecode.microbit.org/beta?dbg=1 and open JavaScript console to see full logs

Macos's console log for the first flash: pf: error USB flashing required

I got your hint and the Macos's bluetooth download was done normally in beta UI! Now I need a Type C to OTG converter for my android to next step...

pelikhan commented 6 years ago

It is possible to flash the entire image but it takes much longer. Not supported yet.

pelikhan commented 6 years ago

You can use the Android Microbit app for that.

imhori commented 6 years ago

You can use the Android Microbit app for that.

Use android microbit app to wireless DFU download the makecode beta build no-pairing-mode's hex, but still has a stucking after press "Download", LED always no change.

imhori commented 6 years ago

I buy a Type-C OTG wire and do testing the result re-flashing (partial is fast) with Bluetooth is workable, but no pairing-mode LED is shown in downloading. The usage difference in android from macos is the OTG wire has to be connected, otherwise beta UI will have a stuck after press "Download" as before. FYR~

ChrisDorna commented 5 years ago

This would be a great option! I tried it but the code is not flashed to the micro:bit. These were my steps:

I am on Chrome 71.0.3578.98 and Windows 10

pelikhan commented 5 years ago

Make sure to flash using USB at least once (we still need to support full flashing).

ChrisDorna commented 5 years ago

Hi,

pelikhan commented 5 years ago

On windows, you need to enable the “no pairing” mode.

ChrisDorna commented 5 years ago

I tried it on another micro:bit and it works! Both micro:bits have the same firmware...

ChrisDorna commented 5 years ago

Are there different micro:bits? The first micro:bit didn't accept the code and the second did

pelikhan commented 5 years ago

Could you add ?dbg=1 to the URL, open the javascript console (F12) and retry again. The output would be helpful to understand what's going on.

ChrisDorna commented 5 years ago

This is the code on the micro:bit on which Bluetooth flashing does not work:

snag_20185e32

And this is the code with the micro:bit where Bluetooth flashing works perfectly:

snag_2019003f
ChrisDorna commented 5 years ago

Yesterday we did some experiments with the same micro:bits on Scratch and the micro:bit that gives problems with the Bluetooth flashing also refused to connect with Scratch link.

The serial number on the micro:bit is 400854 1401 529826 1730 and the number on the back is V1.3B (which is th e same as on a micro:bit that does works)

ChrisDorna commented 5 years ago

@pelikhan Do the errors I catched make any sense to you?

pelikhan commented 5 years ago

Make sure to specify “no pairing” on windows. It might be a security setting.

ChrisDorna commented 5 years ago

We checked that several times. It is strange because the micro:bits seems to be the same. Tommorow I will be at the BETT in London and I have the two micro:bits with me. Perhaps there is somebody wo can have a look.

microbit-mark commented 4 years ago

Looks like this is no longer working since MakeCode 2020 release https://github.com/microsoft/pxt-microbit/issues/3283

microboym commented 4 years ago

I write code on MacOS 10.15.6 with Chrome 84.0.4147.89 (Official Build) (64-bit), the firmware version is 0253. I tried it but the code is not flashed to the micro:bit. These were my steps:

Nothing happened on the micro:bit.

phoenixvane commented 4 years ago

I encountered the same issue (bluetooth paring being successful while the downloading partially revised code only ending up with downloading .hex file locally) as @microboym has posted above. For myself, I tried this bluetooth download feature on: (i) Mac OS 10.13.6 with Chrome 84.0.4147.89 (64 bit) (Official Build) and micro:bit firmware version 0253. (ii) Windows 10 Home Version 1909 with Chrome 84.0.4147.105 (64 bit) (Official Build)and micro:bit firmware version 0253. (following the instruction, with "no-paring" setting)

I have successfully paired and flashed codes from (a) iPad with the micro:bit app and I also confirmed that (b) the scratch link via bluetooth works on both of the environments (i) and (ii) above (this (b) may be irrelevant here though).

Fully understand that this bluetooth download feature is on its experimental phase and grateful for the effort to enable code downloading without cable connection. Thank you.

phoenixvane commented 4 years ago

I overlooked the post by @microbit-mark on June 18 - sorry to see that this feature is no longer available on MakeCode 2020. Out of curiosity, I tried using the old version MakeCode, with which this feature successfully worked.

microboym commented 4 years ago

I overlooked the post by @microbit-mark on June 18 - sorry to see that this feature is no longer available on MakeCode 2020. Out of curiosity, I tried using the old version MakeCode, with which this feature successfully worked.

How to use the old version MakeCode, @phoenixvane ?

phoenixvane commented 4 years ago

@microboym, please kindly see below for the way to use the previous version of MakeCode where the bluetooth download feature is still available.

Access to the previous version of the editor Should you need to, you will still be able to access the previous version at https://makecode.microbit.org/v2 until 2022 and you can access the old version at https://makecode.microbit.org/v0 until 2020.

https://support.microbit.org/support/solutions/articles/19000058445-makecode-editor-updates

adryannn commented 3 years ago

As documentation for downloading a project to Microbit via Bluetooth is not very clear, at least for someone that is trying for the first time, I have decided to put the steps that works fine for me, on a paper:

Note: +All these steps have been tested on Windows10 OS +You should have basic understanding of working with Microbit (e.g. loading a project via cable)

Prerequisites: 1 x Microbit + battery pack micro USB cable PC & Chrome browser v70+

Step 1: Create a new Microbit project in the previous editor version - v1 (the v2 currently doesn't work with Bluetooth Download extension) Open following link in Chrome browser: https://makecode.microbit.org/v1#editor

Step 2: Enable Bluetooth download extension In project: go toSettings>About>Experiments>click on the Bluetooth Download tile

Step 3: check No Pairing Required in Project Settings In project: go to Settings>Project Settings>

Provide a Name: e.g. Myproject Enable No Pairing Required
Click Save Click Download and save the .hex file in your PC

Step 4: Download this project to Microbit via cable (this is mandatory only for the first time, after that, this project can be updated via bluetooth) Connect Microbit to PC using micro USB cable Copy the .hex file (resulted from step 3) to Microbit When transfer is finished, unplug the USB cable from Microbit

Step 5: Connect to Microbit via Bluetooth (this is necessary only when you open your project for first time) Make sure the Microbit is powered (e.g via battery pack) Put the Microbit in Pairing mode: press simultaneous the buttons A + B + reset, and keep pressed until the Bluetooth icon appears on Microbit board In project: go to Settings>Pair Bluetooth>select the Microbit and click on Pair

Step 6:Download the project to Microbit Make sure the Microbit is powered (e.g via battery pack) Put the Microbit in Pairing mode: press simultaneous buttons A + B + reset, and keep pressed until the Bluetooth icon appears on Microbit In project: Click on Download button: the Microbit patern leds will start to flicker and will switch off when download is finished *Sometimes if nothing happens when you click on Download button, you may need to repet the Step 6 (put again the Microbit in Paring mode)

Enjoy! Adrian

targetarchitecture commented 3 years ago

@adryannn do you know the root cause of this great "experimental" feature not working?

pelikhan commented 3 years ago

It got broken while refactoring the webusb stack.

adryannn commented 3 years ago

It got broken while refactoring the webusb stack.

@pelikhan, I was assuming the same, when I have discovered this in June. There is any chance to have this fixed in the next release?

Thank you!

codeorganic commented 3 years ago

When should we expect to see full flashing working? The reason I am asking is because cables might not connect, ( perhaps to due cable quality ) and having another way to write code would be grand.

Darshnik253 commented 2 years ago

i am making project of smart car using microbit. i am sending data from mobile bluetooth terminal app to microbit using bluetooth uart service in that first time getting correct data but second time not getting correct data(some rules not followed by microbit). how to resolve ?

abchatra commented 2 years ago

@pelikhan does this experiment still work?

pelikhan commented 2 years ago

Unlikely. Was working pre-v2, not upgraded yet.


From: Abhijith Chatra @.> Sent: Thursday, July 14, 2022 9:38:23 AM To: microsoft/pxt @.> Cc: Peli de Halleux @.>; Mention @.> Subject: Re: [microsoft/pxt] Bluetooth Download feature (#4807)

@pelikhanhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpelikhan&data=05%7C01%7Cjhalleux%40microsoft.com%7C5d68042162424134d71708da656bd54c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637933811065949743%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=VxCdqflzoDvW9DgBB4SfHiGT9R0ORL9CIHzyYXm1YRo%3D&reserved=0 does this experiment still work?

— Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fpxt%2Fissues%2F4807%23issuecomment-1184104155&data=05%7C01%7Cjhalleux%40microsoft.com%7C5d68042162424134d71708da656bd54c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637933811065949743%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=OsoKh1AqSUHRUYGoA2iuKk6KjhnSb5%2FfNHTSgJgGl1Q%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAA73QKMT4NEPNALIWUGB53DVT67W7ANCNFSM4F3HFXAQ&data=05%7C01%7Cjhalleux%40microsoft.com%7C5d68042162424134d71708da656bd54c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637933811065949743%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=S6KzOL2woi3LyDTgljMAD6ua20%2Bvd65ucCw4EIySp1g%3D&reserved=0. You are receiving this because you were mentioned.Message ID: @.***>

robotixdevteam commented 2 years ago

Regrading connection between desktop to microbit via Bluetooth, , We like to know if this can be worked out we tried establishing connection as mentioned this github but we were unable to connect. Please help us with this.

jaustin commented 1 year ago

@pelikhan any plans to rev this for micro:bit V2? web-bluetooth is getting quite prevalent and with the 'triple tap reset to pair' change in CODAL I think the Ux for MakeCode-->micro:bit directly over Bluetooth will be really nice.

https://github.com/lancaster-university/codal-microbit-v2/compare/master...triple-reset-to-pair

pelikhan commented 1 year ago

Not from me

Rkkss commented 1 year ago

Can't get it to work on micro:bit v2.1? What is the alt way to download code via bluetooth? Android apps is not updated either

xicheng135 commented 9 months ago

Bluetooth downloads don't work on my device