Compare commits

..

786 Commits

Author SHA1 Message Date
Peli de Halleux
5a8122bc8a 0.4.34 2016-10-03 22:35:53 -07:00
Peli de Halleux
c382fc5050 Bump pxt-core to 0.4.41 2016-10-03 22:35:51 -07:00
Peli de Halleux
d69a82d167 updated telegraph project 2016-10-03 22:32:27 -07:00
Peli de Halleux
a30ca46fef merging changes 2016-10-03 22:23:01 -07:00
Peli de Halleux
a56226c08d updated hack-your-headphone lesson 2016-10-03 22:21:36 -07:00
Peli de Halleux
87d34ba030 restructed banana lesson 2016-10-03 19:07:54 -07:00
Peli de Halleux
091917b765 removed linking between projects 2016-10-03 18:55:09 -07:00
Richard Knoll
aea09c1830 Minor fixes to guitar demo 2016-10-03 16:37:46 -07:00
Guillaume Jenkins
5e9eec61c5 Reject promise when deploy to board fails (#267)
* Reject promise when deploy to board fails

* Change var to let
2016-10-03 15:26:41 -07:00
Peli de Halleux
a34f765681 adding guitar to project list 2016-10-03 15:18:20 -07:00
Peli de Halleux
2ae78fe6b8 Updated guitar lessons (#268)
* initial notes

* updated code samples

* splitting the page and preparing layout

* missing gamepad api

* added basic guitar activty md files

added initial draft of guitar lesson - in progress

* word smithing and adding detail for concepts listed

* word smithing and adding detail for concepts listed

* typo in file name

* missing macro

* replaced guitar.png with image from Julia Carlson

* adding a few pictures

* adding cards macros

* few tweaks

* image for accellerometer lesson xyz axis

* fixed the numbering buttons page
-fixed the numbering to restart for each section and asdded spaces after so they don't wrap

* adding a few video links

* pin-press - added circuit info

* more vids

* fixing latest commit

* edits to light sensor and pin-press

* updated descriptions, linking lesson

* pin-press and display-buttons updates
-added dode samples to pin press

* updated making video

* light-sensor updated numbering

* Clean up
Clean up of headings to template style, other fixes

* putting display in template
use h2 with "Step 1:" and image before text

* removed numbered lists for display & light
these topics are code complete

* more consistent formating
Acceleromenter, buttons, light sensosr

* Acceleration Lesson, added art
Lesson steps for Acceleration, art for degree F to C for Map anology+clean up of light sensor topic

* Pin Press code complete
some other basic fomats and edits

* Removed dashes in lesson names
renamed and fixed references to files with "-" in names

* rest of fles w/ dash in name changes

* fixed links to guitar activities

* updated acceleraomter section

* transparency 4 art, image text
added transarency and renamed art, added descriptive text for video and still images

* renamed art

* fixing the merge

* fixing hint

* moved step 2 outside ~hint block

* fixing snippets

* remove guitar from project list

* Duration/Materials consistent  format
moved out of ~avatar block
2016-10-03 14:59:58 -07:00
Peli de Halleux
33207f33e5 0.4.33 2016-09-30 22:08:18 -07:00
Peli de Halleux
a487e102ef Bump pxt-core to 0.4.39 2016-09-30 22:08:16 -07:00
Peli de Halleux
a6ffa99ceb 0.4.32 2016-09-30 21:51:56 -07:00
Peli de Halleux
d2aa02c259 Bump pxt-core to 0.4.37 2016-09-30 21:51:54 -07:00
Peli de Halleux
563d76b90a 0.4.31 2016-09-30 10:56:30 -07:00
Peli de Halleux
b433585403 disable persistence of cookies 2016-09-30 10:56:11 -07:00
Peli de Halleux
576f37171a 0.4.30 2016-09-30 08:29:54 -07:00
Peli de Halleux
0bd92a433d Bump pxt-core to 0.4.36 2016-09-30 08:29:52 -07:00
Peli de Halleux
2d5f3421ba updated docs page tracking 2016-09-30 08:29:44 -07:00
Peli de Halleux
7956c6e6a1 disable persistence when initializig mix panel 2016-09-30 08:14:13 -07:00
Peli de Halleux
1f7a56a451 0.4.29 2016-09-29 22:46:54 -07:00
Peli de Halleux
0ea4583b20 fix typo in tracking 2016-09-29 22:45:55 -07:00
Peli de Halleux
4bccb435f7 0.4.28 2016-09-29 22:35:06 -07:00
Peli de Halleux
749c2111d2 disaable user-voice, disable cookies in mixpanel 2016-09-29 22:31:10 -07:00
Peli de Halleux
96991447f8 0.4.27 2016-09-29 22:15:19 -07:00
Peli de Halleux
22f36a623b Bump pxt-core to 0.4.35 2016-09-29 22:15:17 -07:00
Peli de Halleux
8a47793f48 reorg lesson 2016-09-29 22:15:04 -07:00
Peli de Halleux
5cfedf7343 0.4.26 2016-09-29 08:32:27 -07:00
Peli de Halleux
13383e6232 adding sketeches 2016-09-29 08:32:15 -07:00
Peli de Halleux
165cd0c67e Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-29 08:16:14 -07:00
Peli de Halleux
9c8886116e fix for microsoft/pxt#396 2016-09-29 08:15:58 -07:00
Michal Moskal
fc495b928e Implement getPinAddress in simulator 2016-09-29 10:47:50 +01:00
Peli de Halleux
17644d4947 0.4.25 2016-09-28 22:36:26 -07:00
Peli de Halleux
068ea80a45 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-28 22:36:04 -07:00
Peli de Halleux
7a86bbd6b9 Timingate (#265)
* draft lesson

* basic timing gates lesson
2016-09-28 22:35:53 -07:00
Peli de Halleux
78fffe0e01 typos 2016-09-28 19:24:43 -07:00
Peli de Halleux
7bf1a29c83 0.4.24 2016-09-28 18:08:18 -07:00
Peli de Halleux
446ef4d7b7 Bump pxt-core to 0.4.33 2016-09-28 18:08:14 -07:00
Sam El-Husseini
ca3e3a43a5 0.4.23 2016-09-28 17:05:17 -07:00
Peli de Halleux
2225be7af1 added org info 2016-09-28 15:25:58 -07:00
Peli de Halleux
1ce863df96 0.4.22 2016-09-28 11:55:00 -07:00
Peli de Halleux
68ae9864a9 Bump pxt-core to 0.4.32 2016-09-28 11:54:57 -07:00
Peli de Halleux
8cd670b22a 0.4.21 2016-09-28 00:29:43 -07:00
Peli de Halleux
a36038a048 Bump pxt-core to 0.4.30 2016-09-28 00:29:39 -07:00
Peli de Halleux
9d4b31fe4d updated share docs 2016-09-28 00:29:27 -07:00
Sam El-Husseini
3ea6d1e6bb 0.4.20 2016-09-27 18:11:07 -07:00
Sam El-Husseini
1698c4a012 Bump pxt-core to 0.4.27 2016-09-27 18:11:06 -07:00
Peli de Halleux
2c39e249f9 New guitar project (#264) 2016-09-26 21:55:39 -07:00
Peli de Halleux
c486a9db94 0.4.19 2016-09-26 16:31:02 -07:00
Peli de Halleux
816438fa79 Bump pxt-core to 0.4.26 2016-09-26 16:30:58 -07:00
Peli de Halleux
5edd06c9b9 migrating instruction generation logic to pxt 2016-09-26 13:26:43 -07:00
Brahma Giri Abhijith Chatra
a114dc32e7 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-26 10:00:13 -07:00
Abhijith
019bc34d90 Fixing hover text /help window for blocks are not correct 2016-09-26 09:59:52 -07:00
Richard Knoll
0676d780ab Fixing beat fraction typo (#263) 2016-09-23 22:27:57 -07:00
Richard Knoll
96e23d99b2 Merge pull request #261 from Microsoft/note_fix
Add annotation to Note.C in music enum
2016-09-23 12:56:41 -07:00
Richard Knoll
15b1f95394 Add annotation to Note.C in music enum 2016-09-22 14:36:37 -07:00
Peli de Halleux
552b0d8165 0.4.18 2016-09-22 03:56:03 -07:00
Thomas Denney
faed492a87 Embed docs (#259)
* Generic instructions for embedding

* Wordpress instructions, update Markdown instructions

* Blogger instructions

* Squarespace instructions

* Google sites info

* Sway restrictions

* Correct order
2016-09-22 03:50:59 -07:00
Thomas Denney
0ce1738653 Remove comment re Safari in private mode 2016-09-22 09:27:46 +01:00
Peli de Halleux
f5cabe6e94 0.4.17 2016-09-21 22:30:10 -07:00
Peli de Halleux
f2e7a640f1 Bump pxt-core to 0.4.25 2016-09-21 22:30:08 -07:00
Peli de Halleux
7fb057af66 0.4.16 2016-09-21 22:14:40 -07:00
Peli de Halleux
c0b9329401 Bump pxt-core to 0.4.24 2016-09-21 22:14:33 -07:00
Brahma Giri Abhijith Chatra
c04ddbb459 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-21 16:34:06 -07:00
Abhijith
4aac4ef92d Fixing hero lesson 2016-09-21 16:31:03 -07:00
Peli de Halleux
979b2b892a avoid name collision (embed.md => share.md) 2016-09-21 15:01:43 -07:00
Peli de Halleux
4c3f9910f7 0.4.15 2016-09-21 10:55:54 -07:00
Peli de Halleux
9aef584966 Bump pxt-core to 0.4.21 2016-09-21 10:55:52 -07:00
Peli de Halleux
e62d15ba85 Embed docs (#257)
* embed docs

* adding embed docs
2016-09-21 10:15:59 -07:00
Thomas Denney
adf97d9b5c Add information about Safari being unsupported in private browsing mode 2016-09-21 11:23:43 +01:00
Peli de Halleux
2bb6c6ae27 0.4.14 2016-09-20 22:56:14 -07:00
Peli de Halleux
0919eff0c5 Bump pxt-core to 0.4.18 2016-09-20 22:56:12 -07:00
Peli de Halleux
e31279938b 0.4.13 2016-09-20 22:13:15 -07:00
Peli de Halleux
2655843b74 Bump pxt-core to 0.4.17 2016-09-20 22:13:08 -07:00
Thomas Denney
527d323ea7 New electron client (#256) 2016-09-20 22:02:18 -07:00
Thomas Denney
5d40a48477 Merge pull request #255 from Microsoft/browser-versions
More detailed information about which browser versions are supported
2016-09-20 11:54:59 +01:00
Peli de Halleux
850fb54f52 missing shims for devices namespace 2016-09-19 09:49:58 -07:00
Thomas Denney
6bb35c1a72 More detailed information about which browser versions are supported 2016-09-19 09:31:03 +01:00
Peli de Halleux
6569231ba6 0.4.12 2016-09-16 00:05:53 -07:00
Peli de Halleux
a3a1c8a480 Bump pxt-core to 0.4.15 2016-09-16 00:05:51 -07:00
Peli de Halleux
c90dfaa6e7 added headphone part 2016-09-15 23:50:52 -07:00
Peli de Halleux
02cd0e1da3 remove "receivednumberat" from blocks 2016-09-15 23:49:50 -07:00
Peli de Halleux
0f9dde0c4e convert event source/value into TD_ID shims 2016-09-15 23:49:14 -07:00
Peli de Halleux
1e0cd48316 updated docs 2016-09-15 11:04:45 -07:00
Peli de Halleux
d959282c68 0.4.11 2016-09-15 10:50:25 -07:00
Peli de Halleux
d513ad7713 Bump pxt-core to 0.4.13 2016-09-15 10:50:23 -07:00
Peli de Halleux
b7da28285e adding stubs for bluetooth functions 2016-09-15 09:40:58 -07:00
Peli de Halleux
dbaf406703 splitted usb transfer instructions 2016-09-15 08:35:01 -07:00
Peli de Halleux
2cb467f22b 0.4.10 2016-09-15 07:26:32 -07:00
Peli de Halleux
9585e2276d Bump pxt-core to 0.4.12 2016-09-15 07:26:29 -07:00
Thomas Denney
a591d9f072 Release build of Mac client 2016-09-15 09:25:33 +01:00
Thomas Denney
471a30ca3d Minimise memory usage in Mac app directory watcher 2016-09-15 09:24:09 +01:00
Thomas Denney
205b94afe8 Launch editor menu item in Mac app 2016-09-15 09:23:48 +01:00
Thomas Denney
18caf554e9 Use micro:bit image for Mac app icon
I’m continuing to use the same menu bar image, as usually these are black and white on OS X, compared to coloured images being common on the Windows task bar.
2016-09-15 09:17:54 +01:00
Thomas Denney
67cdf16fe4 Remove redundant values from MainMenu.xib
A small section of this file is still required to build and run the app (it contains metadata that declares that AppDelegate.m is the main implementation, for example).
2016-09-15 08:51:49 +01:00
Peli de Halleux
bdbe8371dd 0.4.9 2016-09-14 22:50:29 -07:00
Peli de Halleux
21a36eb9ee fixing broken image paths 2016-09-14 22:43:59 -07:00
Peli de Halleux
376b20b035 0.4.8 2016-09-14 22:28:23 -07:00
Peli de Halleux
7ce41b52aa fixing path in docs 2016-09-14 22:28:05 -07:00
Peli de Halleux
46f7831e7c 0.4.7 2016-09-14 22:21:00 -07:00
Peli de Halleux
dda29a5cb6 Bump pxt-core to 0.4.11 2016-09-14 22:20:58 -07:00
Peli de Halleux
6e4f4595a2 updated usb images 2016-09-14 22:18:01 -07:00
Peli de Halleux
cdbe1e513b 0.4.6 2016-09-14 20:38:49 -07:00
Peli de Halleux
ae15c9a656 Bump pxt-core to 0.4.9 2016-09-14 20:38:47 -07:00
Peli de Halleux
d993ff3a9d 0.4.5 2016-09-14 11:33:54 -07:00
Thomas Denney
13785a2438 OS X uploader (#252)
* Source for OS X uploader

* Readme for OS X uploader

* Export image

* .gitignore for Xcode project

* Remove redundant data

* Update readme instructions

* List formatting

* Remove personal copyright notice added by Xcode

* Added release build and updated readme

* point to doc cdn
2016-09-14 11:33:11 -07:00
Peli de Halleux
4dfb77fcd7 0.4.4 2016-09-14 08:16:32 -07:00
Peli de Halleux
70deffb665 Bump pxt-core to 0.4.8 2016-09-14 08:16:29 -07:00
Peli de Halleux
41a148de28 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-14 08:14:41 -07:00
Peli de Halleux
886e071d7f updated about to link to docs 2016-09-14 08:14:04 -07:00
Peli de Halleux
8a58d664c3 adding clear image in stopanimation 2016-09-14 07:54:35 -07:00
Michal Moskal
71d1155f21 Add file forgotten in 50473255a8 2016-09-14 12:31:52 +03:00
Peli de Halleux
167c1d8fce loading board definition from pxtarget.json 2016-09-13 15:32:12 -07:00
Peli de Halleux
e59ae37954 moving neopixel state to pxt 2016-09-13 13:09:02 -07:00
Peli de Halleux
72a621ec8b mvoing edge connector to pxt 2016-09-13 12:48:07 -07:00
Peli de Halleux
d6ff930333 fix capitalized file names 2016-09-13 10:36:25 -07:00
Thomas Denney
54a7ac81ea Recommended browser documentation (#251)
* Documentation page for unsupported browsers

* Update unsupported documentation with mac info

* Blur irrelevant information in version screenshots

* Rename to Peli's suggested path

* Browser recommendation for each platform
2016-09-13 10:33:06 -07:00
Peli de Halleux
e5d985dbf1 moving boardhost to pxt 2016-09-13 09:59:34 -07:00
Peli de Halleux
9db91d89d6 refactor part global lists 2016-09-13 09:44:58 -07:00
Peli de Halleux
1fa9bf12d5 refactoring dalboard 2016-09-12 21:29:55 -07:00
Peli de Halleux
61bab257eb 0.4.3 2016-09-12 11:45:22 -07:00
Peli de Halleux
2e90b351da updated other download picture 2016-09-12 11:33:16 -07:00
Peli de Halleux
801bd6c7a0 udpated download pictures 2016-09-12 11:30:12 -07:00
Peli de Halleux
777ba40899 0.4.2 2016-09-12 11:19:41 -07:00
Peli de Halleux
0d11c16ecf Bump pxt-core to 0.4.3 2016-09-12 11:19:39 -07:00
Peli de Halleux
9c1628b977 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-12 11:11:12 -07:00
Thomas Denney
953b362b34 Download instructions (#250)
* Images of micro:bit attached t ostuff

* Cropped and enhanced USB images

* Define paths for USB images

* Added new matching criteria for images

* Help URL

* Add paths for all images

* Cropped images so they look better on dialog

* Add link to uploader
2016-09-12 11:10:30 -07:00
Peli de Halleux
8b40850a94 tweaks to neopixel rendering 2016-09-11 21:55:54 -07:00
Michal Moskal
fc3a02cc41 0.4.1 2016-09-11 18:07:11 +01:00
Michal Moskal
80f2ff6757 Bump to 0.4 to match pxt-core 2016-09-11 18:07:05 +01:00
Michal Moskal
6f790d167c 0.3.89 2016-09-11 18:06:20 +01:00
Michal Moskal
ac7502074a Bump pxt-core to 0.4.2 2016-09-11 18:06:20 +01:00
Michal Moskal
50473255a8 Utylize the new target.css file 2016-09-11 17:51:41 +01:00
Peli de Halleux
910772d54e refacotring various simulator features into pxt 2016-09-09 22:56:26 -07:00
Peli de Halleux
33f12f9ecc 0.3.88 2016-09-09 16:41:31 -07:00
Peli de Halleux
01fa4ef53a Bump pxt-core to 0.3.102 2016-09-09 16:41:14 -07:00
Peli de Halleux
3858b0a0a0 moving wiring to pxt 2016-09-09 15:01:29 -07:00
Peli de Halleux
da30afb121 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 13:43:45 -07:00
Peli de Halleux
086bcf372f remove dependencies on dal.d.ts 2016-09-09 13:43:41 -07:00
Michal Moskal
236e7337e2 0.3.87 2016-09-09 20:49:21 +01:00
Michal Moskal
4cf223271f Bump pxt-core to 0.3.100 2016-09-09 20:49:21 +01:00
Michal Moskal
10180f4729 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-09 20:49:19 +01:00
Michal Moskal
618dd33221 No longer used 2016-09-09 20:33:11 +01:00
Michal Moskal
7356e5e52e New index.html expansion 2016-09-09 20:26:18 +01:00
Peli de Halleux
a59d148eb5 0.3.86 2016-09-09 12:23:25 -07:00
Peli de Halleux
34ce687bbd Bump pxt-core to 0.3.98 2016-09-09 12:23:24 -07:00
Michal Moskal
5e241ed566 Use new doc templates 2016-09-09 20:19:52 +01:00
Peli de Halleux
dcb2b21e66 removing dal dependency 2016-09-09 11:36:36 -07:00
Peli de Halleux
95669e174a Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 09:59:21 -07:00
Peli de Halleux
aca7d6113d enable streams in pxtarget 2016-09-09 09:59:07 -07:00
Thomas Denney
ef4b06a087 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-09 15:19:58 +01:00
Michal Moskal
afa69c23c4 0.3.85 2016-09-09 11:35:45 +01:00
Michal Moskal
8229e71d0a Bump pxt-core to 0.3.97 2016-09-09 11:35:45 +01:00
Michal Moskal
93770e5821 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-09 10:17:35 +01:00
Michal Moskal
cb8e28beb0 Bump pxt-microbit-core to 0.5.0 2016-09-09 10:17:28 +01:00
Peli de Halleux
8c7e6055ff enabling parts in target 2016-09-09 01:39:52 -07:00
Peli de Halleux
8450db55ac 0.3.84 2016-09-09 01:25:28 -07:00
Daryl Zuniga
c63e2c85f1 new part definitions (#247)
* working on new part definitions

* draft of new part definitions

* updates comments

* starting new allocator

* starting from the old allocator

* alloc internals renaming

* alloc minor renaming

* alloc internal renaming

* progress on new parts definition

* progress on new part defs allocator

* refactors BBLoc; progress on new allocator

* more progress on new allocator

* finishing new allocator

* deleting old allocator

* moves new allocator and part definitions

* porting to new part definitions

* refactors instructions for new definitions

* debugging new allocator

* fixes ground and power wire colros

* fixing new part definition bugs

* fixes wire end offsets; fixes NeoPixel placement

* fixes colorGroup issue

* fixes led matrix wiring

* naming tweaks

* fixes instructions regressions

* typo
2016-09-09 01:23:39 -07:00
Peli de Halleux
d8fc11a688 0.3.83 2016-09-09 01:20:45 -07:00
Peli de Halleux
847a29848d Bump pxt-core to 0.3.96 2016-09-09 01:20:43 -07:00
Peli de Halleux
39f4372ee5 0.3.82 2016-09-08 23:39:26 -07:00
Peli de Halleux
a8bbbea8ed Bump pxt-core to 0.3.95 2016-09-08 23:39:24 -07:00
Peli de Halleux
91a8d05e45 updated loc strings 2016-09-08 23:11:58 -07:00
Peli de Halleux
3ecedd3a32 0.3.81 2016-09-08 01:02:46 -07:00
Peli de Halleux
b6390d77dd Bump pxt-core to 0.3.94 2016-09-08 01:02:40 -07:00
Peli de Halleux
e8f9e0f023 lighter rendering of breadboard in grayed 2016-09-08 00:54:19 -07:00
Peli de Halleux
2bacb58fdd simpler instructions 2016-09-08 00:46:43 -07:00
Peli de Halleux
af8babfea2 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-08 00:03:33 -07:00
Peli de Halleux
1ee6274100 added raspberry-pi instructions 2016-09-08 00:00:07 -07:00
darzu
7448db5b98 makes instruction panels inline-block 2016-09-07 15:00:42 -07:00
Peli de Halleux
983645403b 0.3.80 2016-09-07 11:49:41 -07:00
Peli de Halleux
7a9f382bee Merge pull request #240 from Microsoft/neopixel-improvement
improves neopixel simulator
2016-09-07 11:22:40 -07:00
darzu
e59fd8469b improves neopixel simulator 2016-09-07 10:58:44 -07:00
Michal Moskal
008c886de9 0.3.79 2016-09-07 16:51:08 +01:00
Michal Moskal
c87fa30738 Bump pxt-core to 0.3.93 2016-09-07 16:51:08 +01:00
Michal Moskal
dd9d1299fa Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-07 16:27:42 +01:00
Michal Moskal
6a7d1bd95c Support for object literals
bump pxt-microbit-core to 0.4.4
see https://github.com/Microsoft/pxt/issues/287
2016-09-07 16:27:28 +01:00
Thomas Denney
dfe270d259 Correct filename of data.csv in radio challenge 2016-09-07 11:32:41 +01:00
Thomas Denney
6deb0683b6 Add GitHub URL property 2016-09-07 10:33:36 +01:00
Sam El-Husseini
0a746f5bbe 0.3.78 2016-09-06 20:41:04 -07:00
Sam El-Husseini
066408c317 Bump pxt-core to 0.3.92 2016-09-06 20:41:02 -07:00
Peli de Halleux
90f7b229d1 0.3.77 2016-09-06 13:41:41 -07:00
Peli de Halleux
c54e0b0e9d Bump pxt-core to 0.3.90 2016-09-06 13:41:35 -07:00
Peli de Halleux
ea088ac828 renaming docs image files 2016-09-06 13:31:47 -07:00
darzu
29cf4d3e53 uses croc clips in instructions only for micro:bit 2016-09-06 10:52:22 -07:00
Peli de Halleux
6d637eefd7 scaling, cropping,blurring 2016-09-06 10:06:09 -07:00
Peli de Halleux
6310e96ac2 Merge pull request #239 from Microsoft/usb-docs-update
.hex file download and USB transfer docs update
2016-09-06 09:10:06 -07:00
Thomas Denney
dbb1e31822 Remove DS_STORE 2016-09-06 10:01:12 +01:00
Thomas Denney
5376bc2dce Rename images, remove redundant images 2016-09-06 09:57:45 +01:00
Thomas Denney
57bd293df8 Move arrow position on doc image 2016-09-06 09:52:17 +01:00
Thomas Denney
e570d46755 Rewrite instructions on downloading files to make them more clear 2016-09-06 09:49:08 +01:00
Thomas Denney
d37f284fce Added arrows to images and updated instructions 2016-09-06 09:28:20 +01:00
Thomas Denney
b716226889 Images for Windows 2016-09-06 09:05:33 +01:00
Peli de Halleux
1bd19cc1a0 support list micro:bit on linux 2016-09-06 00:12:57 -07:00
Sam El-Husseini
ac8c9c5e85 Updating editor screenshots in js/cal, fixes #230 2016-09-05 09:04:03 -07:00
Thomas Denney
057260c483 Update OS X Firefox screenshots and instructions 2016-09-05 16:46:56 +01:00
Thomas Denney
568ae32f81 Update screenshot and instructions for OS X Chrome 2016-09-05 16:32:41 +01:00
Thomas Denney
ae605ff829 Update OS X file transfer screenshot 2016-09-05 16:22:06 +01:00
Thomas Denney
f25ddb1085 OS X screenshot 2016-09-05 15:50:27 +01:00
Michal Moskal
f175f973f0 0.3.76 2016-09-05 14:26:24 +01:00
Michal Moskal
c7e5fa490e Bump pxt-core to 0.3.87 2016-09-05 14:26:24 +01:00
Michal Moskal
61a29f7c67 Always diplay sad face on errors; use nullCheck() function; see https://github.com/Microsoft/pxt/issues/302 2016-09-05 14:26:07 +01:00
Peli de Halleux
50293fc654 don't repace spaces 2016-09-02 21:38:22 -07:00
Peli de Halleux
a9ecadaf09 Merge pull request #238 from Microsoft/power-usage
Direct power wires for single usages
2016-09-02 21:13:15 -07:00
darzu
6e56107eb5 Merge branch 'master' into power-usage 2016-09-02 16:12:48 -07:00
darzu
1f077beb65 directly wires power if there is single usage 2016-09-02 16:11:58 -07:00
Peli de Halleux
8fff762156 removed uwp info 2016-09-02 16:08:49 -07:00
Peli de Halleux
cebded2526 Merge pull request #237 from Microsoft/power-usage
finer grain power wires based on usage
2016-09-02 16:07:02 -07:00
darzu
13f53d730a fixes instruction steps for finer power usage 2016-09-02 15:43:26 -07:00
darzu
8adcab1cab finer grain power wires based on usage 2016-09-02 15:24:16 -07:00
Peli de Halleux
8cb5f442f9 0.3.75 2016-09-02 12:07:49 -07:00
Peli de Halleux
96448d5237 Bump pxt-core to 0.3.86 2016-09-02 12:07:34 -07:00
Michal Moskal
30f01bb0ac 0.3.74 2016-09-02 17:32:54 +01:00
Michal Moskal
3d0b397de2 Bump pxt-core to 0.3.85 2016-09-02 17:32:54 +01:00
Michal Moskal
e0de55d689 Add pxtrt::runtimeWarning() support; see https://github.com/Microsoft/pxt/issues/31 2016-09-02 17:29:40 +01:00
Michal Moskal
7637a98f07 0.3.73 2016-09-02 16:54:27 +01:00
Michal Moskal
95f94e0886 Bump pxt-core to 0.3.84 2016-09-02 16:54:26 +01:00
Michal Moskal
9a2367cf8e Add dummy implementations for some bluetooth functions to avoid crashes 2016-09-02 16:03:55 +01:00
Peli de Halleux
15fecb77c4 0.3.72 2016-09-01 23:23:16 -07:00
Peli de Halleux
4f69bbabfb Bump pxt-core to 0.3.82 2016-09-01 23:23:13 -07:00
Peli de Halleux
8351ed0513 Merge pull request #227 from Microsoft/max6675
adds MAX6675; adds general SPI & I2C support to sim
2016-09-01 22:48:33 -07:00
Peli de Halleux
c34b0a1aeb Merge branch 'master' into max6675 2016-09-01 22:48:02 -07:00
Peli de Halleux
9bcd44d7e4 0.3.71 2016-09-01 22:39:31 -07:00
Peli de Halleux
3403da8ce8 Bump pxt-core to 0.3.81 2016-09-01 22:39:27 -07:00
Peli de Halleux
39c146329f perf optimization 2016-09-01 22:18:36 -07:00
Peli de Halleux
8d0d0a7e9a 0.3.70 2016-09-01 22:00:15 -07:00
Peli de Halleux
61b3783dd4 Bump pxt-core to 0.3.80 2016-09-01 22:00:13 -07:00
Peli de Halleux
da16428842 merging master 2016-09-01 21:12:03 -07:00
darzu
359c456577 adds full-page instruction printing 2016-09-01 19:07:01 -07:00
Peli de Halleux
b3d9c167e1 0.3.69 2016-09-01 17:13:25 -07:00
Peli de Halleux
78398b220f Bump pxt-core to 0.3.79 2016-09-01 17:13:24 -07:00
Peli de Halleux
a656fbbd7b embedding parts svg files in pxt.json 2016-09-01 16:24:12 -07:00
Peli de Halleux
e681cc8c97 added parts to microbit 2016-09-01 15:37:39 -07:00
Peli de Halleux
03beec9c49 0.3.68 2016-09-01 12:13:07 -07:00
Peli de Halleux
1600644be5 Bump pxt-core to 0.3.77 2016-09-01 12:13:06 -07:00
Peli de Halleux
a3dd64eb4c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 12:12:48 -07:00
Peli de Halleux
b865cce44e embedding neopixel / speaker svgs 2016-09-01 10:56:06 -07:00
darzu
dc42900c7f merges with master 2016-09-01 10:08:32 -07:00
darzu
dcc3bd95fe ignores max6675 2016-09-01 10:07:11 -07:00
Peli de Halleux
61e63831aa 0.3.67 2016-09-01 09:10:49 -07:00
Peli de Halleux
5651c3b9ba Bump pxt-core to 0.3.76 2016-09-01 09:10:44 -07:00
Peli de Halleux
a562557bca Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 08:59:31 -07:00
Peli de Halleux
d890c05229 moving parts .svg under simulator 2016-09-01 08:57:20 -07:00
Michal Moskal
4340e1f7ed Rename instructions.html to siminstructions.html; fixes #234 2016-09-01 16:47:32 +01:00
Peli de Halleux
e2e4c68f85 0.3.66 2016-09-01 08:05:39 -07:00
Peli de Halleux
3f6a3089f1 Bump pxt-core to 0.3.75 2016-09-01 08:05:35 -07:00
Peli de Halleux
84a0c0fe56 0.3.65 2016-09-01 06:59:50 -07:00
Peli de Halleux
5237b86cf5 docs cleanup 2016-09-01 06:49:39 -07:00
Peli de Halleux
473950e491 0.3.64 2016-09-01 05:50:27 -07:00
Peli de Halleux
fd33610511 Bump pxt-core to 0.3.74 2016-09-01 05:50:25 -07:00
Peli de Halleux
47ea4e01d2 more docs cleanup 2016-09-01 05:28:27 -07:00
Peli de Halleux
16199cfcea Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 05:11:58 -07:00
Peli de Halleux
8a4556e70c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-09-01 05:08:35 -07:00
Peli de Halleux
bfc2641637 various docs cleanup 2016-09-01 05:08:27 -07:00
Michal Moskal
ef7fdc2ef7 Rename pxsim.pxt to pxsim.pxtcore 2016-09-01 13:06:03 +01:00
Michal Moskal
a8b427fd89 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-09-01 12:13:54 +01:00
Michal Moskal
79c23e2e2a Bump pxt-microbit-core to 0.4.2 with class support 2016-09-01 12:13:40 +01:00
darzu
4070d4e691 Merge branch 'master' into max6675 2016-08-31 22:41:59 -07:00
darzu
7048156b46 draws small wires for small micro:bit pins 2016-08-31 22:41:30 -07:00
Peli de Halleux
c11acce579 0.3.63 2016-08-31 22:30:24 -07:00
Peli de Halleux
f79551073e Bump pxt-core to 0.3.72 2016-08-31 22:30:23 -07:00
darzu
232758805b removes "debugger" statement 2016-08-31 21:56:46 -07:00
darzu
211d4e5538 adds max6675 2016-08-31 21:55:55 -07:00
darzu
374d8c590d adds spi and i2c pins 2016-08-31 21:53:48 -07:00
Peli de Halleux
c6c133ef9e Merge pull request #225 from Microsoft/generic-part
Adds support for generic parts; fixes generic boards to utilize BoardHost
2016-08-31 20:49:03 -07:00
Peli de Halleux
817e86f5aa Merge branch 'master' into generic-part 2016-08-31 20:44:03 -07:00
darzu
19e33d029d removes dead code 2016-08-31 20:15:59 -07:00
darzu
e3671ca809 Merge branch 'arduino' into generic-part 2016-08-31 19:37:57 -07:00
darzu
1f3a2ab6fe adds generic parts to instructions parts list and requirements panels 2016-08-31 19:37:20 -07:00
darzu
dad3e89577 adds "extraColumnOffset" for generic parts 2016-08-31 19:28:28 -07:00
Peli de Halleux
df9d3c4444 0.3.62 2016-08-31 19:22:39 -07:00
Peli de Halleux
edc489c83d Merge pull request #223 from Microsoft/breadboarding
wires, breadboarding, hardware components and Arduino support
2016-08-31 19:17:23 -07:00
Peli de Halleux
fb29af8011 Merge branch 'master' into breadboarding 2016-08-31 19:11:03 -07:00
Peli de Halleux
516def7a3f 0.3.61 2016-08-31 19:10:31 -07:00
Peli de Halleux
b5cb8deb93 Bump pxt-core to 0.3.71 2016-08-31 19:10:29 -07:00
darzu
658083b4eb removes all experimental boards 2016-08-31 19:03:11 -07:00
darzu
1441129355 adds support for generic components 2016-08-31 19:01:59 -07:00
darzu
2b87b26f00 adds support for arduino zero 2016-08-31 18:03:34 -07:00
Peli de Halleux
741facc769 Merge branch 'master' into breadboarding 2016-08-31 16:47:40 -07:00
Peli de Halleux
41a5bc72a1 0.3.60 2016-08-31 16:47:19 -07:00
Peli de Halleux
9d5e93b879 Bump pxt-core to 0.3.69 2016-08-31 16:47:17 -07:00
Peli de Halleux
32e0cb0fe8 Merge branch 'master' into breadboarding 2016-08-31 16:37:14 -07:00
Peli de Halleux
a224259e74 0.3.59 2016-08-31 16:36:35 -07:00
Peli de Halleux
c144f3a15d Bump pxt-core to 0.3.68 2016-08-31 16:36:34 -07:00
Peli de Halleux
a3fa07463f Merge branch 'master' into breadboarding 2016-08-31 16:24:31 -07:00
Peli de Halleux
aa20f2fa4d 0.3.58 2016-08-31 16:24:07 -07:00
Peli de Halleux
4a1399de59 Bump pxt-core to 0.3.67 2016-08-31 16:24:06 -07:00
Peli de Halleux
0b8e5c12c3 merging vnumber 2016-08-31 15:44:11 -07:00
Peli de Halleux
445066776b 0.3.57 2016-08-31 15:42:18 -07:00
Peli de Halleux
6cb204c548 Bump pxt-core to 0.3.66 2016-08-31 15:42:16 -07:00
Peli de Halleux
6ed6a525fd 0.3.56 2016-08-31 15:41:46 -07:00
Peli de Halleux
ba6dc9f136 Bump pxt-core to 0.3.66 2016-08-31 15:41:44 -07:00
Peli de Halleux
98bc8d2a27 0.3.56 2016-08-31 15:20:34 -07:00
Peli de Halleux
58d0e238e3 Bump pxt-core to 0.3.65 2016-08-31 15:20:33 -07:00
darzu
ae17d4380e re-adds arduino board definitino 2016-08-31 14:55:58 -07:00
darzu
f79b726f87 tiny progress on generic part support 2016-08-31 14:48:44 -07:00
Peli de Halleux
0f3c7b8c0f Merge branch 'breadboarding' of https://github.com/Microsoft/pxt-microbit into breadboarding 2016-08-31 14:07:16 -07:00
Peli de Halleux
dac6f5af73 specifying packages needed to render blocks 2016-08-31 14:07:10 -07:00
darzu
99fb074952 adds more padding under breadboard 2016-08-31 14:03:25 -07:00
darzu
66ba26586f fixes wire highlighting in instructions 2016-08-31 13:59:20 -07:00
darzu
e27c4de108 micro:bit wireframe 2016-08-31 13:39:47 -07:00
darzu
f19a110953 Merge branch 'breadboarding' of github.com:Microsoft/pxt-microbit into breadboarding 2016-08-31 11:34:58 -07:00
darzu
626055d3eb fixes microbit board height issue 2016-08-31 11:34:49 -07:00
Peli de Halleux
9085c98c7f merging TD_ID 2016-08-31 11:23:30 -07:00
Peli de Halleux
85e3148f23 Merge branch 'breadboarding' of https://github.com/Microsoft/pxt-microbit into breadboarding 2016-08-31 11:22:38 -07:00
Peli de Halleux
60f8dd8228 annotating note with TD_ID 2016-08-31 11:22:07 -07:00
darzu
c2e37a2c6e refactoring instructions to work with boardHost 2016-08-31 11:14:16 -07:00
Peli de Halleux
b4ad4819a5 adding additional built-in parts 2016-08-31 08:46:44 -07:00
Peli de Halleux
d9f2c7cc42 don't show text cursor on labels 2016-08-31 05:31:09 -07:00
Peli de Halleux
15638d2767 don't use 'let' in .html files 2016-08-31 04:55:26 -07:00
Peli de Halleux
5ecd20583b Merge branch 'master' into breadboarding 2016-08-30 21:41:17 -07:00
Peli de Halleux
4c27d62796 removing external boards 2016-08-30 21:15:27 -07:00
Peli de Halleux
90da72a8de support for resizing simulator based on usage of parts 2016-08-30 17:18:03 -07:00
darzu
8f50beb938 adds new custom NeoPixel svg 2016-08-30 15:59:02 -07:00
darzu
52527dd584 fixes micro:bit + breadboard sim size issue 2016-08-30 15:33:57 -07:00
darzu
fc0faf5181 removes unused m:b params 2016-08-30 14:17:17 -07:00
darzu
cd9589e562 adds "boardhost" to handle composition of ...
... breadboard, board, wires, and definition allocation.
2016-08-30 14:13:44 -07:00
Peli de Halleux
a34bcee7a2 added simulator 2016-08-30 13:39:31 -07:00
Peli de Halleux
d011cdb37e updated cli / vscode docs 2016-08-30 13:34:05 -07:00
darzu
af7c51b954 renames state -> board 2016-08-30 12:42:30 -07:00
darzu
a65e71f3b1 moves all of pxt-arduino breadboarding here...
... see pxt-arduino history starting here: acd49bb795
2016-08-30 11:55:00 -07:00
darzu
89e899cc79 splits m:b simulator state 2016-08-30 11:51:32 -07:00
Peli de Halleux
b37e823b57 0.3.55 2016-08-30 11:35:31 -07:00
Peli de Halleux
8cb31daa48 Adding CLI pointer 2016-08-30 11:35:16 -07:00
darzu
a984778dfd renames simsvg and libmbit 2016-08-30 11:27:29 -07:00
darzu
008cbf543f adds "speaker" parts annotation 2016-08-30 11:17:15 -07:00
darzu
61ee841431 adds arduino & speaker svgs 2016-08-30 11:15:24 -07:00
Michal Moskal
e856d59235 0.3.54 2016-08-30 12:50:18 +02:00
Michal Moskal
32753d3395 Bump pxt-core to 0.3.61 2016-08-30 12:50:18 +02:00
Michal Moskal
7b11a04727 Upgrade pxt-microbit-core to 0.4.1 2016-08-30 12:48:58 +02:00
Peli de Halleux
6d6c053e4f 0.3.53 2016-08-29 23:25:12 -07:00
Peli de Halleux
1008fdd371 Bump pxt-core to 0.3.60 2016-08-29 23:25:11 -07:00
Peli de Halleux
ddc2b7437b re-ordering of blocks in docs 2016-08-29 14:49:51 -07:00
Peli de Halleux
b9c95ebb1e 0.3.52 2016-08-29 13:26:01 -07:00
Peli de Halleux
b16d02ec66 Bump pxt-core to 0.3.59 2016-08-29 13:25:58 -07:00
Peli de Halleux
38fb36087a fixing local deployment (pxtc import issue) 2016-08-26 17:51:15 -07:00
Peli de Halleux
5dbbc2266f 0.3.51 2016-08-26 12:17:42 -07:00
Peli de Halleux
2a22001e02 0.3.50 2016-08-26 12:12:32 -07:00
Peli de Halleux
214ff25995 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-26 12:01:14 -07:00
Peli de Halleux
f4768d99ff Merge pull request #220 from Microsoft/parts
adds "parts" annotations
2016-08-26 12:00:59 -07:00
Peli de Halleux
8792f9fe36 0.3.49 2016-08-26 11:56:22 -07:00
Peli de Halleux
3d45bef910 Bump pxt-core to 0.3.56 2016-08-26 11:56:20 -07:00
Peli de Halleux
3de6b33163 added README.md in default blocks target 2016-08-26 09:58:13 -07:00
Peli de Halleux
3f1c03ea51 added search / watch excludes 2016-08-26 09:31:06 -07:00
Peli de Halleux
a4063d636d merging changes 2016-08-26 08:36:49 -07:00
Michal Moskal
92b5b76171 Add target-specific favicon; see https://github.com/Microsoft/pxt/issues/54 2016-08-26 16:35:13 +02:00
Michal Moskal
51d285b0b0 Set target-specific avatar; fixes https://github.com/Microsoft/pxt/issues/97 2016-08-26 16:15:58 +02:00
Michal Moskal
4d8afdd3ae Format 2016-08-26 16:12:22 +02:00
Michal Moskal
13b21ad275 0.3.48 2016-08-26 15:24:48 +02:00
Michal Moskal
d90a43a6d8 Bump pxt-core to 0.3.55 2016-08-26 15:24:48 +02:00
Michal Moskal
6fd14e718d Use the new pxtc namespace 2016-08-26 15:19:04 +02:00
Michal Moskal
c79f043529 0.3.47 2016-08-26 13:18:35 +02:00
Michal Moskal
3a676c7151 Bump pxt-core to 0.3.53 2016-08-26 13:18:34 +02:00
Michal Moskal
0023710209 String/ptr -> boolean helpers added 2016-08-26 13:14:48 +02:00
Michal Moskal
0756091e8c Remove st/ldglb (no longer used) 2016-08-26 11:09:18 +02:00
Peli de Halleux
8144df0023 0.3.47 2016-08-25 22:19:12 -07:00
Peli de Halleux
b2137e2622 Bump pxt-core to 0.3.52 2016-08-25 22:19:11 -07:00
Peli de Halleux
39b30c8ae1 0.3.46 2016-08-25 16:02:54 -07:00
Peli de Halleux
1c5d6316cc Bump pxt-core to 0.3.51 2016-08-25 16:02:53 -07:00
Michal Moskal
6d4d681898 Link to pxt package docs 2016-08-25 17:44:53 +02:00
Michal Moskal
7053fd1490 Ref-counting fix 2016-08-25 15:45:43 +02:00
Michal Moskal
e7a49acac0 0.3.45 2016-08-24 15:03:29 +03:00
Michal Moskal
d76cfb6e2e Bump pxt-core to 0.3.49 2016-08-24 15:03:28 +03:00
Michal Moskal
538f08052d Make Image ref-counted; fixes #171 2016-08-24 15:02:55 +03:00
Michal Moskal
b6fed71c58 0.3.44 2016-08-24 14:38:50 +03:00
Michal Moskal
6c86f98b66 Bump pxt-core to 0.3.48 2016-08-24 14:38:50 +03:00
Michal Moskal
26797545c6 0.3.43 2016-08-24 14:28:20 +03:00
Michal Moskal
3ce8aa1f47 Bump pxt-core to 0.3.47 2016-08-24 14:28:20 +03:00
darzu
8b46698f50 adds "parts" annotations...
...to libs/microbit and libs/microbit-bluetooth
2016-08-22 08:48:48 -07:00
Sam El-Husseini
47401e947c Missing a reference to the "Compile" button, changed to Download. 2016-08-19 11:09:12 -07:00
Michal Moskal
718cc9d530 Add script for running tests as in travis 2016-08-19 13:46:30 +03:00
Peli de Halleux
b83d777144 0.3.42 2016-08-18 16:11:54 -07:00
Peli de Halleux
cfb9acea34 Bump pxt-core to 0.3.46 2016-08-18 16:11:52 -07:00
Peli de Halleux
53189830a1 Merge pull request #207 from Microsoft/microsoftsam/compiletodownload
Converting the term "Compile" to "Download" in the docs
2016-08-18 14:39:29 -07:00
Sam El-Husseini
67da22c135 Converting the term "Compile" to "Download" in the docs microsoft/pxt#236 2016-08-18 13:17:05 -07:00
Sam El-Husseini
7c7014a25f 0.3.41 2016-08-18 11:57:52 -07:00
Sam El-Husseini
851f395ec9 Bump pxt-core to 0.3.45 2016-08-18 11:57:51 -07:00
Sam El-Husseini
a343cbd065 0.3.40 2016-08-18 11:24:39 -07:00
Sam El-Husseini
a2c042f715 Bump pxt-core to 0.3.43 2016-08-18 11:24:33 -07:00
Michal Moskal
a4a97f31cb 0.3.39 2016-08-18 18:33:59 +03:00
Michal Moskal
5bd6a384ae Bump pxt-core to 0.3.42 2016-08-18 18:33:58 +03:00
Peli de Halleux
943393dfa3 updated solution of uploader app 2016-08-18 08:32:36 -07:00
Peli de Halleux
7089aa9c54 Merge pull request #206 from sgk/music-changeTempo-fix
Fix changeTempo() calculation
2016-08-18 07:45:49 -07:00
Peli de Halleux
bd9e456bc5 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-18 07:43:39 -07:00
Peli de Halleux
ea82d066c9 cleaning out old images 2016-08-18 07:23:26 -07:00
Peli de Halleux
bb8338a0f0 launch editor with #uploader tag to notify client that uploader is available 2016-08-18 07:02:19 -07:00
Shigeru KANEMOTO
b24b65abcd Call init() before using beatsPerMinute. 2016-08-18 22:19:03 +09:00
Shigeru KANEMOTO
2cc0523f9a Fix changeTempo() calculation 2016-08-18 22:13:12 +09:00
Michal Moskal
a78f7f9601 0.3.38 2016-08-18 15:55:34 +03:00
Michal Moskal
b1cf3246ae Revert "Use embedded version of microbit to avoid yotta build"
This reverts commit 8eb3376cf5.
2016-08-18 15:55:23 +03:00
Michal Moskal
24eb6f64db 0.3.37 2016-08-18 15:31:31 +03:00
Michal Moskal
0c99eaf7bf Bump pxt-core to 0.3.40 2016-08-18 15:31:31 +03:00
Michal Moskal
8eb3376cf5 Use embedded version of microbit to avoid yotta build 2016-08-18 14:26:56 +03:00
Michal Moskal
b863d5663d Add buffer shift rotate tests (moved from pxt) 2016-08-18 10:52:19 +03:00
Peli de Halleux
aeb4cb6a17 0.3.36 2016-08-17 23:27:03 -07:00
Peli de Halleux
fd88e0b7f0 Bump pxt-core to 0.3.39 2016-08-17 23:27:00 -07:00
Peli de Halleux
ea0d2d4d02 add i2c fram to package list 2016-08-17 18:23:08 -07:00
Peli de Halleux
adff537013 0.3.35 2016-08-17 17:06:44 -07:00
Peli de Halleux
19fc284884 Bump pxt-core to 0.3.38 2016-08-17 17:06:42 -07:00
Peli de Halleux
5d9f85828d updated blocks template 2016-08-17 17:05:10 -07:00
Peli de Halleux
9f31637000 support for max-duration in pulse-in 2016-08-17 11:35:54 -07:00
Peli de Halleux
8e811b913e adding pins.pulseIn API 2016-08-17 11:18:15 -07:00
Peli de Halleux
269254796d add descriptions 2016-08-17 09:44:15 -07:00
Peli de Halleux
46995cbd54 Adding max6675 package in built-in list 2016-08-17 09:44:08 -07:00
Peli de Halleux
380488528f Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-17 08:40:45 -07:00
Peli de Halleux
aca863f436 adding translation docs 2016-08-17 08:39:50 -07:00
Michal Moskal
a1ec25fd79 0.3.34 2016-08-17 18:09:20 +03:00
Michal Moskal
3e9d6d5895 Bump pxt-core to 0.3.37 2016-08-17 18:09:19 +03:00
Michal Moskal
719370f6b0 Use the new lambdas 2016-08-17 18:08:46 +03:00
Michal Moskal
2780497d4f 0.3.33 2016-08-17 17:15:09 +03:00
Michal Moskal
3eeaf2eddc Bump pxt-core to 0.3.36 2016-08-17 17:15:09 +03:00
Michal Moskal
eb3e91420c 0.3.32 2016-08-17 15:09:56 +03:00
Michal Moskal
38cd913020 Bump pxt-core to 0.3.35 2016-08-17 15:08:24 +03:00
Peli de Halleux
9159c297a5 added wait-micros function 2016-08-16 17:04:21 -07:00
Peli de Halleux
851687dba8 0.3.31 2016-08-16 13:44:38 -07:00
Peli de Halleux
28b8006ec5 removing spurious logging 2016-08-16 10:11:55 -07:00
Peli de Halleux
271128c075 answering questions about saving 2016-08-16 09:21:41 -07:00
Peli de Halleux
a04ca0d715 0.3.30 2016-08-16 07:46:43 -07:00
Peli de Halleux
8b89fe721d Bump pxt-core to 0.3.34 2016-08-16 07:46:39 -07:00
Peli de Halleux
1baf04b1fd added links to packages 2016-08-15 23:16:10 -07:00
Peli de Halleux
6c7f0f911c 0.3.29 2016-08-15 15:44:05 -07:00
Peli de Halleux
f2008f9263 Bump pxt-core to 0.3.33 2016-08-15 15:44:03 -07:00
Peli de Halleux
62127f7269 Updated VS code instructions 2016-08-15 11:03:03 -07:00
Peli de Halleux
740cedd978 added docs 2016-08-12 16:15:41 -07:00
Peli de Halleux
4278ff2b37 0.3.28 2016-08-12 08:36:34 -07:00
Peli de Halleux
e7bea34d95 Bump pxt-core to 0.3.32 2016-08-12 08:36:33 -07:00
Peli de Halleux
825409b697 0.3.27 2016-08-12 04:03:06 -07:00
Peli de Halleux
8f72ac0094 Bump pxt-core to 0.3.31 2016-08-12 04:03:03 -07:00
Peli de Halleux
8a6bb610e3 updated description 2016-08-12 03:37:27 -07:00
Peli de Halleux
94dc141062 0.3.26 2016-08-11 16:33:03 -07:00
Peli de Halleux
286dd1e50b Bump pxt-core to 0.3.29 2016-08-11 16:33:00 -07:00
Peli de Halleux
6451d9add9 0.3.25 2016-08-11 16:24:34 -07:00
Peli de Halleux
fd1dcde86b Bump pxt-core to 0.3.28 2016-08-11 16:24:30 -07:00
Peli de Halleux
99947a9e21 0.3.24 2016-08-11 16:07:31 -07:00
Peli de Halleux
a69239abed Bump pxt-core to 0.3.27 2016-08-11 16:07:29 -07:00
Peli de Halleux
fd06fae050 0.3.23 2016-08-11 15:05:30 -07:00
Peli de Halleux
7fbb056edf Bump pxt-core to 0.3.26 2016-08-11 15:05:29 -07:00
Peli de Halleux
06758863fb 0.3.22 2016-08-11 14:38:08 -07:00
Peli de Halleux
ad8af16a5a 0.3.21 2016-08-11 14:15:02 -07:00
Peli de Halleux
70dd6bcac5 Bump pxt-core to 0.3.25 2016-08-11 14:14:59 -07:00
Peli de Halleux
b103423a53 0.3.20 2016-08-11 12:11:04 -07:00
Peli de Halleux
a82a44e587 Bump pxt-core to 0.3.23 2016-08-11 12:11:02 -07:00
Peli de Halleux
e6f612283f remove dead page 2016-08-11 11:41:59 -07:00
Peli de Halleux
fcd60876ab Removing streaming menu dialog 2016-08-11 11:41:07 -07:00
Peli de Halleux
5daa9a0bb6 broken links 2016-08-11 10:44:17 -07:00
Peli de Halleux
4fb3926073 fix snippets 2016-08-11 10:40:48 -07:00
Peli de Halleux
73932f4619 0.3.19 2016-08-10 23:27:46 -07:00
Peli de Halleux
c99138b02e adding SPI support 2016-08-10 23:26:58 -07:00
Peli de Halleux
64d584681a docs tweaks 2016-08-10 16:09:57 -07:00
Peli de Halleux
9788dd49cc fix testsnippet crash 2016-08-10 14:06:26 -07:00
Peli de Halleux
9d15c4e270 fixing docs issues 2016-08-10 13:46:11 -07:00
Peli de Halleux
fe7b06d763 0.3.18 2016-08-10 13:12:26 -07:00
Peli de Halleux
0e0275e496 doc fixes 2016-08-10 13:10:40 -07:00
Peli de Halleux
ffd4d96539 properly escape values in json payload 2016-08-10 09:28:22 -07:00
Peli de Halleux
a6b4c9645a Merge pull request #199 from Microsoft/ignore-snippets
-ignore snippet notation
2016-08-10 08:29:05 -07:00
Thomas Denney
a9141d027f Add package info for server side check 2016-08-10 13:44:10 +01:00
Thomas Denney
807e581c3d Addition of ignore notation
Some snippets are designed to show syntax errors or refer to earlier variables. In this case the automated checker needs to avoid compiling them
2016-08-10 13:43:48 +01:00
Thomas Denney
41a4dfeb68 Documentation snippet fixes 2016-08-10 10:51:55 +01:00
Peli de Halleux
4430391e87 0.3.17 2016-08-09 22:16:31 -07:00
Peli de Halleux
81667f4df5 Bump pxt-core to 0.3.22 2016-08-09 22:16:28 -07:00
Peli de Halleux
835048132c adjustments to electron app 2016-08-09 22:08:46 -07:00
Peli de Halleux
00217305c2 0.3.16 2016-08-09 12:38:30 -07:00
Peli de Halleux
85e8a70f76 Bump pxt-core to 0.3.21 2016-08-09 12:38:28 -07:00
Peli de Halleux
bbdf27de5a adding pxt-neopixel to pre-populated package list 2016-08-09 11:02:23 -07:00
Peli de Halleux
3e63d4083e update title 2016-08-09 10:27:39 -07:00
Peli de Halleux
d1b8e3c752 added electron host 2016-08-09 09:55:37 -07:00
Thomas Denney
1164feb754 More snippet types 2016-08-09 16:55:43 +01:00
Thomas Denney
9ebd9d4f04 Add more snippet types for better detection 2016-08-09 16:52:24 +01:00
Thomas Denney
9fd2a3a3e6 Remove trailing whitespace 2016-08-09 16:39:50 +01:00
Thomas Denney
7f40889103 Add package info to mic docs (for testing) 2016-08-09 16:35:45 +01:00
Thomas Denney
ee37b4a959 Add package info to radio docs (for testing) 2016-08-09 16:28:08 +01:00
Thomas Denney
99d05ec91b Merge branch 'master' of https://github.com/thomasdenney/pxt-microbit 2016-08-09 16:11:27 +01:00
Thomas Denney
412e5bd034 Fix doc comment 2016-08-09 16:10:53 +01:00
Thomas Denney
141420d337 Correct Bluetooth doc comment 2016-08-09 16:05:25 +01:00
Thomas Denney
084f83ba1b Merge branch 'master' of https://github.com/thomasdenney/pxt-microbit 2016-08-09 15:13:35 +01:00
Peli de Halleux
8601eff170 fixed snippets 2016-08-08 20:44:43 -07:00
Peli de Halleux
5da4d74a2a adding messenger project 2016-08-08 18:12:34 -07:00
Peli de Halleux
4215574a7c 0.3.15 2016-08-08 16:58:02 -07:00
Peli de Halleux
da9d986a3e Bump pxt-core to 0.3.19 2016-08-08 16:58:00 -07:00
Peli de Halleux
7481b9c24c call receiveNumber in onDataReceived to flush queue if needed (startup race)
fixed simulator issue when event onDataReceived gets raised
2016-08-08 16:54:43 -07:00
Peli de Halleux
de5def8dde adding led.toggle as a block 2016-08-08 16:53:55 -07:00
Peli de Halleux
dd011b977a wired up onPinReleased to simulator 2016-08-08 15:27:13 -07:00
Peli de Halleux
20d0dd91ad added input.onPinRelease. Fix for #294 2016-08-08 15:23:18 -07:00
Peli de Halleux
825c6d57e7 testing fr jsdoc transtions 2016-08-08 13:47:45 -07:00
Peli de Halleux
b3edb81d3c adding URL for SEO 2016-08-08 13:08:15 -07:00
Peli de Halleux
78089da134 0.3.14 2016-08-05 08:37:58 -07:00
Peli de Halleux
3aef765d35 Bump pxt-core to 0.3.18 2016-08-05 08:37:56 -07:00
Peli de Halleux
f4727f12c9 0.3.13 2016-08-04 10:10:03 -07:00
Peli de Halleux
a36cb65aa5 Bump pxt-core to 0.3.17 2016-08-04 10:09:56 -07:00
Peli de Halleux
3b16e59ee1 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-08-04 10:09:42 -07:00
Peli de Halleux
f2c43c74ac support for start/length in buffer methods 2016-08-04 08:42:47 -07:00
Sam El-Husseini
1c4c93dc60 0.3.12 2016-08-03 17:19:26 -07:00
Sam El-Husseini
d73847bfba Bump pxt-core to 0.3.15 2016-08-03 17:19:19 -07:00
Peli de Halleux
4e46682489 keep older value longer 2016-08-02 15:35:33 -07:00
Peli de Halleux
ab7aa00747 0.3.11 2016-08-02 13:25:13 -07:00
Peli de Halleux
2bebb6056d Bump pxt-core to 0.3.14 2016-08-02 13:25:11 -07:00
Peli de Halleux
22046c417c adding uservoice info 2016-08-02 13:18:07 -07:00
Peli de Halleux
dc8afa6d45 0.3.10 2016-08-02 11:06:34 -07:00
Peli de Halleux
22e2ab5ad9 Bump pxt-core to 0.3.13 2016-08-02 11:06:31 -07:00
Peli de Halleux
f365726a8e fixed regfression in showleds
see 65594842fc
2016-08-02 11:04:49 -07:00
Peli de Halleux
e329b3bd2e prepend all radio blocks with "radio" 2016-08-01 16:02:06 -07:00
Peli de Halleux
d7b709e97b added screenshots 2016-08-01 16:01:45 -07:00
Peli de Halleux
9714ec46e9 support page 2016-08-01 14:24:25 -07:00
Peli de Halleux
20ef54f565 fixed win10 app 2016-08-01 14:23:40 -07:00
Peli de Halleux
554df0bce9 0.3.9 2016-07-29 14:22:51 -07:00
Peli de Halleux
6c89dddef6 Bump pxt-core to 0.3.12 2016-07-29 14:22:48 -07:00
Peli de Halleux
23f91895f7 restore advanced section in reference 2016-07-29 14:19:21 -07:00
Peli de Halleux
3f83cda087 mark serial messages as simulated 2016-07-29 13:42:21 -07:00
Peli de Halleux
7e79635413 0.3.8 2016-07-29 10:49:38 -07:00
Peli de Halleux
56e1cf91ac Bump pxt-core to 0.3.11 2016-07-29 10:49:36 -07:00
Michal Moskal
f9f96f33f0 0.3.7 2016-07-29 11:37:58 +01:00
Michal Moskal
0b33073be1 Bump pxt-core to 0.3.10 2016-07-29 11:37:57 +01:00
Sam El-Husseini
65594842fc Fix issue with multi digit numbers not scrolling all the way off screen as is the case on the physical pxt. 2016-07-28 15:54:10 -07:00
Sam El-Husseini
c6ed665f84 Fix for issue 176: basic.showNumber timing in the simulator
- updated basic.cpp::showNumber to use printChar instead of print.
2016-07-28 15:04:56 -07:00
Peli de Halleux
79462deb24 Merge pull request #190 from Microsoft/microsoftsam/issue179
Fix for issue 179: Watch Challenges goes to Rock Paper Scissors instead of the challenges code
2016-07-28 14:21:18 -07:00
Sam El-Husseini
5c05f3e241 Fix for issue 179: Watch Challenges goes to Rock Paper Scissors instead of the challenges code 2016-07-28 13:13:33 -07:00
Ron Hale-Evans
4f7dd75fbe Finished animation API 2016-07-28 12:16:18 -07:00
Peli de Halleux
338e507b51 temporary fix for reference 2016-07-28 12:03:03 -07:00
Peli de Halleux
601231a5dc 0.3.6 2016-07-28 11:54:23 -07:00
Peli de Halleux
f0850336e5 Bump pxt-core to 0.3.9 2016-07-28 11:54:18 -07:00
Ron Hale-Evans
a6b2187ec5 Edited advanced page 2016-07-28 10:56:37 -07:00
Peli de Halleux
28ae4f4230 better board name detection 2016-07-28 10:22:05 -07:00
Peli de Halleux
09933b6a8d advanced section 2016-07-28 09:15:31 -07:00
Michal Moskal
45bb6e7cb3 0.3.5 2016-07-28 12:47:58 +01:00
Michal Moskal
33c234a87e Bump pxt-core to 0.3.8 2016-07-28 12:47:57 +01:00
Michal Moskal
e9aa343d67 0.3.4 2016-07-28 11:51:44 +01:00
Michal Moskal
d83039430c Bump pxt-core to 0.3.7 2016-07-28 11:51:43 +01:00
Michal Moskal
5b2e877aef Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-28 11:49:04 +01:00
Michal Moskal
c5b28f5b8e Document testing 2016-07-28 11:47:45 +01:00
Michal Moskal
e765021bf9 Compile lang-tests to binary 2016-07-28 11:38:35 +01:00
Michal Moskal
dbcd9e535c Get generic part of lang-test from pxt-core package 2016-07-28 11:35:17 +01:00
Peli de Halleux
cff88d67ad Update README.md 2016-07-27 13:48:57 -07:00
Peli de Halleux
3f241e8bc9 Merge pull request #180 from Microsoft/snippetfixes
Fixes to documentation snippets
2016-07-27 13:30:39 -07:00
Peli de Halleux
69c3d2d249 Update README.md 2016-07-27 13:28:57 -07:00
Peli de Halleux
bc04d30595 some updates to setup instructions 2016-07-27 13:15:30 -07:00
Michal Moskal
63a26835b1 Format code 2016-07-27 19:32:58 +01:00
Peli de Halleux
79113115e0 docs update 2016-07-27 10:57:18 -07:00
Peli de Halleux
573ed7f6f2 updated localization strings in bundled packages 2016-07-27 08:42:58 -07:00
Peli de Halleux
61da1032d6 0.3.3 2016-07-27 07:26:24 -07:00
Peli de Halleux
36d455c693 Bump pxt-core to 0.3.5 2016-07-27 07:26:20 -07:00
Peli de Halleux
42c766b6d7 updated shim definition 2016-07-26 16:17:54 -07:00
Peli de Halleux
6f00384891 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-26 13:52:01 -07:00
Peli de Halleux
8440f7c763 adding "pin is pressed" block 2016-07-26 13:51:41 -07:00
Tom Ball
8a8e864f99 fix reference section 2016-07-26 14:18:44 -04:00
Tom Ball
7a3402b782 add FAQ for language 2016-07-26 14:10:41 -04:00
Tom Ball
5e9a5b29f4 fix formatting problem 2016-07-26 14:10:41 -04:00
Peli de Halleux
aff9d1ee60 clean up docs 2016-07-26 09:03:42 -07:00
Peli de Halleux
8add7e8efb updated radio strings / docs page 2016-07-26 08:47:45 -07:00
Michal Moskal
e7dfd0531b 0.3.2 2016-07-26 13:12:48 +01:00
Michal Moskal
d2b1f70ce2 Bump pxt-core to 0.3.2 2016-07-26 13:12:48 +01:00
Michal Moskal
fbf7513c44 0.3.1 2016-07-26 13:03:23 +01:00
Michal Moskal
e9bdc26d15 Bump to 0.3 2016-07-26 13:03:15 +01:00
Michal Moskal
52fafe9359 0.2.188 2016-07-26 12:59:11 +01:00
Michal Moskal
971dca6c96 0.2.187 2016-07-26 12:58:47 +01:00
Michal Moskal
a761c27b19 Bump pxt-core to 0.3.1 2016-07-26 12:58:47 +01:00
Michal Moskal
a062a85c7f Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-26 12:46:24 +01:00
Michal Moskal
a9865a731a Moved to separate repos 2016-07-26 12:41:30 +01:00
Tom Ball
ba4095ac9c fix problem with semis 2016-07-26 00:45:39 -04:00
Tom Ball
8606a00701 remove link to pxt 2016-07-26 00:37:14 -04:00
Tom Ball
bf57ba2902 link to PXT 2016-07-25 20:05:27 -04:00
Tom Ball
4cd61cd96a delete lang.md 2016-07-25 17:01:37 -04:00
Tom Ball
c4139a862f some doc fixes 2016-07-25 17:00:51 -04:00
Tom Ball
ca3cd1de22 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit
# Conflicts:
#	package.json
2016-07-25 16:53:33 -04:00
Peli de Halleux
d7f22bc8e6 fix broken link 2016-07-25 11:33:14 -07:00
Thomas Denney
28b28d0b52 Change array declaration for first snippet in headbands 2016-07-25 11:11:51 +01:00
Thomas Denney
0ee2b285c0 Deleted list of bad snippets 2016-07-25 11:10:01 +01:00
Thomas Denney
d5cb085264 Rename function call in number documentation 2016-07-25 11:01:10 +01:00
Thomas Denney
c055a5d329 Syntax fixes to LED plotting docs 2016-07-25 11:00:34 +01:00
Thomas Denney
8fe8b78f4c Syntax fixes for hero lesson 2016-07-25 10:39:02 +01:00
Thomas Denney
f627f125c0 Syntax fixes for headbands lesson 2016-07-25 10:35:15 +01:00
Thomas Denney
7d3254477a Fix case of math in documentation snippet 2016-07-25 10:22:15 +01:00
Thomas Denney
3149ed4c1d Line numbers 2016-07-25 10:15:35 +01:00
Thomas Denney
baeafcdebe List of all snippets with errors 2016-07-25 09:39:34 +01:00
Peli de Halleux
12754acc54 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-22 15:14:50 -07:00
Michal Moskal
329baaf9a4 0.2.192 2016-07-22 17:07:29 +01:00
Michal Moskal
47efcfb41f Bump pxt-core to 0.2.202 2016-07-22 17:07:29 +01:00
Michal Moskal
e2d1b8a55c Run tests 2016-07-22 17:06:56 +01:00
Michal Moskal
579eb29ce3 0.2.191 2016-07-22 15:22:50 +01:00
Michal Moskal
ada9560642 Bump pxt-core to 0.2.201 2016-07-22 15:22:49 +01:00
Michal Moskal
7b352b3a58 Use pre-cached TD scripts for testing 2016-07-22 15:21:16 +01:00
Michal Moskal
a5d5836ea2 Add some tests converted from TD 2016-07-22 15:18:38 +01:00
Peli de Halleux
57dc26a127 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-22 07:15:57 -07:00
Michal Moskal
3e37b03808 0.2.190 2016-07-22 12:26:13 +01:00
Michal Moskal
d035713786 Bump pxt-core to 0.2.200 2016-07-22 12:26:13 +01:00
Michal Moskal
6e4a71b2f4 0.2.189 2016-07-22 12:12:21 +01:00
Michal Moskal
0b4dd534ab Bump pxt-core to 0.2.199 2016-07-22 12:12:20 +01:00
Michal Moskal
ed07f0baad 0.2.188 2016-07-22 11:57:15 +01:00
Michal Moskal
004d34b5df Bump pxt-core to 0.2.197 2016-07-22 11:57:15 +01:00
Michal Moskal
aa380baf1c 0.2.187 2016-07-22 11:39:39 +01:00
Michal Moskal
5123a962d9 Bump pxt-core to 0.2.196 2016-07-22 11:39:39 +01:00
Michal Moskal
7dcd770508 Cache sources for testconv in travis 2016-07-22 11:32:57 +01:00
Jonathan Protzenko
ead4d32446 Update analog-read-pin.md 2016-07-21 16:36:33 -07:00
Jonathan Protzenko
a51a14022a Update analog-pitch.md 2016-07-21 16:25:20 -07:00
Peli de Halleux
05098252ed slightly more impressive about example 2016-07-21 15:32:59 -07:00
Peli de Halleux
8e74965964 remove experiemental translations 2016-07-21 14:22:30 -07:00
Peli de Halleux
63913c2182 updated getting-started intro 2016-07-21 13:46:22 -07:00
Ron Hale-Evans
c55716e148 Control pages now link to Lancaster 2016-07-21 13:29:59 -07:00
Peli de Halleux
dd94442555 Merge pull request #173 from gingemonster/master
fixing more help broken links
2016-07-21 11:10:55 -07:00
Peli de Halleux
56f6a2fa56 Merge pull request #172 from gingemonster/patch-1
updated setPull help annotation
2016-07-21 11:10:15 -07:00
Peli de Halleux
4ca9df141c Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-07-21 11:06:13 -07:00
Peli de Halleux
a29e06abce removing dangling file 2016-07-21 11:06:02 -07:00
Michal Moskal
43e4d06fd9 Add tests (for pxt testdir) 2016-07-21 16:08:22 +01:00
Michal Moskal
3c8027425a Fix order of arguments for memset() 2016-07-21 09:54:53 +01:00
Ron Hale-Evans
3f66870688 Getting started with Control 2016-07-20 16:25:09 -07:00
Tom Ball
1f32a4851e Bump pxt-core to 0.2.195 2016-07-20 15:37:26 -07:00
Ron Hale-Evans
478b1c84de Adding templates to Control directory 2016-07-20 11:31:14 -07:00
gingemonster
20ac14fdf6 fixing more help documentation links
set-accelerometer-range was wrong so fixing reference to help doc
2016-07-20 10:44:32 +01:00
gingemonster
c805d67cf6 fixing help for pins.pulseDuration
Help document at https://codethemicrobit.com/reference/pins/pulse-duration doesnt match the help annotation in the code so this fixes it
2016-07-20 06:29:44 +01:00
gingemonster
943c2e7716 Fixing help annotation on serial.redirect
Code currently points to help at https://codethemicrobit.com/reference/serial/redirect but the working url is https://codethemicrobit.com/reference/serial/redirect-to so fixed the help annotation
2016-07-20 06:21:15 +01:00
gingemonster
298a37e576 updated setPull help annotation
At some point Im guessing the help file has been renamed and its current url is https://codethemicrobit.com/reference/pins/set-pull. This change to the annotation of setPull removes the word "digital" so that the link should work again
2016-07-20 06:14:18 +01:00
Ron Hale-Evans
327d52014c Misnamed, redundant file 2016-07-19 16:02:31 -07:00
Thomas Denney
6a5cfae5ff snake_case -> camelCase in docs 2016-07-19 11:42:42 +01:00
Thomas Denney
64ebb5c8c3 Correct assignment blocks in docs
Previously these blocks were not rendering.
2016-07-19 11:26:41 +01:00
Thomas Denney
bb97b57b01 Correct typo in string documentation
Note that currently you can't follow through with these instructions because string literals aren't supported, and there isn't support for converting the JS in this doc.
2016-07-19 09:25:48 +01:00
Ron Hale-Evans
534e3723d2 Finishing fixing parameters 2016-07-18 15:51:28 -07:00
Ron Hale-Evans
ad6ef04b1f Fixing parameters 2016-07-18 15:18:40 -07:00
Ron Hale-Evans
2c09b7794f Fixing parameters 2016-07-18 14:23:05 -07:00
Ron Hale-Evans
4941ce1694 Fixing parameters 2016-07-18 14:04:15 -07:00
Ron Hale-Evans
aa6a965f59 Fixing parameters 2016-07-18 11:14:51 -07:00
Ron Hale-Evans
1831c30050 Fixing parameters 2016-07-18 10:39:41 -07:00
Thomas Denney
df5989760c Make serial docs clearer, resolve issue #158 2016-07-18 17:17:16 +01:00
Thomas Denney
e942fb5733 Minor linting changes 2016-07-18 10:12:00 +01:00
Ron Hale-Evans
6a7f65894c Added missing parameters sections 2016-07-15 16:43:26 -07:00
Ron Hale-Evans
f56e9369dd Fixed some parameter names 2016-07-15 14:53:52 -07:00
Ron Hale-Evans
e23c5e019f Fix param names 2016-07-15 14:12:10 -07:00
Ron Hale-Evans
1aa08f63fe Another new Game topic and more fixes 2016-07-15 11:54:22 -07:00
Tom Ball
8ef94d2854 update docs 2016-07-15 11:47:37 -07:00
Ron Hale-Evans
797474063d New Game topic, some fixes 2016-07-15 10:24:16 -07:00
Thomas Denney
b76622542b Ensure title shows correctly for doc pages 2016-07-15 15:50:26 +01:00
Thomas Denney
6a1415b3e1 Default indentation for default project.
The editor lints the TS file every time it launches, might as well commit the change.
2016-07-15 15:39:16 +01:00
Thomas Denney
2d09aef287 Merge pull request #164 from thomasdenney/master
Fixed '@params' in Neopixel blocks' docs and 'about about'
2016-07-15 08:47:59 +01:00
Ron Hale-Evans
3ce1fa9b6e New Game topic 2016-07-14 16:58:08 -07:00
Ron Hale-Evans
155bbb25f7 New Game topic 2016-07-14 12:49:19 -07:00
Ron Hale-Evans
5fb3da5a77 New Game topic 2016-07-14 12:47:33 -07:00
Tom Ball
5b682cd8d9 some mods to the docs 2016-07-14 12:09:40 -07:00
Tom Ball
4755f0953c update ignore file 2016-07-14 12:04:06 -07:00
Ron Hale-Evans
bdcd299805 New Serial topic 2016-07-13 16:24:56 -07:00
Ron Hale-Evans
3e23fe4814 New Game topic, some fixes 2016-07-13 15:04:10 -07:00
Ron Hale-Evans
3782d26e64 New Game topic 2016-07-13 13:10:06 -07:00
Thomas Denney
84a29eec65 Merge remote-tracking branch 'upstream/master' 2016-07-13 09:17:32 +01:00
Michal Moskal
299efaf0f2 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-12 18:34:32 +02:00
Michal Moskal
33c60b467b Add ignore file for ptrcheck 2016-07-12 18:34:21 +02:00
Thomas Denney
81f74f07b2 Fix typo, resolve issue #165 2016-07-12 09:46:46 +01:00
Ron Hale-Evans
583b08df28 Wrote new Serial topic 2016-07-11 12:54:28 -07:00
Ron Hale-Evans
01f80b67bc Fix parameters 2016-07-11 11:13:13 -07:00
Ron Hale-Evans
a890d2a357 Wrote new Serial topic 2016-07-11 10:58:16 -07:00
Michal Moskal
0d1b91afc3 0.2.186 2016-07-11 17:10:00 +02:00
Michal Moskal
5c0d37d718 Bump pxt-core to 0.2.194 2016-07-11 17:10:00 +02:00
Michal Moskal
c81e56613e Mark microbit DAL config as just defaults 2016-07-11 14:29:49 +02:00
Ron Hale-Evans
4cc7215d35 Updated Linux (and Windows) instructions 2016-07-08 16:34:56 -07:00
Ron Hale-Evans
8751d2aaa1 Rewrote one Serial topic; shifted some material 2016-07-08 15:29:14 -07:00
Ron Hale-Evans
af91622dda Wrote new Serial topic 2016-07-08 12:45:31 -07:00
Ron Hale-Evans
45d4caf595 Rewrote/expanded serial topic 2016-07-08 11:46:51 -07:00
Thomas Denney
a8e1d2a86c Fixed '@params' in Neopixel blocks' docs 2016-07-08 14:30:45 +01:00
Tom Ball
5099b11823 remove hint 2016-07-06 20:37:43 -07:00
Ron Hale-Evans
37e0307698 Wrote two new Game topics 2016-07-06 15:19:43 -07:00
Ron Hale-Evans
1b15eefa5a Wrote new Game topic 2016-07-06 13:31:42 -07:00
Ron Hale-Evans
a4eccaf4f9 Wrote new advanced topic 2016-07-06 11:54:42 -07:00
Tom Ball
5981863e3f more intellisense 2016-07-05 17:35:37 -07:00
Ron Hale-Evans
9ac7a4c522 Wrote new advanced topic 2016-07-05 16:36:09 -07:00
Ron Hale-Evans
9f1c3ee13c Created advanced topic 2016-07-05 14:04:12 -07:00
Ron Hale-Evans
8b9c3d71d5 Wrote new I2C topic. 2016-07-05 12:40:04 -07:00
Ron Hale-Evans
6d726b7499 Wrote new I2C topic. 2016-07-05 12:30:28 -07:00
Tom Ball
b5da5afd1d 0.2.185 2016-07-03 15:57:20 -07:00
Tom Ball
420898e98c fix links in cards 2016-07-03 15:56:13 -07:00
Tom Ball
f6b392356c 0.2.184 2016-07-02 19:05:57 -04:00
Tom Ball
f4896f8d7c update doc 2016-07-02 18:55:00 -04:00
Tom Ball
4dbd691146 update docs 2016-07-02 18:27:58 -04:00
Tom Ball
2742dba0c4 update 2016-07-02 18:27:49 -04:00
Tom Ball
5bea47a094 more on js 2016-07-02 10:18:45 -04:00
Ron Hale-Evans
835a4b5cf0 Edited advanced topic. 2016-07-01 13:03:53 -07:00
Michal Moskal
055704b3ef 0.2.183 2016-07-01 15:16:43 +01:00
Michal Moskal
60107aa7ce Bump pxt-core to 0.2.193 2016-07-01 15:16:43 +01:00
Michal Moskal
787ab021a7 0.2.182 2016-07-01 15:03:49 +01:00
Michal Moskal
f56a70f502 Bump pxt-core to 0.2.192 2016-07-01 15:03:48 +01:00
Michal Moskal
4ec6749ee6 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-07-01 14:46:14 +01:00
Michal Moskal
8413b61397 Format code 2016-07-01 14:46:05 +01:00
Michal Moskal
ecbb970983 Add target-specific meta headers for social media 2016-07-01 09:26:54 +01:00
Ron Hale-Evans
36e6570296 Edited advanced topic 2016-06-30 12:43:42 -07:00
Ron Hale-Evans
92c63b615a Edited advanced topic. 2016-06-30 11:53:13 -07:00
Ron Hale-Evans
f71267c988 Edited and expanded advanced topic. 2016-06-30 11:02:28 -07:00
Michal Moskal
38fc0f8099 Fix typo preventing docs upload 2016-06-30 18:10:15 +01:00
Michal Moskal
8c7238eab3 0.2.181 2016-06-30 16:36:17 +01:00
Michal Moskal
2baca30184 Bump pxt-core to 0.2.191 2016-06-30 16:36:17 +01:00
Michal Moskal
ac56979142 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-30 16:36:13 +01:00
Michal Moskal
ff72858c42 Use new index.html includes/overrides 2016-06-30 16:36:07 +01:00
Ron Hale-Evans
deac587164 Rewrote in simple language. Added hint about average values. 2016-06-29 13:10:45 -07:00
Ron Hale-Evans
7a0a2fbd0a Rewrote in simple language. Added hint about averaging read values. 2016-06-29 12:41:35 -07:00
Michal Moskal
79c32097b5 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-29 17:49:02 +01:00
Michal Moskal
26c20d9fc3 Set twitter card logo 2016-06-29 17:48:40 +01:00
Tom Ball
fe826a508a start on doc for javascript 2016-06-28 13:35:40 -04:00
Tom Ball
62d2140d24 Merge pull request #152 from bluetooth-mdw/master
Reordered links in See Also sections
2016-06-28 13:34:48 -04:00
Martin Woolley
499d619faf Reordered links in 'See also' sections 2016-06-27 13:54:44 +01:00
Martin Woolley
c178e58260 Added About Bluetooth page and links to profile reference and overview 2016-06-27 13:46:29 +01:00
Tom Ball
d242501fe6 better aspect ratio 2016-06-25 20:21:33 -04:00
Tom Ball
37a438735d add Next buttons to projects 2016-06-25 17:23:00 -04:00
Michal Moskal
b862cfc4ec Format code 2016-06-25 19:40:21 +01:00
Michal Moskal
31002ae1a8 Fix typo in onPulse; hook up createBuffer 2016-06-25 19:17:43 +01:00
Michal Moskal
e8a3a2f676 Merge branch 'master' of github.com:Microsoft/pxt-microbit 2016-06-25 15:22:12 +01:00
Tom Ball
e6baf8c35e bring streaming into menu 2016-06-24 19:37:05 -04:00
Ron Hale-Evans
b72ff9fe4f New page for accelerometer range. 2016-06-24 15:42:21 -07:00
Peli de Halleux
58f79ea617 0.2.180 2016-06-24 13:54:47 -07:00
Peli de Halleux
ed6d343992 Bump pxt-core to 0.2.190 2016-06-24 13:54:45 -07:00
Peli de Halleux
92b46d5c7b using button instead of large links 2016-06-24 13:27:34 -07:00
Peli de Halleux
9cf7f08ae2 0.2.179 2016-06-24 11:31:22 -07:00
Peli de Halleux
3b05b8f2f6 Bump pxt-core to 0.2.189 2016-06-24 11:31:20 -07:00
Peli de Halleux
774d614d79 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-24 11:26:51 -07:00
Peli de Halleux
545f715eeb fixing uarl docs 2016-06-24 11:03:39 -07:00
Ron Hale-Evans
45b480c6dd Rewrote in simple language. Deleted an irrelevant example. 2016-06-24 10:25:47 -07:00
Peli de Halleux
7cc93507d9 0.2.178 2016-06-24 09:48:44 -07:00
Peli de Halleux
80d3f67e6c Bump pxt-core to 0.2.188 2016-06-24 09:48:42 -07:00
Peli de Halleux
dfbea2719b updated project landing page 2016-06-24 09:41:51 -07:00
Peli de Halleux
ce5da6bf80 updated projects link 2016-06-24 09:14:07 -07:00
Peli de Halleux
d8d2129685 removed strings page 2016-06-24 09:02:31 -07:00
Peli de Halleux
5dd37a1494 updated bluetooth docs page 2016-06-24 09:02:14 -07:00
Peli de Halleux
6cfe39dac3 patching up bluetooth uart 2016-06-24 08:12:52 -07:00
Peli de Halleux
660b22b398 Merge pull request #146 from bluetooth-mdw/master
UART blocks plus pairing documentation and updated hints section
2016-06-24 07:57:33 -07:00
Martin Woolley
b9a24a4542 Documentation for pairing. Hint section updated to reference this. 2016-06-24 11:09:56 +01:00
Martin Woolley
af5bf6e04e Documentation for the uartRead block 2016-06-24 09:35:31 +01:00
Martin Woolley
ecc71a3295 UART read block with string param unlimited length added 2016-06-24 08:46:05 +01:00
Martin Woolley
0834402b18 Pairing documentation worj in progress. UART write block added 2016-06-24 07:59:08 +01:00
Michal Moskal
8edd8ac73a Support macOS in automatic deployment 2016-06-23 23:55:36 -07:00
Peli de Halleux
1207a91a7f 0.2.177 2016-06-23 23:53:58 -07:00
Peli de Halleux
727490668c splitting the getting started page 2016-06-23 23:52:24 -07:00
Martin Woolley
f068b3d204 Merge remote-tracking branch 'upstream/master' 2016-06-24 07:37:21 +01:00
Martin Woolley
205a486e58 Bump pxt-core to 0.2.179 2016-06-24 07:28:23 +01:00
Peli de Halleux
f3bfd41a75 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-23 23:23:16 -07:00
Peli de Halleux
8d5c5daaaf added streaming page 2016-06-23 23:22:46 -07:00
Martin Woolley
83cfe8f534 Merge remote-tracking branch 'upstream/master' 2016-06-24 05:50:03 +01:00
Peli de Halleux
9378e5e90c updated manifest 2016-06-23 16:29:26 -07:00
Ron Hale-Evans
8617f0f3b4 Expanded stub. Rewrote in simple language. 2016-06-23 15:25:56 -07:00
Ron Hale-Evans
0ecf3dc2b4 Rewrote in simple language. Updated example (needs work). 2016-06-23 14:29:32 -07:00
Martin Woolley
76005841fa Increased default power to 6, added UART write block 2016-06-23 11:38:23 +01:00
Martin Woolley
7bf00ff139 Merge remote-tracking branch 'upstream/master' 2016-06-23 08:06:34 +01:00
Martin Woolley
82e34d852c checking in 2016-06-23 08:05:49 +01:00
Peli de Halleux
7cd8ee1e23 0.2.176 2016-06-22 20:25:02 -07:00
Peli de Halleux
a91a87b628 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-22 20:24:53 -07:00
Peli de Halleux
9d71f46e78 removed old test 2016-06-22 20:24:41 -07:00
Ron Hale-Evans
ccf405e64c Rewrote in simple language 2016-06-22 16:24:14 -07:00
Ron Hale-Evans
c0a75d1845 Rewrote in simpler language. Added another example. 2016-06-22 15:35:20 -07:00
Ron Hale-Evans
e65a521bd4 Rewrote in simple language. Added second example. 2016-06-22 15:19:10 -07:00
Peli de Halleux
1f203269ff updated chrome manifest 2016-06-22 14:48:51 -07:00
Peli de Halleux
18feea45bb 0.2.175 2016-06-22 12:17:43 -07:00
Peli de Halleux
597f0c895b Bump pxt-core to 0.2.187 2016-06-22 12:17:40 -07:00
Peli de Halleux
5f21789d90 migration to codethemicrobit.com 2016-06-22 09:43:41 -07:00
Peli de Halleux
64826db4aa importing chrome extension 2016-06-22 09:43:03 -07:00
Peli de Halleux
b150ee873f updated bluetooth docs 2016-06-22 09:25:01 -07:00
Peli de Halleux
34effcefc6 jsdoc on bluetooth 2016-06-21 14:30:05 -07:00
Peli de Halleux
68be2384d9 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-21 13:19:40 -07:00
Peli de Halleux
2629192bdb code of conduct 2016-06-21 13:17:42 -07:00
Peli de Halleux
67b5afd73a integrating docs about "devices" namespace 2016-06-21 11:17:34 -07:00
Peli de Halleux
5d8193301c adding reference pages for bluetooth 2016-06-21 09:46:13 -07:00
Peli de Halleux
adf21fee6f 0.2.174 2016-06-21 09:35:55 -07:00
Peli de Halleux
20f3e1d24e Bump pxt-core to 0.2.185 2016-06-21 09:35:51 -07:00
Peli de Halleux
bf8f38fe38 docs formatting fixes 2016-06-21 09:17:46 -07:00
Peli de Halleux
3e3b8ebec5 Merge pull request #142 from bluetooth-mdw/master
Documentation for Bluetooth LED service block
2016-06-21 09:12:11 -07:00
Martin Woolley
8faeeffecf Added documentation for on-bluetooth-connected and on-bluetooth-disconnected event handlers 2016-06-21 12:12:36 +01:00
Martin Woolley
343968cf09 Added documentation for Bluetooth temperature service 2016-06-21 10:10:02 +01:00
Martin Woolley
ca92f787e8 Added documentation for Bluetooth button service 2016-06-21 09:55:52 +01:00
Martin Woolley
49a67e73be Added documentation for Bluetooth accelerometer service 2016-06-21 09:40:51 +01:00
Martin Woolley
11af897c3d Added documentation for Bluetooth magnetometer service 2016-06-21 08:45:00 +01:00
Martin Woolley
08cd04b2c8 Merge remote-tracking branch 'upstream/master' 2016-06-21 08:08:12 +01:00
Martin Woolley
c1656cf441 Added documentation for Bluetooth LED service 2016-06-21 08:01:33 +01:00
Peli de Halleux
8f3c585588 updated devices docs 2016-06-20 22:06:19 -07:00
Peli de Halleux
dd181e4178 0.2.173 2016-06-20 13:39:34 -07:00
Peli de Halleux
ff3689e92d Bump pxt-core to 0.2.184 2016-06-20 13:39:31 -07:00
Peli de Halleux
fffcf0f809 added config section 2016-06-20 13:39:18 -07:00
Ron Hale-Evans
240162370e Rewrote in simple language. New example. 2016-06-20 13:18:41 -07:00
Peli de Halleux
98238caffb updated translations 2016-06-20 11:28:52 -07:00
Peli de Halleux
f55977a51d Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-20 11:07:20 -07:00
Peli de Halleux
91938f156a Merge pull request #136 from bluetooth-mdw/master
Documentation for Bluetooth IO Pin service block++
2016-06-20 11:07:04 -07:00
Martin Woolley
eb01245cce Added sig section 2016-06-20 18:11:02 +01:00
Peli de Halleux
17cbea9989 refreshing localizations 2016-06-20 08:37:17 -07:00
Martin Woolley
22c03dfd7a Documentation for Bluetooth IO Pin service block.
Addition of event handler blocks for Bluetooth connection state changes.
2016-06-20 08:39:51 +01:00
Tom Ball
cf3e8684d5 all pix are 300px wide 2016-06-19 17:50:56 -07:00
Peli de Halleux
cd0b2a646f fixing various doc links 2016-06-19 05:28:46 -07:00
Peli de Halleux
d7528c09e3 updated transmit power default value 2016-06-19 05:15:13 -07:00
Peli de Halleux
e055484492 updated loc strings 2016-06-19 05:14:46 -07:00
Peli de Halleux
947d69da48 added strings for block in microbit project 2016-06-17 22:11:32 -07:00
Peli de Halleux
07822c47a3 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-17 21:57:51 -07:00
Ron Hale-Evans
25d6746b7e Rewrote in simple language. Fixed broken links. 2016-06-17 16:20:17 -07:00
Ron Hale-Evans
7cb85ff459 New page for 'create big image' 2016-06-17 15:00:24 -07:00
Peli de Halleux
73d18c8d39 Merge branch 'master' of https://github.com/Microsoft/pxt-microbit 2016-06-17 13:55:55 -07:00
Ron Hale-Evans
74b6d99ab1 Rewrote in simple language. Added blocks example. 2016-06-17 13:42:01 -07:00
Peli de Halleux
d1db619c8d added entry to troubleshoot 2016-06-17 11:44:05 -07:00
636 changed files with 13347 additions and 7454 deletions

7
.gitignore vendored
View File

@@ -1,16 +1,21 @@
node_modules
yotta_modules
yotta_targets
pxt_modules
built
typings
tmp
temp
projects/**
clients/win10/app/AppPackages
clients/win10/app/BundlePackages
clients/win10/app/BundleArtifacts
clients/win10/app/bin
clients/win10/app/bld
clients/win10/*.opendb
clients/**/bin/**
clients/**/obj/**
clients/electron/projects
*.user
*.sw?
@@ -18,4 +23,4 @@ clients/**/obj/**
*.tgz
*.db
*.suo
*.log
*.log

View File

@@ -4,8 +4,12 @@ node_js:
script:
- "node node_modules/pxt-core/built/pxt.js travis"
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js run)"
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js run)"
- "(cd libs/lang-test0; node ../../node_modules/pxt-core/built/pxt.js test)"
- "(cd libs/lang-test1; node ../../node_modules/pxt-core/built/pxt.js test)"
- "node node_modules/pxt-core/built/pxt.js testdir tests"
- "node node_modules/pxt-core/built/pxt.js uploaddoc"
- "(cd libs/hello; node ../../node_modules/pxt-core/built/pxt.js testconv ../../testconv.json)"
- "(cd libs/hello; node ../../node_modules/pxt-core/built/pxt.js testconv https://az851932.vo.msecnd.net/files/td-converter-tests-v0.json)"
sudo: false
notifications:
email:
@@ -14,4 +18,5 @@ cache:
directories:
- node_modules
- built/cache
- libs/hello/built/cache

15
.vscode/settings.json vendored
View File

@@ -1,5 +1,20 @@
// Place your settings in this file to overwrite default and user settings.
{
"file.autoSave": "afterDelay",
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/built/**": true,
"**/node_modules/**": true,
"**/yotta_modules/**": true,
"**/yotta_targets": true,
"**/pxt_modules/**": true
},
"search.exclude": {
"**/node_modules": true,
"**/yotta_modules/**": true,
"**/yotta_targets": true,
"**/pxt_modules/**": true
},
"tslint.enable": true,
"tslint.rulesDirectory": "node_modules/tslint-microsoft-contrib"
}

View File

@@ -3,18 +3,25 @@
This target allow to program a [BBC micro:bit](https://www.microbit.co.uk/) using
PXT ([Microsoft Programming Experience Toolkit](https://github.com/Microsoft/pxt)).
* [Try it live](https://m.pxt.io)
* [Try it live](https://codethemicrobit.com)
[![Build Status](https://travis-ci.org/Microsoft/pxt-microbit.svg?branch=master)](https://travis-ci.org/Microsoft/pxt-microbit)
## Local server
The local server allows to run the editor and the documentation from your computer.
### Setup
The following commands are a 1-time setup after synching the repo on your machine.
* clone this repo to your computer
* install the PXT command line
* if not yet installed, install [Node.js 4.4.5 or higher](https://nodejs.org/en/download/)
* [clone this repo](https://help.github.com/articles/cloning-a-repository/) to your computer and go in the project folder
```
git clone https://github.com/microsoft/pxt-microbit
cd pxt-microbit
```
* install the PXT command line (add ``sudo`` for Mac/Linux shells).
```
npm install -g pxt
```
@@ -37,19 +44,37 @@ If you need modify the `.cpp` files, turn on yotta compilation with the ``-yt``
pxt serve -yt
```
To make sure you're running the latest tools, run (add ``sudo`` for Mac/Linux shells)
## Updates
To update your PXT version and make sure you're running the latest tools, run (add ``sudo`` for Mac/Linux shells)
```
pxt update
```
More instructions at https://github.com/Microsoft/pxt#running-a-target-from-localhost
## Universal Windows App
The Windows 10 app is a [Universal Windows Hosted Web App](https://microsoftedge.github.io/WebAppsDocs/en-US/win10/CreateHWA.htm)
that wraps ``m.pxt.io`` and provides additional features.
### Building
* Install Visual Studio 2015 Update 2 or higher. Make sure the Windows 10 templates are installed.
* open the ``win10/app.sln`` solution and launch the ``m.pxt.io`` project.
* open the ``win10/app.sln`` solution and launch the ``codethemicrobit`` project.
## Testing
The build automatically runs the following:
* make sure the built-in packages compile
* `pxt run` in `libs/lang-test*` - this will run the test in command line runner;
there is a number of asserts in both of these
* `pxt testdir` in `tests` - this makes sure all the files compile and generates .hex files
* run the TD->TS converter on a number of test scripts from `microbit.co.uk` and make sure the results compile
To test something on the device:
* do a `pxt deploy` in `libs/lang-test*` - they should show `1` or `2` on the screen (and not unhappy face)
* run `pxt testdir` in `tests` and deploy some of the hex files from `tests/built`
The `lang-test0` source comes from the `pxt-core` package. It's also tested with `pxt run` there.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

26
clients/chrome/README.md Normal file
View File

@@ -0,0 +1,26 @@
# microbit-chrome
Prototype chrome addon that exposes the micro:bit's serial output to webpages.
* watch the [demo video](https://vimeo.com/146207766)
# Installation
See [developer.chrome.com](https://developer.chrome.com/extensions/getstarted#unpacked)
for instructions on how to install the local version into your chrome browser.
# Requirements
* Chrome 48 or later.
# Sample page
The `demo.html` webpage goes along with the
https://github.com/Microsoft/microbit-touchdevelop/blob/master/examples/tcs34725.cpp
program. Run `http-server` from this directory, then visit
http://localhost:8080/demo.html
(keep in mind that pages served from `file://` cannot open ports).
# Building
Open a command prompt and run the following commands.
````
npm install
typings update
````

View File

@@ -0,0 +1,68 @@
///<reference path='typings/browser.d.ts'/>
var connections = [];
// A list of "ports", i.e. connected clients (such as web pages). Multiple web
// pages can connect to our service: they all receive the same data.
var ports = [];
function byPath(path) {
return connections.filter(function (x) { return x.path == path; });
}
function byId(id) {
return connections.filter(function (x) { return x.id == id; });
}
function onReceive(data, id) {
if (ports.length == 0)
return;
var view = new DataView(data);
var decoder = new TextDecoder("utf-8");
var decodedString = decoder.decode(view);
ports.forEach(function (port) { return port.postMessage({
type: "serial",
data: decodedString,
id: id
}); });
}
function findNewDevices() {
chrome.serial.getDevices(function (serialPorts) {
serialPorts.forEach(function (serialPort) {
if (byPath(serialPort.path).length == 0 &&
serialPort.displayName == "mbed Serial Port") {
chrome.serial.connect(serialPort.path, { bitrate: 115200 }, function (info) {
// In case the [connect] operation takes more than five seconds...
if (info && byPath(serialPort.path).length == 0)
connections.push({
id: info.connectionId,
path: serialPort.path
});
});
}
});
});
}
function main() {
// Register new clients in the [ports] global variable.
chrome.runtime.onConnectExternal.addListener(function (port) {
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
ports.push(port);
port.onDisconnect.addListener(function () {
ports = ports.filter(function (x) { return x != port; });
});
}
});
// When receiving data for one of the connections that we're tracking, forward
// it to all connected clients.
chrome.serial.onReceive.addListener(function (info) {
if (byId(info.connectionId).length > 0)
onReceive(info.data, info.connectionId);
});
// When it looks like we've been disconnected, drop the corresponding
// connection object from the [connections] global variable.
chrome.serial.onReceiveError.addListener(function (info) {
if (info.error == "system_error" || info.error == "disconnected" || info.error == "device_lost")
connections = connections.filter(function (x) { return x.id != info.connectionId; });
});
// Probe serial connections at regular intervals. In case we find an mbed port
// we haven't yet connected to, connect to it.
setInterval(findNewDevices, 5000);
findNewDevices();
}
document.addEventListener("DOMContentLoaded", main);

View File

@@ -0,0 +1,92 @@
// A list of: {
// id: number;
// path: string;
// } where [id] is the [connectionId] (internal to Chrome) and [path] is the
// OS' name for the device (e.g. "COM4").
interface Connection {
id: string;
path: string;
}
let connections: Connection[] = [];
// A list of "ports", i.e. connected clients (such as web pages). Multiple web
// pages can connect to our service: they all receive the same data.
let ports = [];
interface Message {
type: string;
data: string;
id: string;
}
function byPath(path: string): Connection[] {
return connections.filter((x) => x.path == path);
}
function byId(id: string): Connection[] {
return connections.filter((x) => x.id == id);
}
function onReceive(data, id: string) {
if (ports.length == 0) return;
let view = new DataView(data);
let decoder = new TextDecoder("utf-8");
let decodedString = decoder.decode(view);
ports.forEach(port => port.postMessage(<Message>{
type: "serial",
data: decodedString,
id: id,
}));
}
function findNewDevices() {
chrome.serial.getDevices(function (serialPorts) {
serialPorts.forEach(function (serialPort) {
if (byPath(serialPort.path).length == 0 &&
serialPort.displayName == "mbed Serial Port") {
chrome.serial.connect(serialPort.path, { bitrate: 115200 }, function (info) {
// In case the [connect] operation takes more than five seconds...
if (info && byPath(serialPort.path).length == 0)
connections.push({
id: info.connectionId,
path: serialPort.path
});
});
}
});
});
}
function main() {
// Register new clients in the [ports] global variable.
chrome.runtime.onConnectExternal.addListener(function (port) {
if (/^(micro:bit|touchdevelop|yelm|pxt|codemicrobit|codethemicrobit)$/.test(port.name)) {
ports.push(port);
port.onDisconnect.addListener(function () {
ports = ports.filter(function (x) { return x != port });
});
}
});
// When receiving data for one of the connections that we're tracking, forward
// it to all connected clients.
chrome.serial.onReceive.addListener(function (info) {
if (byId(info.connectionId).length > 0)
onReceive(info.data, info.connectionId);
});
// When it looks like we've been disconnected, drop the corresponding
// connection object from the [connections] global variable.
chrome.serial.onReceiveError.addListener(function (info) {
if (info.error == "system_error" || info.error == "disconnected" || info.error == "device_lost")
connections = connections.filter((x) => x.id != info.connectionId);
});
// Probe serial connections at regular intervals. In case we find an mbed port
// we haven't yet connected to, connect to it.
setInterval(findNewDevices, 5000);
findNewDevices();
}
document.addEventListener("DOMContentLoaded", main);

BIN
clients/chrome/logo128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
clients/chrome/logo48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,30 @@
{
"app": {
"background": {
"scripts": [ "background.js" ]
}
},
"manifest_version": 2,
"name": "code the micro:bit",
"version": "0.6.0",
"author": "Microsoft Corporation",
"short_name": "code the micro:bit",
"description": "Extension for https://codethemicrobit.com.",
"homepage_url": "https://codethemicrobit.com",
"offline_enabled": "true",
"icons": {
"48": "logo48.png",
"128": "logo128.png"
},
"permissions": [
"serial",
"usb"
],
"externally_connectable": {
"matches": [ "*://localhost/*", "https://codethemicrobit.com/*", "https://*.codethemicrobit.com/*" ]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View File

@@ -0,0 +1,7 @@
{
"compiler-options": {
"target": "ES5",
"module": "amd",
"sourceMap": false
}
}

2
clients/electron/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules
projects

View File

@@ -0,0 +1,5 @@
# PXT micro:bit Electron app
A very basic wrapper around the web app. To install, copy the contents of this
directory to somewhere outside the main `pxt-microbit` repository. Then run `npm
install && npm start`.

View File

@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>code the micro:bit</title>
</head>
<body>
<webview id="webview" style="position:absolute; left:0; top:0; right:0; bottom:0"/>
<script>
const webview = document.getElementById("webview")
const url = `http://localhost:3232/${window.location.hash}`
webview.src = url
</script>
</body>
</html>

39
clients/electron/main.js Normal file
View File

@@ -0,0 +1,39 @@
const {app, BrowserWindow, Menu} = require('electron')
const pxt = require('pxt-core')
const path = require('path')
let win
const cliPath = path.join(process.cwd(), "node_modules/pxt-microbit")
function startServerAndCreateWindow() {
pxt.mainCli(cliPath, ["serve", "-no-browser"])
createWindow()
}
function createWindow () {
win = new BrowserWindow({
width: 800,
height: 600,
title: "code the micro:bit"
})
Menu.setApplicationMenu(null)
win.loadURL(`file://${__dirname}/index.html#local_token=${pxt.globalConfig.localToken}`)
win.on('closed', () => {
win = null
})
}
app.on('ready', startServerAndCreateWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})

View File

@@ -0,0 +1,14 @@
{
"name" : "code-the-microbit",
"version" : "1.0.0",
"description": "Blocks / Javascript editor",
"author": "Microsoft",
"main" : "main.js",
"scripts": {
"start": "node_modules/.bin/electron ."
},
"devDependencies": {
"electron": "*",
"pxt-microbit": "*"
}
}

137
clients/macuploader/.gitignore vendored Normal file
View File

@@ -0,0 +1,137 @@
# Created by https://www.gitignore.io/api/osx,xcode,objective-c,vim
### OSX ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Xcode ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint
### Objective-C ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xcuserstate
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
### Objective-C Patch ###
*.xcscmblueprint
### Vim ###
# swap
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
# session
Session.vim
# temporary
.netrwhist
*~
# auto-generated tag files
tags

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

View File

@@ -0,0 +1,307 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
E93040071D895D1F00D931CA /* DirectoryWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E93040061D895D1F00D931CA /* DirectoryWatcher.m */; };
E930400A1D89620900D931CA /* Uploader.m in Sources */ = {isa = PBXBuildFile; fileRef = E93040091D89620900D931CA /* Uploader.m */; };
E9F4FEE21D8709980071D783 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F4FEE11D8709980071D783 /* AppDelegate.m */; };
E9F4FEE51D8709980071D783 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F4FEE41D8709980071D783 /* main.m */; };
E9F4FEE71D8709980071D783 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E9F4FEE61D8709980071D783 /* Assets.xcassets */; };
E9F4FEEA1D8709980071D783 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F4FEE81D8709980071D783 /* MainMenu.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
E93040051D895D1F00D931CA /* DirectoryWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryWatcher.h; sourceTree = "<group>"; };
E93040061D895D1F00D931CA /* DirectoryWatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryWatcher.m; sourceTree = "<group>"; };
E93040081D89620900D931CA /* Uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Uploader.h; sourceTree = "<group>"; };
E93040091D89620900D931CA /* Uploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Uploader.m; sourceTree = "<group>"; };
E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Microbit Uploader.app"; sourceTree = BUILT_PRODUCTS_DIR; };
E9F4FEE01D8709980071D783 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
E9F4FEE11D8709980071D783 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
E9F4FEE41D8709980071D783 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
E9F4FEE61D8709980071D783 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
E9F4FEE91D8709980071D783 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
E9F4FEEB1D8709980071D783 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
E9F4FEDA1D8709980071D783 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
E9F4FED41D8709980071D783 = {
isa = PBXGroup;
children = (
E9F4FEDF1D8709980071D783 /* Microbit Uploader */,
E9F4FEDE1D8709980071D783 /* Products */,
);
sourceTree = "<group>";
};
E9F4FEDE1D8709980071D783 /* Products */ = {
isa = PBXGroup;
children = (
E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */,
);
name = Products;
sourceTree = "<group>";
};
E9F4FEDF1D8709980071D783 /* Microbit Uploader */ = {
isa = PBXGroup;
children = (
E9F4FEE01D8709980071D783 /* AppDelegate.h */,
E9F4FEE11D8709980071D783 /* AppDelegate.m */,
E9F4FEE61D8709980071D783 /* Assets.xcassets */,
E9F4FEE81D8709980071D783 /* MainMenu.xib */,
E9F4FEEB1D8709980071D783 /* Info.plist */,
E9F4FEE31D8709980071D783 /* Supporting Files */,
E93040051D895D1F00D931CA /* DirectoryWatcher.h */,
E93040061D895D1F00D931CA /* DirectoryWatcher.m */,
E93040081D89620900D931CA /* Uploader.h */,
E93040091D89620900D931CA /* Uploader.m */,
);
path = "Microbit Uploader";
sourceTree = "<group>";
};
E9F4FEE31D8709980071D783 /* Supporting Files */ = {
isa = PBXGroup;
children = (
E9F4FEE41D8709980071D783 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
E9F4FEDC1D8709980071D783 /* Microbit Uploader */ = {
isa = PBXNativeTarget;
buildConfigurationList = E9F4FEEE1D8709980071D783 /* Build configuration list for PBXNativeTarget "Microbit Uploader" */;
buildPhases = (
E9F4FED91D8709980071D783 /* Sources */,
E9F4FEDA1D8709980071D783 /* Frameworks */,
E9F4FEDB1D8709980071D783 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Microbit Uploader";
productName = "Microbit Uploader";
productReference = E9F4FEDD1D8709980071D783 /* Microbit Uploader.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
E9F4FED51D8709980071D783 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = thomasdenney;
TargetAttributes = {
E9F4FEDC1D8709980071D783 = {
CreatedOnToolsVersion = 7.3.1;
};
};
};
buildConfigurationList = E9F4FED81D8709980071D783 /* Build configuration list for PBXProject "Microbit Uploader" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = E9F4FED41D8709980071D783;
productRefGroup = E9F4FEDE1D8709980071D783 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
E9F4FEDC1D8709980071D783 /* Microbit Uploader */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
E9F4FEDB1D8709980071D783 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E9F4FEE71D8709980071D783 /* Assets.xcassets in Resources */,
E9F4FEEA1D8709980071D783 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
E9F4FED91D8709980071D783 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E9F4FEE51D8709980071D783 /* main.m in Sources */,
E930400A1D89620900D931CA /* Uploader.m in Sources */,
E9F4FEE21D8709980071D783 /* AppDelegate.m in Sources */,
E93040071D895D1F00D931CA /* DirectoryWatcher.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
E9F4FEE81D8709980071D783 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
E9F4FEE91D8709980071D783 /* Base */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
E9F4FEEC1D8709980071D783 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
E9F4FEED1D8709980071D783 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
E9F4FEEF1D8709980071D783 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Microbit Uploader/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.thomasdenney.Microbit-Uploader";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
E9F4FEF01D8709980071D783 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Microbit Uploader/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "org.thomasdenney.Microbit-Uploader";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
E9F4FED81D8709980071D783 /* Build configuration list for PBXProject "Microbit Uploader" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E9F4FEEC1D8709980071D783 /* Debug */,
E9F4FEED1D8709980071D783 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E9F4FEEE1D8709980071D783 /* Build configuration list for PBXNativeTarget "Microbit Uploader" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E9F4FEEF1D8709980071D783 /* Debug */,
E9F4FEF01D8709980071D783 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = E9F4FED51D8709980071D783 /* Project object */;
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Microbit Uploader.xcodeproj">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,6 @@
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end

View File

@@ -0,0 +1,130 @@
#import "AppDelegate.h"
#import "DirectoryWatcher.h"
#import "Uploader.h"
@interface AppDelegate ()<DirectoryWatcherDelegate, UploaderDelegate, NSUserNotificationCenterDelegate>
@property DirectoryWatcher * watcher;
@property Uploader * uploader;
@property NSStatusItem * menubarItem;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
self.watcher = [[DirectoryWatcher alloc] initWithPath:[self downloadsDirectory]];
self.watcher.delegate = self;
[self.watcher startWatching];
self.uploader = [[Uploader alloc] init];
self.uploader.delegate = self;
[NSUserNotificationCenter defaultUserNotificationCenter].delegate = self;
[self createMenuBarIcon];
[self configureVolumeMountNotifications];
[self showActiveMicroBits];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
[self.watcher stopWatching];
}
- (void)dealloc {
[[NSWorkspace sharedWorkspace].notificationCenter removeObserver:self];
}
#pragma mark - Directory
- (void)watcher:(DirectoryWatcher *)watcher observedNewFileAtPath:(NSString *)path {
NSString * fullPath = [watcher.path stringByAppendingPathComponent:path];
if ([self.uploader shouldUploadFileAtPath:fullPath]) {
[self.uploader uploadFile:fullPath];
}
}
- (NSString*)downloadsDirectory {
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, YES);
return paths.firstObject;
}
#pragma mark - Uploader delegate
- (void)uploader:(Uploader *)uploader transferredFile:(NSString *)file toMicroBit:(NSString *)microbit {
[self showNotification:@"micro:bit upload" withDescription:[NSString stringWithFormat:@"%@ uploaded to %@", file.lastPathComponent, microbit]];
}
- (void)uploader:(Uploader *)uploader failedToTransferFile:(NSString *)file toMicroBit:(NSString *)microbit {
[self showNotification:@"micro:bit upload failed" withDescription:[NSString stringWithFormat:@"Couldn't transfer %@ to %@", file.lastPathComponent, microbit]];
}
- (void)showNotification:(NSString*)title withDescription:(NSString*)description {
NSUserNotification * notification = [NSUserNotification new];
notification.title = title;
notification.informativeText = description;
notification.soundName = NSUserNotificationDefaultSoundName;
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
}
#pragma mark - NSUserNotificationCenterDelegate
- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification {
return YES;
}
#pragma mark - Volume mount/unmount notification
- (void)configureVolumeMountNotifications {
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidRenameVolumeNotification object:nil];
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidMountNotification object:nil];
[[NSWorkspace sharedWorkspace].notificationCenter addObserver:self selector:@selector(volumeMountNotification:) name:NSWorkspaceDidUnmountNotification object:nil];
}
- (void)volumeMountNotification:(NSNotification*)sender {
//Delay upadting the menu to give the chance for the disk to fully mount or unmount
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self showActiveMicroBits];
});
}
#pragma mark - Menu bar app
- (void)createMenuBarIcon {
self.menubarItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
self.menubarItem.button.image = [NSImage imageNamed:@"menubar"];
}
- (void)showActiveMicroBits {
NSMenu * menu = [NSMenu new];
NSString * countString;
NSUInteger count = self.uploader.microBitPaths.count;
if (count == 0) {
countString = @"No connect micro:bits";
}
else if (count == 1) {
countString = @"1 connected micro:bit";
}
else {
countString = [NSString stringWithFormat:@"%lu connected micro:bits", count];
}
NSMenuItem * microBitCount = [[NSMenuItem alloc] initWithTitle:countString action:nil keyEquivalent:@""];
microBitCount.enabled = NO;
[menu addItem:microBitCount];
NSMenuItem * websiteItem = [[NSMenuItem alloc] initWithTitle:@"Editor" action:@selector(launchEditor:) keyEquivalent:@"e"];
[menu addItem:websiteItem];
NSMenuItem * quitItem = [[NSMenuItem alloc] initWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
[menu addItem:quitItem];
self.menubarItem.menu = menu;
}
- (void)launchEditor:(id)sender {
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://codethemicrobit.com/"]];
}
@end

View File

@@ -0,0 +1,68 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "icon_16x16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "icon_16x16@2x.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "icon_32x32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "icon_32x32@2x.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "icon_128x128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "icon_128x128@2x.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "icon_256x256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "icon_256x256@2x.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "icon_512x512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "icon_512x512@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,15 @@
{
"images" : [
{
"idiom" : "mac",
"filename" : "menubar.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template"
}
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
</objects>
</document>

View File

@@ -0,0 +1,24 @@
#import <Foundation/Foundation.h>
@class DirectoryWatcher;
@protocol DirectoryWatcherDelegate <NSObject>
- (void)watcher:(DirectoryWatcher*)watcher observedNewFileAtPath:(NSString*)path;
@end
@interface DirectoryWatcher : NSObject
- (instancetype)initWithPath:(NSString*)path;
@property (readonly) NSString * path;
@property id<DirectoryWatcherDelegate> delegate;
- (void)startWatching;
//Automatically called when deallocated
- (void)stopWatching;
@end

View File

@@ -0,0 +1,75 @@
#import "DirectoryWatcher.h"
#import <CoreServices/CoreServices.h>
void callback(ConstFSEventStreamRef streamRef, void * info, size_t numEvents, void * eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]);
@interface DirectoryWatcher ()
@property NSString * path;
@property NSMutableSet<NSString*>* knownFiles;
@property FSEventStreamRef stream;
- (void)rescanPathWithEvents:(BOOL)sendEvents;
@end
@implementation DirectoryWatcher
- (instancetype)initWithPath:(NSString *)path {
if (!path) {
return nil;
}
self = [super init];
if (self) {
self.path = path;
}
return self;
}
- (void)dealloc {
[self stopWatching];
}
- (void)startWatching {
self.knownFiles = [NSMutableSet new];
[self rescanPathWithEvents:NO];
CFStringRef path = (__bridge CFStringRef)(self.path);
CFArrayRef pathsToWatch = CFArrayCreate(NULL, (const void**)&path, 1, NULL);
CFAbsoluteTime latency = 1;
FSEventStreamContext context = { 0, (__bridge void * _Nullable)(self), NULL, NULL, NULL };
self.stream = FSEventStreamCreate(NULL, &callback, &context, pathsToWatch, kFSEventStreamEventIdSinceNow, latency, kFSEventStreamCreateFlagNone);
FSEventStreamScheduleWithRunLoop(self.stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
FSEventStreamStart(self.stream);
}
- (void)stopWatching {
if (self.stream) {
FSEventStreamStop(self.stream);
FSEventStreamInvalidate(self.stream);
FSEventStreamRelease(self.stream);
self.stream = nil;
}
}
- (void)rescanPathWithEvents:(BOOL)sendEvents {
NSArray<NSString*>* downloadFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:self.path error:nil];
NSMutableSet<NSString*>* fullSet = [NSMutableSet new];
for (NSString * file in downloadFiles) {
[fullSet addObject:file];
if (![self.knownFiles containsObject:file]) {
if (sendEvents) {
[self.delegate watcher:self observedNewFileAtPath:file];
}
}
}
self.knownFiles = fullSet;
}
@end
void callback(ConstFSEventStreamRef streamRef, void * info, size_t numEvents, void * eventPaths, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) {
DirectoryWatcher * watcher = (__bridge DirectoryWatcher*)info;
[watcher rescanPathWithEvents:YES];
}

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.01</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>LSUIElement</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2016 Thomas Denney. All rights reserved.</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
#import <Foundation/Foundation.h>
@class Uploader;
@protocol UploaderDelegate <NSObject>
- (void)uploader:(Uploader*)uploader transferredFile:(NSString*)file toMicroBit:(NSString*)microbit;
- (void)uploader:(Uploader*)uploader failedToTransferFile:(NSString*)file toMicroBit:(NSString*)microbit;
@end
@interface Uploader : NSObject
@property id<UploaderDelegate> delegate;
- (BOOL)shouldUploadFileAtPath:(NSString*)path;
- (NSArray<NSString*>*)microBitPaths;
- (void)uploadFile:(NSString*)file;
- (void)uploadFile:(NSString*)file toMicroBit:(NSString*)path;
@end

View File

@@ -0,0 +1,74 @@
#import "Uploader.h"
@interface Uploader ()
@property NSOperationQueue * backgroundCopyQueue;
@end
@implementation Uploader
- (instancetype)init {
self = [super init];
if (self) {
self.backgroundCopyQueue = [NSOperationQueue new];
}
return self;
}
- (BOOL)shouldUploadFileAtPath:(NSString *)path {
//Whilst Safari is downloading the file it appends .download to the name
NSRegularExpression * ignoreDownload = [NSRegularExpression regularExpressionWithPattern:@".download$" options:NSRegularExpressionCaseInsensitive error:nil];
if ([ignoreDownload numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)] > 0) {
return NO;
}
//Chrome and Firefox create .hex files
NSRegularExpression * hexFiles = [NSRegularExpression regularExpressionWithPattern:@".hex$" options:NSRegularExpressionCaseInsensitive error:nil];
if ([hexFiles numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)] > 0) {
return YES;
}
//Safari tends to just name files 'Unknown X'
NSRegularExpression * unknownFiles = [NSRegularExpression regularExpressionWithPattern:@"^Unknown(( |-)[0-9]+)?" options:NSRegularExpressionCaseInsensitive error:nil];
if ([unknownFiles numberOfMatchesInString:path.lastPathComponent options:0 range:NSMakeRange(0, path.lastPathComponent.length)]) {
return YES;
}
return NO;
}
- (NSArray<NSString*>*)microBitPaths {
NSArray<NSURL*>* allVolumes = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:nil options:NSVolumeEnumerationSkipHiddenVolumes];
NSMutableArray<NSString*>* microbitPaths = [NSMutableArray new];
NSRegularExpression * microbitRegex = [NSRegularExpression regularExpressionWithPattern:@"^MICROBIT" options:NSRegularExpressionCaseInsensitive error:nil];
for (NSURL * volume in allVolumes) {
NSString * lastPathComponent = volume.lastPathComponent;
if ([microbitRegex numberOfMatchesInString:lastPathComponent options:0 range:NSMakeRange(0, lastPathComponent.length)] > 0) {
[microbitPaths addObject:volume.path];
}
}
return microbitPaths;
}
- (void)uploadFile:(NSString *)file {
for (NSString * microbit in [self microBitPaths]) {
[self uploadFile:file toMicroBit:microbit];
}
}
- (void)uploadFile:(NSString *)file toMicroBit:(NSString *)path {
[self.backgroundCopyQueue addOperationWithBlock:^{
NSError * copyError;
NSString * destination = [path stringByAppendingPathComponent:file.lastPathComponent];
if (![[NSFileManager defaultManager] copyItemAtPath:file toPath:destination error:&copyError]) {
[self.delegate uploader:self failedToTransferFile:file toMicroBit:path.lastPathComponent];
}
else {
[self.delegate uploader:self transferredFile:file toMicroBit:path.lastPathComponent];
}
}];
}
@end

View File

@@ -0,0 +1,5 @@
#import <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}

View File

@@ -0,0 +1,40 @@
# micro:bit uploader for OS X
![](Microbit Uploader/Assets.xcassets/AppIcon.appiconset/icon_256x256.png)
This project is a clone of the [Windows
uploader](https://codethemicrobit.com/uploader), but for OS X. Once launched,
the app runs in your menu bar and will automatically deploy any HEX files to
your `micro:bit`. Like the Windows version, it is compatible with any browser
that can run [codethemicrobit.com](http://codethemicrobit.com).
## Install the built version
1. Download the latest `.zip` release from the `Release` directory
2. Unzip it
3. Drag `Microbit Uploader` to your Applications folder and launch it
## Building
To build the project you'll need a copy of OS X 10.11 or higher and Xcode 8 or
higher (you may be able to build on earlier OSes or versions of Xcode, but this
remains untested). Once you have a development environment set up, just build
and run `Microbit Uploader.xcodeproj`.
## Distributing
1. Open the Xcode project
2. Product > Archive
3. Export:
![Export](Graphics/export.png)
4. You will then have the option of either signing or not-signing the
application:
a) If you have an Apple developer account, select 'Export a Developer
ID-signed Application'
b) If you don't have a developer ID, select 'Export as a macOS App'
5. Zip the produced app and upload to CDN or equivalent

Binary file not shown.

View File

@@ -20,22 +20,18 @@
<ProjectConfiguration Include="Release|AnyCPU">
<Configuration>Release</Configuration>
<Platform>AnyCPU</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x86">
<Configuration>Release</Configuration>
<Platform>x86</Platform>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">

View File

@@ -0,0 +1,48 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "codethemicrobitapp", "codethemicrobitapp.jsproj", "{39122940-AB16-4CD4-A0CE-79A3EB863ECF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.ActiveCfg = Debug|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Build.0 = Debug|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|ARM.Deploy.0 = Debug|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.ActiveCfg = Debug|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Build.0 = Debug|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x64.Deploy.0 = Debug|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.ActiveCfg = Debug|x86
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Build.0 = Debug|x86
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Debug|x86.Deploy.0 = Debug|x86
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Build.0 = Release|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|Any CPU.Deploy.0 = Release|Any CPU
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.ActiveCfg = Release|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Build.0 = Release|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|ARM.Deploy.0 = Release|ARM
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.ActiveCfg = Release|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Build.0 = Release|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x64.Deploy.0 = Release|x64
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.ActiveCfg = Release|x86
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Build.0 = Release|x86
{39122940-AB16-4CD4-A0CE-79A3EB863ECF}.Release|x86.Deploy.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -14,13 +14,13 @@
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" StartPage="https://m.pxt.io/">
<Application Id="App" StartPage="https://codethemicrobit.com">
<uap:ApplicationContentUriRules>
<uap:Rule Match="https://m.pxt.io/" Type="include" WindowsRuntimeAccess="all" />
<uap:Rule Match="https://codemicrobit.com/" Type="include" WindowsRuntimeAccess="all" />
<uap:Rule Match="https://codethemicrobit.com/" Type="include" WindowsRuntimeAccess="all" />
</uap:ApplicationContentUriRules>
<uap:VisualElements DisplayName="codethemicrobit" Description="Code editors for the BBC micro:bit" BackgroundColor="white" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
<uap:VisualElements DisplayName="code the micro:bit" Description="A code editor for the BBC micro:bit with Blocks or Javascript." BackgroundColor="white" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="images\Wide310x150Logo.png" ShortName="code the micro:bit">
</uap:DefaultTile>
<uap:SplashScreen Image="images\splashscreen.png" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -1,22 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeTheMicrobit.Uploader", "Microbit.Uploader\CodeTheMicrobit.Uploader.csproj", "{7DC6CA45-FD75-44BC-805E-708C812CD4BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,40 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeTheMicrobit", "Microbit.Uploader\CodeTheMicrobit.csproj", "{7DC6CA45-FD75-44BC-805E-708C812CD4BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|ARM.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|ARM.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x64.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x64.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x86.ActiveCfg = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Debug|x86.Build.0 = Debug|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|Any CPU.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|ARM.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|ARM.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x64.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x64.Build.0 = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x86.ActiveCfg = Release|Any CPU
{7DC6CA45-FD75-44BC-805E-708C812CD4BF}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -8,7 +8,7 @@
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Microsoft.MicroBit</RootNamespace>
<AssemblyName>Microbit.Uploader</AssemblyName>
<AssemblyName>CodeTheMicrobit</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

View File

@@ -79,7 +79,7 @@
this.MinimizeBox = false;
this.Name = "LicenseDialog";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "code the micro:bit uploader Terms Of Use";
this.Text = "code the micro:bit terms of use";
this.ResumeLayout(false);
}

View File

@@ -14,7 +14,7 @@ namespace Microsoft.MicroBit
public LicenseDialog()
{
InitializeComponent();
this.textBox.Rtf = Resources.MSR_LA___2576;
this.textBox.Text = Resources.MSR_LA___2576;
}
private void acceptButton_Click(object sender, EventArgs e)

View File

@@ -116,6 +116,7 @@
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 5;
this.pictureBox1.TabStop = false;
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
//
// linkLabel1
//
@@ -148,7 +149,7 @@
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "code the micro:bit uploader";
this.Text = "code the micro:bit";
this.Load += new System.EventHandler(this.MainForm_Load);
((System.ComponentModel.ISupportInitialize)(this.backgroundPictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();

View File

@@ -32,7 +32,7 @@ namespace Microsoft.MicroBit
private void openEditor()
{
// lanch editor
try { Process.Start("https://codethemicrobit.com"); } catch (Exception) { }
try { Process.Start("https://codethemicrobit.com#uploader"); } catch (Exception) { }
}
private void initializeFileWatch()
@@ -243,11 +243,7 @@ namespace Microsoft.MicroBit
private void backgroundPictureBox_Click(object sender, EventArgs e)
{
try
{
Process.Start("https://codethemicrobit.com");
}
catch (IOException) { }
this.openEditor();
}
private void SettingsLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@@ -262,5 +258,10 @@ namespace Microsoft.MicroBit
{
this.openEditor();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
this.openEditor();
}
}
}

View File

@@ -34,7 +34,7 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.9.0.0")]
[assembly: AssemblyFileVersion("0.9.0.0")]
[assembly: AssemblyVersion("0.10.0.0")]
[assembly: AssemblyFileVersion("0.10.0.0")]
[assembly: CLSCompliant(true)]
[assembly: NeutralResourcesLanguage("en-US")]

View File

@@ -81,8 +81,7 @@ namespace Microsoft.MicroBit.Properties {
}
/// <summary>
/// Looks up a localized string similar to {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
///{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fp [rest of string was truncated]&quot;;.
/// Looks up a localized string similar to TBD.
/// </summary>
internal static string MSR_LA___2576 {
get {

View File

@@ -118,13 +118,13 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="MSR_LA___2576" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MSR-LA - 2576.rtf;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="microbit_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\microbit.red.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MSFT_logo_png" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\MSFT_logo_png.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="microbit_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\microbit.red.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="MSR_LA___2576" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MSR-LA - 2576.rtf;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
</root>

View File

@@ -6,17 +6,22 @@ import * as child_process from "child_process";
let writeFileAsync: any = Promise.promisify(fs.writeFile)
let execAsync: (cmd: string, options?: { cwd?: string }) => Promise<Buffer> = Promise.promisify(child_process.exec)
let readDirAsync = Promise.promisify(fs.readdir)
export function deployCoreAsync(res: ts.pxt.CompileResult) {
export function deployCoreAsync(res: ts.pxtc.CompileResult) {
return getBitDrivesAsync()
.then(drives => {
if (drives.length == 0) {
console.log("cannot find any drives to deploy to")
} else {
console.log(`copy ${ts.pxt.BINARY_HEX} to ` + drives.join(", "))
let msg = "cannot find any drives to deploy to";
console.log(msg);
return Promise.reject(new Error(msg));
}
console.log(`copy ${ts.pxtc.BINARY_HEX} to ` + drives.join(", "))
return Promise.map(drives, d =>
writeFileAsync(d + ts.pxt.BINARY_HEX, res.outfiles[ts.pxt.BINARY_HEX])
writeFileAsync(d + ts.pxtc.BINARY_HEX, res.outfiles[ts.pxtc.BINARY_HEX])
.then(() => {
console.log("wrote hex file to " + d)
}))
@@ -26,17 +31,28 @@ export function deployCoreAsync(res: ts.pxt.CompileResult) {
function getBitDrivesAsync(): Promise<string[]> {
if (process.platform == "win32") {
const rx = new RegExp("^([A-Z]:).* " + pxt.appTarget.compile.deployDrives)
return execAsync("wmic PATH Win32_LogicalDisk get DeviceID, VolumeName, FileSystem")
.then(buf => {
let res: string[] = []
buf.toString("utf8").split(/\n/).forEach(ln => {
let m = /^([A-Z]:).* MICROBIT/.exec(ln)
let m = rx.exec(ln)
if (m) {
res.push(m[1] + "/")
}
})
return res
})
}
else if (process.platform == "darwin") {
const rx = new RegExp(pxt.appTarget.compile.deployDrives)
return readDirAsync("/Volumes")
.then(lst => lst.filter(s => rx.test(s)).map(s => "/Volumes/" + s + "/"))
} else if (process.platform == "linux") {
const rx = new RegExp(pxt.appTarget.compile.deployDrives)
const user = process.env["USER"]
return readDirAsync(`/media/${user}`)
.then(lst => lst.filter(s => rx.test(s)).map(s => `/media/${user}/${s}/`))
} else {
return Promise.resolve([])
}

16
docfiles/appmeta.html Normal file
View File

@@ -0,0 +1,16 @@
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@codethemicrobit" />
<meta name="twitter:title" content="code the micro:bit" />
<meta name="twitter:description" content="Blocks+JavaScript for programming your micro:bit" />
<meta name="twitter:image" content="https://az851932.vo.msecnd.net/pub/drbwxcth" />
<meta property="og:title" content="micro:bit editor" />
<meta property="og:description" content="Blocks+JavaScript for programming your micro:bit" />
<meta property="og:site_name" content="code the micro:bit" />
<meta property="og:image" content="https://az851932.vo.msecnd.net/pub/drbwxcth" />
<!--
Canonical URL needs to wait until main release is updated.
<meta property="og:url" content="https://codethemicrobit.com" />
<meta property="og:type" content="website" />
<meta property="fb:app_id" content="" />
-->

View File

@@ -0,0 +1,6 @@
<script type="text/javascript">
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
</script>

21
docfiles/meta.html Normal file
View File

@@ -0,0 +1,21 @@
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@codethemicrobit" />
<meta name="twitter:title" content="@name@" />
<meta name="twitter:description" content="@description@" />
<meta name="twitter:image" content="@cardLogo@" />
<meta property="og:title" content="@name@" />
<meta property="og:site_name" content="code the micro:bit" />
<meta property="og:description" content="@description@" />
<meta property="og:image" content="@cardLogo@" />
<!--
<meta property="og:type" content="website" />
<meta property="fb:app_id" content="" />
-->
<link rel="apple-touch-icon" href="@appLogo@">
<link rel="icon" type="image/png" href="@appLogo@">
<link rel="mask-icon" href="https://az851932.vo.msecnd.net/pub/zwxazere/safari-pinned-tab.svg" color="#000000">
<link rel="shortcut icon" href="@appLogo@">
<meta name="theme-color" content="@accentColor@">

5
docfiles/target.css Normal file
View File

@@ -0,0 +1,5 @@
#root .avatar .avatar-image {
background-image: url(https://az851932.vo.msecnd.net/pub/jovrytni/microbit.simplified.svg);
background-size: contain;
background-repeat: no-repeat;
}

6
docfiles/tracking.html Normal file
View File

@@ -0,0 +1,6 @@
<script type="text/javascript">
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
mixpanel.init("762fef19c053a0ea4cec43d2fecae76e", { disable_persistence: true });
</script>

View File

@@ -1,3 +1,50 @@
![](/static/mb/device/pano.jpg)
# About
### @description A Blocks / Javascript code editor for the micro:bit, a pocket-size computer with 5x5 display, sensors and Bluetooth.
The [BBC micro:bit](https://www.microbit.co.uk) is a [pocket-size computer](/device) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
The BBC micro:bit was made possible by many [partners](https://www.microbit.co.uk/partners).
The micro:bit provides an easy and fun introduction to programming and making switch on, program it to do something fun wear it, customize it.
Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices.
* [Read the docs](/docs)
## [Hardware: The Device](/device)
The BBC micro:bit is packaged with sensors, radio and other goodies. Learn about the [hardware components](/device) of the micro:bit to make the most of it!
## Programming: [Blocks](/blocks) or [JavaScript](/javascript)
You can program the micro:bit using [Blocks](/blocks) or [JavaScript](/javascript) in your web browser via the [micro:bit APIs](/reference):
```block
input.onButtonPressed(Button.A, () => {
basic.showString("Hi!");
})
```
```typescript
input.onButtonPressed(Button.A, () => {
basic.showString("Hi!");
})
```
The editor work in [most modern browsers](/browsers), work [offline](/offline) once loaded and do not require any installation.
## [Compile and Flash: Your Program!](/device/usb)
When you have your code ready, you connect your micro:bit to a computer via a USB cable, so it appears as a mounted drive (named MICROBIT).
Compilation to ARM thumb machine code from [Blocks](/blocks) or [JavaScript](/javascript) happens in the browser. You save the ARM binary
program to a file, which you then copy to the micro:bit drive, which flashes the micro:bit device with the new program.
## Simulator: Test Your Code
You can run your code using the micro:bit simulator, all within the confines of a web browser.
The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.
```sim
basic.forever(() => {
basic.showString("Hi!");
@@ -20,49 +67,25 @@ input.onButtonPressed(Button.B, () => {
. # . # .
. . # . .`);
});
```
# About
The [BBC micro:bit](https://www.microbit.co.uk) is a [pocket-size computer](/device) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.
The BBC micro:bit was made possible by many [partners](https://www.microbit.co.uk/partners).
The micro:bit provides an easy and fun introduction to programming and making switch on, program it to do something fun wear it, customize it.
Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices.
## Hardware: The Device
Learn about about the [hardware components](/device) of the micro:bit to make the most of it!
## Programming: Blocks or JavaScript
The student can program the BBC micro:bit using [Blocks](/blocks) or [JavaScript](/javascript), via the [micro:bit APIs](/reference):
```blocks
basic.showString("Hi!");
```
## Compile and Flash: Your Program!
When a user has her code ready, she can connect her BBC micro:bit to a computer via a USB cable, so it appears as a mounted drive (named MICROBIT).
Compilation to ARM thumb machine code from [Blocks](/blocks) or [JavaScript](/javascript) happens in the browser.
The student is prompted to save the ARM binary program to a file, which she then simply drags to the micro:bit mounted drive,
which flashes the micro:bit device with the new program.
## Simulator: Test Your Code
Before a student compiles her code for the micro:bit, she can run it using the micro:bit simulator, all within the confines of a web browser.
The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.
## C++ Runtime
The [C++ BBC micro:bit runtime](http://lancaster-university.github.io/microbit-docs/), created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
The [C++ micro:bit runtime](http://lancaster-university.github.io/microbit-docs/), created at [Lancaster University](http://www.lancaster.ac.uk/), provides access to the hardware functions of the micro:bit,
as well as a set of helper functions (such as displaying a number/image/string on the LED screen).
The [micro:bit library](/reference) mirrors the functions of the C++ library.
When code is compiled to ARM machine code, the calls to JavaScript micro:bit functions are replaced with calls to the corresponding C++ functions.
## Open Source
## [Command Line Tools](/cli)
The editor for the BBC micro:bit is [open source](/open-source) on GitHub. Contributors are welcome!
Looking to use codethemicrobit.com in your favorite editor? Install the [command line tools](/cli) and get rolling!
## [Packages](/packages)
Create, edit and distribute your own blocks and JavaScript using [packages](/packages). Packages are hosted on GitHub and may be written
using C++, JavaScript and/or ARM thumb.
## [Open Source](/open-source)
The code for the micro:bit is [open source](/open-source) on GitHub. Contributors are welcome!

View File

@@ -1,8 +1,14 @@
# Blocks language
### @description Langugage constructs for the Block editor.
```namespaces
for (let i = 0;i<5;++i) {}
if (true){}
let x = 0;
Math.random(5);
```
```
## See Also
[logic](/blocks/logic), [loops](/blocks/loops), [math](/blocks/math), [variables](/blocks/variables)

View File

@@ -86,7 +86,7 @@ if (led.point(1,1) && led.point(2,2)) {
When you compare two Numbers, you get a Boolean value, such as the comparison `x < 5` in the code below:
```blocks
let x = math.random(5)
let x = Math.random(5)
if(x < 5) {
basic.showString("low");
} else {

View File

@@ -1,37 +1,36 @@
# Math
[Numeric](/reference/types/number) values: 0, 1, 2, ...
### [Numeric](/reference/types/number) values: 0, 1, 2, ...
```blocks
```block
0;
1;
2;
```
Arithmetic binary operation (+, -, *, /)
### Arithmetic binary operation (+, -, *, /)
```blocks
```block
0+1;
0-1;
1*2;
3/4;
```
Absolute value
### Absolute value
```blocks
```block
Math.abs(-5);
```
Minimum/maximum of two values
### Minimum/maximum of two values
```blocks
```block
Math.min(0, 1);
Math.max(0, 1);
```
Random value
### Random value
```blocks
```block
Math.random(5);
```

View File

@@ -1,42 +0,0 @@
# Math functions
### @parent blocks/language
The math library includes math related functions that you can use with [Numbers](/reference/types/number).
### abs
math `->` abs (x : [Number](/reference/types/number)) *returns* [Number](/reference/types/number)
returns the absolute value of input parameter `x`
![](/static/mb/blocks/math-0.png)
### max
math `->` max (x : [Number](/reference/types/number), y : [Number](/reference/types/number)) *returns* [Number](/reference/types/number)
returns the larger of two input numbers (`x` and `y`)
![](/static/mb/blocks/math-1.png)
### min
math `->` min (x : [Number](/reference/types/number), y : [Number](/reference/types/number)) *returns* [Number](/reference/types/number)
returns the smaller of two input numbers (`x` and `y`)
![](/static/mb/blocks/math-2.png)
### random
math `->` random (limit : [Number](/reference/types/number)) *returns* [Number](/reference/types/number)
returns a random [Number](/reference/types/number) between 0 and the parameter *limit*
![](/static/mb/blocks/math-3.png)
### See also
[Number](/reference/types/number)

View File

@@ -1,4 +1,4 @@
## Variables
# Variables
[Assign](/blocks/variables/assign) (set) a variable's value

View File

@@ -46,7 +46,7 @@ basic.showNumber(counter);
To change the contents of a variable use the assignment operator. The following code sets `counter` to 1 and then increments `counter` by 10:
```blocks
```blocks
let counter = 1;
counter = counter + 10;
basic.showNumber(counter);

104
docs/browsers.md Normal file
View File

@@ -0,0 +1,104 @@
# Unsupported configuration
[codethemicrobit.com](https://codethemicrobit.com) doesn't currently support
your browser or operating system. The following configurations are supported:
## Windows
You need one of these browsers running on Windows 7, Windows 8, Windows 8.1, or
Windows 10:
* Internet Explorer 11
* Microsoft Edge
* Google Chrome
* Mozilla Firefox
## Mac
You need one of these browsers running on OS X 10.9 Mavericks, OS X 10.10
Yosemite, OS X 10.11 El Capitan, or macOS 10.12 Sierra:
* Safari
* Google Chrome
* Mozilla Firefox
## Linux
If you're using a Raspberry Pi, please see [the documentation
here](/raspberry-pi).
You need to be running a Linux distribution recent enough to run the most recent
version of one of the following:
* Google Chrome, or Chromium
* Mozilla Firefox, Iceweasel, or Seamonkey
## How to check your OS or browser
### Windows
* Click on the Start menu
* Type 'System'
* Click on the app called 'System'
* The version of Windows you are using will be displayed:
![](/static/configurations/windows-version.png)
### Mac
* Click on the Apple icon in the top left
* Click on 'About this Mac'
* This window will be displayed:
![](/static/configurations/osx-version.png)
### Internet Explorer
* Click on the Settings icon in the top right
* Click 'About Internet Explorer'
* This window will be displayed:
![](/static/configurations/ie-version.png)
### Edge
Edge automatically updates, so you should always be using the latest version
* Click on the menu icon in the top right (three dots)
* Scroll to the bottom
* Information similar to the following will be displayed:
![](/static/configurations/edge-version.png)
### Google Chrome
Google Chrome automatically updates, so you should always be using the latest version
* Click on the menu icon in the top right (three dots)
* Click Help, and About Google Chrome
* Information similar to the following will be displayed:
![](/static/configurations/chrome-version.png)
### Firefox
Firefox automatically updates, so you should always be using the latest version
* Click on the menu icon in the top right (three horizontal lines)
* Click the question mark icon (help button)
* Click 'About Firefox'
![](/static/configurations/firefox-version.png)
### Safari
Safari updates when your operating system updates, so if you are using the
latest version of OS X then you'll be using the latest version of Safari.
* Click on the Safari menu in the top left
* Click 'About Safari'
![](/static/configurations/safari-version.png)
IT administrators should check which browser versions are supported
[here](/browsers/technical).

16
docs/browsers/linux.md Normal file
View File

@@ -0,0 +1,16 @@
# Recommended browser for Linux
As you are using Linux, it is recommended that you use [Mozilla
Firefox][firefox] or [Google Chrome][chrome].
Please see [here][technical] for technical information on which browsers are
supported, or [here][versions] to check which version you are using.
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
[firefox]: https://www.mozilla.org/en-US/firefox/new/
[chrome]: https://www.google.com/chrome/
[opera]: https://www.opera.com
[safari]: http://www.apple.com/safari/
[technical]: /browsers/technical
[versions]: /browsers

16
docs/browsers/mac.md Normal file
View File

@@ -0,0 +1,16 @@
# Recommended browser for Mac
As you are using a Mac, it is recommended that you use [Safari][]. Alternatively,
[Google Chrome][chrome] and [Mozilla Firefox][firefox] are also supported.
Please see [here][technical] for technical information on which browsers are
supported, or [here][versions] to check which version you are using.
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
[firefox]: https://www.mozilla.org/en-US/firefox/new/
[chrome]: https://www.google.com/chrome/
[opera]: https://www.opera.com
[safari]: http://www.apple.com/safari/
[technical]: /browsers/technical
[versions]: /browsers

View File

@@ -0,0 +1,36 @@
# Technical information about browser support
[codethemicrobit.com][] requires that you use a recent version of a modern
browser, such as Microsoft Edge, Google Chrome, Mozilla Firefox, Safari, Opera,
or IE11. This is because the editor uses modern web technologies such as [web
workers][] to enable compiling [TypeScript][] in the browser, or the using the
same [Monaco][] editor that powers [Visual Studio Code][].
[codethemicrobit.com]: https://codethemicrobit.com
[web workers]: http://www.w3.org/TR/workers/
[typescript]: http://www.typescriptlang.org
[monaco]: https://microsoft.github.io/monaco-editor/
[visual studio code]: http://code.visualstudio.com
Most modern browsers automatically update themselves, but in some environments
such as schools these automatic updates are disabled for security. **We
strongly recommend that you use the most recent version of any of these
browsers**, but if you can't then you must use at least:
| Browser | Minimum version | Release date | Windows | Mac |
| ----------------- | --------------- | -------------- | ----------- | ---------- |
| Edge | 12 | March 2015 | Windows 10+ | N/A |
| Internet Explorer | 11 | October 2013 | Windows 7+ | N/A |
| Mozilla Firefox | 31 ESR | July 2014 | Windows XP+ | OS X 10.6+ |
| Google Chrome | 38 | October 2014 | Windows XP+ | OS X 10.6+ |
| Safari | 9 | September 2015 | N/A | OS X 10.9+ |
| Opera | 21 | May 2014 | Windows 7+ | OS X 10.9+ |
Please see our information for which browsers are recommended for [Windows][],
[Mac][], [Linux][], or [Raspberry Pi][].
[Windows]: /browsers/windows
[Mac]: /browsers/mac
[Linux]: /browsers/linux
[Raspberry Pi]: /raspberry-pi

18
docs/browsers/windows.md Normal file
View File

@@ -0,0 +1,18 @@
# Recommended browser for Windows
We recommend [Microsoft Edge][edge] if you are running Windows 10, but users on
Windows 7 or higher can use [Internet Explorer 11][ie] or recent versions of
[Mozilla Firefox][firefox], [Google Chrome][chrome], or [Opera][opera].
Please see [here][technical] for technical information on which browsers are
supported, or [here][versions] to check which version you are using.
[edge]: https://www.microsoft.com/en-us/windows/microsoft-edge
[ie]: https://www.microsoft.com/en-us/download/internet-explorer.aspx
[firefox]: https://www.mozilla.org/en-US/firefox/new/
[chrome]: https://www.google.com/chrome/
[opera]: https://www.opera.com
[safari]: http://www.apple.com/safari/
[technical]: /browsers/technical
[versions]: /browsers

17
docs/cli.md Normal file
View File

@@ -0,0 +1,17 @@
# Command Line Interface
```sim
basic.forever(() => {
basic.showString("CLI<3")
})
```
It is possible to use the codethemicrobit tools from a command line interface (CLI). The PXT CLI allows to
* edit, compile or deploy JavaScript programs
* can easily be integrated in most IDEs. It comes with built-in support for [Visual Studio Code](/code)!
* run a local web server for the web editor
* author packages using JavaScript and/or C++
Using the CLI assumes that you have some experience with programming and will require to install tools on your machine as well.
* **[LET'S GET STARTED](https://pxt.io/cli)**

16
docs/code.md Normal file
View File

@@ -0,0 +1,16 @@
# Visual Studio Code
[Visual Studio Code](https://code.visualstudio.com) is a Free Open Source code editor that you can use to edit your programs.
Working from Visual Studio code allows you to benefit from all the features
of a professional IDE while working with PXT: working with files,
git integration (or source control of your choice), hundreds of extensions.
* background compilation
* auto-completion
* pxt command line integration
**Follow [these instructions](https://pxt.io/cli)** to setup your machine and edit your programs in Visual Studio Code.
![](/static/mb/vscode.png)

View File

@@ -1,6 +1,6 @@
# Device
All the bits and pieces that make up your BBC micro:bit
All the bits and pieces that make up the BBC micro:bit
![](/static/mb/device-0.png)
@@ -23,13 +23,13 @@ When you have downloaded and run your code onto your micro:bit, press Button R t
### USB connection
When you plug in your micro:bit, it should appear as MICROBIT.
When you plug in your micro:bit, it should appear as ``MICROBIT``.
If you accidentally hold down the reset button as youre plugging in your micro:bit,
the micro:bit will appear as a MAINTENANCE drive instead of MICROBIT. This is known as maintenance mode.**
the micro:bit will appear as a MAINTENANCE drive instead of ``MICROBIT``. This is known as maintenance mode.**
To continue programming your micro:bit YOU MUST unplug your USB and reconnect it. Check that the drive now shows as MICROBIT.
To continue programming your micro:bit YOU MUST unplug your USB and reconnect it. Check that the drive now shows as ``MICROBIT``.
**Use with caution. If you click on the drive while it shows as MAINTENANCE,
**Use with caution. If you click on the drive while it shows as ``MAINTENANCE``,
you can see which version of firmware you have running on your micro:bit.
Firmware on your micro:bit should be up-to-date already.
You can find the version of firmware in the 'version.txt' file on the micro:bit. Further information on the firmware can be found here:
@@ -55,6 +55,10 @@ The pins can be a form of input or output.
There are labels for the input/output pins P0, P1, P2, which you can attach external sensors to such as thermometers or moisture detectors.
You can read more about large and small pins [here](/device/pins).
### Light level
The screen can also be used a light level sensor (it's a really cool trick).
### How do I connect the micro:bit to my computer?
Your micro:bit can be connected to your computer via a micro USB cable.
@@ -73,7 +77,7 @@ You can attach an external device such as a motor to these and power it using th
### Serial Communication
The BBC micro:bit can send an receive data via [serial communication](/device/serial). The serial data can be transfered via USB or BlE.
The micro:bit can send an receive data via [serial communication](/device/serial). The serial data can be transfered via USB or BLE.
### Bluetooth Low Energy (BLE) Antenna

View File

@@ -7,10 +7,16 @@ Register an event that will execute whenever the user attaches one side of the c
This example displays a random number every time the crocodile clip holds `GND` then connects and disconnects the `P0` pin. Each time the crocodile clip is firmly connected and disconnected from pin `P0`, the micro:bit will return a random Number between 0 and the parameter limit
![](/static/mb/crocodile-clips-0.png)
```blocks
input.onPinPressed(TouchPin.P0, () => {
basic.showNumber(Math.random(10))
})
```
### Connecting Crocodile Clips
![](/static/mb/crocodile-clips-2.jpg)
### See also
[micro:bit pins](/device/pins), [pin is pressed](/reference/input/pin-is-pressed), [analog read pin](/reference/pins/analog-read-pin), [analog write pin](/reference/pins/analog-write-pin), [digital read pin](/reference/pins/digital-read-pin), [digital write pin](/reference/pins/digital-write-pin)

View File

@@ -9,7 +9,15 @@ Below is a list of error numbers and what they mean:
* **10** (`MICROBIT_I2C_LOCKUP`): the micro:bit's I2C bus is not working
* **20** (`MICROBIT_OOM`): there is no free memory on the micro:bit
![](/static/mb/device/error-codes-0.png)
```sim
basic.showLeds(`
# . . . #
# # . # #
. . . . .
. # # # .
# . . . #
`)
```
### See also

View File

@@ -48,41 +48,45 @@ The micro:bits *scheduler* provides the capability to concurrently execute di
The first job of the scheduler is to allow multiple *subprograms* to be queued up for later execution . For our purposes, a subprogram is just a statement or sequence of statements in the context of a larger program. Consider the Touch Develop program below for counting button presses.
```
export function countButtonPresses() {
input.onButtonPressed(Button.A, () => {
count = count + 1
})
basic.forever(() => {
basic.showNumber(count, 150)
})
count = 0
}
```
The program above contains three statements that execute in order from top to bottom. The first statement
```
```blocks
let count = 0
input.onButtonPressed(Button.A, () => {
count = count + 1
count++;
})
```
informs the scheduler that on each and every event of the A button being pressed, a subprogram (called the event handler) should be queued for execution. The event handler is demarcated by the do/end keywords; it increments the global variable `count` by one. The second statement
```
basic.forever(() => {
basic.showNumber(count, 150)
})
```
queues a `forever` loop for later execution by the scheduler; the body of this loop (between the do/end keywords) displays the current value of global variable `count` on the LED screen. The third statement
The program above contains three statements that execute in order from top to bottom.
The first statement initializes the global variable `count` to zero.
```
count = 0
```blocks
let count = 0
```
initializes the global variable `count` to zero. The function ends after the execution of these three statements, but this is not the end of program execution! Thats because the function queued the `forever` loop for execution by the scheduler.
The second statement informs the scheduler that on each and every event of the A button being pressed, a subprogram (called the event handler) should be queued for execution. The event handler is demarcated by the do/end keywords; it increments the global variable `count` by one.
```blocks
let count = 0
// ...
input.onButtonPressed(Button.A, () => {
count++;
})
```
The third statement queues a `forever` loop for later execution by the scheduler; the body of this loop (between the do/end keywords) displays the current value of global variable `count` on the LED screen. The third statement
```blocks
let count = 0
// ...
basic.forever(() => {
basic.showNumber(count, 150)
})
```
The function ends after the execution of these three statements, but this is not the end of program execution! Thats because the function queued the `forever` loop for execution by the scheduler.
The second job of the scheduler is to periodically interrupt execution to read (poll) the various inputs to the micro:bit (the buttons, pins, etc.) and fire off events (such as “button A pressed”). Recall that the firing of an event causes the event handler subprogram associated with that event to be queued for later execution. The scheduler uses a timer built into the micro:bit hardware to interrupt execution every 6 milliseconds and poll the inputs, which is more than fast enough to catch the quickest press of a button.
@@ -96,9 +100,18 @@ If you hadnt guessed already, a footballer represents subprogram and dribblin
We will call this “passing control of execution” rather than “passing the ball”. However, in the world of the micro:bit, the concurrently executing subprograms are not aware of each other, so they dont actually pass control directly to one another. Rather they pass control of execution back to the scheduler and the scheduler determines the subprogram to pass control to next. The programmer inserts a call to the `pause` function to indicate a point in the subprogram where control of execution passes to the scheduler. Also, when a subprogram ends execution, control passes to the scheduler.
Lets take a look at the implementation of the `forever` statement to see an example of cooperative scheduling:
Lets take a look at the implementation of the `basic.forever` function to see an example of cooperative scheduling:
![](/static/mb/device/reactive-2.png)
```typescript
function forever(body: () => void) {
control.inBackground(() => {
while(true) {
body()
basic.pause(20)
}
})
}
```
The `forever` loop actually is a function that takes a subprogram (an *Action* in Touch Develop) as a parameter. The function uses the `control -> in background` function of the micro:bit runtime to queue a `while true` loop for execution by the scheduler. The while loop has two statements. The first statement runs the subprogram represented by the `body` parameter. The second statement passes control to the scheduler (requesting to “sleep” for 20 milliseconds).
@@ -128,15 +141,15 @@ Through this example, we have seen that the micro:bit scheduler enables you to c
As a result, you can easily add a new capability to the micro:bit by just adding a new subprogram. For example, if you want to add a reset feature to the counter program, all you need to do is add a new event handler for a press of button B that sets the global variable "count" to zero, as shown below:
```
```typescript
export function countButtonPressesWithReset() {
let count = 0
input.onButtonPressed(Button.A, () => {
count = count + 1
})
basic.forever(() => {
basic.showNumber(count, 150)
})
count = 0
input.onButtonPressed(Button.B, () => {
count = 0
})

View File

@@ -29,13 +29,21 @@ Unfortunately, using the serial library requires quite a bit of a setup.
If you are using the Google Chrome browser, you can use our extension to get serial data streaming in the editor.
* Install the [Extension for BBC micro:bit](https://chrome.google.com/webstore/detail/extension-for-bbc-microbi/cihhkhnngbjlhahcfmhekmbnnjcjdbge?hl=en-US) on the Chrome Web Store.
* Restart Chrome and open the web editor.
* Restart Chrome and open the [web editor](https://codethemicrobit.com)
* The serial data will show below the simulator
### Windows
You must install a device driver (for the computer to recognize the serial interface of the micro:bit); then, you must also install a terminal emulator (which is going to connect to the micro:bit and read its output). Here's how to do it:
You must install a device driver (for the computer to recognize the
serial interface of the micro:bit); then, you must also install a
terminal emulator (which is going to connect to the micro:bit and read
its output).
* Follow instructions at https://developer.mbed.org/handbook/Windows-serial-configuration in order to install the device driver
* Follow the instructions at
https://developer.mbed.org/handbook/Windows-serial-configuration to
install the device driver.
* Instructions for installing a terminal emulator are below.
#### Windows > Tera Term
@@ -66,14 +74,16 @@ If you prefer another terminal emulator (such as [PuTTY](http://www.putty.org/))
### Linux
(Untested).
* Install the program `screen` if it is not already installed.
* Plug in the micro:bit.
* Open a terminal.
* Find which device node the micro:bit was assigned to with the command `ls /dev/ttyACM*`.
* If it was `/dev/ttyACM0`, type the command `screen /dev/ttyACM0 115200`. If it was some other device node,
use that one in the command instead. **Note:** You may need root access to run `screen`
successfully. You can probably use the command `sudo` like this: `sudo screen /dev/ttyACM0 115200`.
* To exit `screen`, type `Ctrl-A` `Ctrl-D`.
* Plug in the micro:bit
* Open a terminal
* `dmesg | tail` will show you which `/dev/` node the micro:bit was assigned (e.g. `/dev/ttyUSB0`)
* Then, do: `screen /dev/ttyUSB0 115200` (install the `screen` program if you don't have it). To exit, run `Ctrl-A` `Ctrl-D`.
Alternative programs include minicom, etc.
Alternative programs include `minicom` and so on.
### Mac OS

View File

@@ -1,132 +1,31 @@
# Run Scripts on your micro:bit
# Uploading programs on your micro:bit
How to compile, transfer, and run a script on your micro:bit.
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
While you're writing and testing your scripts, you'll mostly be running scripts in your browser by clicking the `PLay` button
(see [run code in your browser](/device/simulator) for info about this).
The basic steps are:
Once your masterpiece is complete, you can compile your script and run it on your micro:bit.
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
## Requirements
![](/static/mb/device/usb-thin.jpg)
You need the following things to transfer and run a script on your micro:bit:
## Instructions
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is the same cable that is commonly used to connect a smart phone to a computer.
* a PC running Windows 7 of later, or a Mac running OS X 10.6 or later
* access to the Internet
Pick the instructions for your operating system and browser:
## Step 1: Connect your micro:bit to your computer
* [Windows - Microsoft Edge](/device/usb/windows-edge)
* [Windows - Internet Explorer](/device/usb/windows-ie)
* [Windows - Chrome](/device/usb/windows-chrome)
* [Windows - Firefox](/device/usb/windows-firefox)
* [Mac - Safari](/device/usb/mac-safari)
* [Mac - Chrome](/device/usb/mac-chrome)
* [Mac - Firefox](/device/usb/mac-firefox)
First, connect the micro:bit:
### ~hint
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers running Windows, MICROBIT appears as a drive under Devices and drives. On a Mac it appears as a new drive under Devices.
Windows
![](/static/mb/device/usb-0.jpg)
Mac (picture bvabdbco)
WARN: unknown picture: bvabdbco:5x3
## Step 2: Compile your script
Next, compile your script:
1. Sign in to Touch Develop on your computer.
2. Open your script (find the script in **My Scripts** and click `Edit`).
3. Click `compile`. Your script is converted into a hex file that you can transfer and run on your micro:bit.
4. When prompted, choose to save the compiled file on your computer (or anywhere other than the micro:bit). Depending on which browser you are using, the download will adopt the download behaviour of that particular browser.
### Windows
** Chrome**
Your .hex file appears as a download at the bottom of the browser. Open up your windows file explorer. Your micro:bit appears as a drive called MICROBIT.
**Right click** on the download and select **show in folder**. Drag and drop the hex file from the download folder onto the MICROBIT drive.
Alternatively, you can drag and drop the downloaded hex file from the bottom of the browser onto the file explorer and onto the MICROBIT drive.
![](/static/mb/device/usb-1.jpg)
**Firefox**
A dialogue box will appear, asking whether you would like to open or save your hex file. Select **Save**, then **OK** and the file will appear in your downloads in the top right of your browser. Select the **blue arrow**, select the relevant file and drag and drop it onto your Windows Explorer and onto your MICROBIT drive.
![](/static/mb/device/usb-2.jpg)
![](/static/mb/device/usb-3.jpg)
**IE10**
Click on compile. You will see a message “Do you want to save this .hex file.” Select **Save**.
### Mac
** Safari**
When you select **compile** in Safari on Mac, your file will be downloaded to your downloads folder. Go to your downloads folder and open the file. In Safari the file will appear as unknown.txt rather than a named .hex file. Drag and drop it onto your MICROBIT drive.
![](/static/mb/device/usb-4.jpg)
**Firefox**
A dialogue box will appear, asking whether you would like to open or save your hex file. Select **Save** and **OK** and the file will then appear in your downloads in the top right of your browser. Click on **Show in Finder** and the file will appear in your downloads folder. Select the file and drag and drop it onto your MICROBIT drive.
![](/static/mb/device/usb-5.jpg)
![](/static/mb/device/usb-6.jpg)
**Chrome**
When you select **compile** in Chrome, the file will be downloaded to the bottom of the browser in .hex format. Click on the small arrow and select **Show in Finder**. This will show the file in your download folder. Drag and drop the file onto your MICROBIT drive.
![](/static/mb/device/usb-7.jpg)
## Step 3: Transfer the file to your micro:bit
1. The file will transfer onto your micro:bit.
2. If you're using Windows, you can use **Send to** as described below.
3. The LED on the back of your micro:bit flashes during the transfer (which should only take a few seconds).
4. Once transferred, the code will run automatically on your micro:bit. To rerun your program, press the reset button on the back of your micro:bit. The reset button automatically runs the newest file on the micro:bit.
**Send to**: If you're using Windows you use *Send to* in File Explorer:
- In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
![](/static/mb/device/usb-8.jpg)
By copying the script onto the 'MICROBIT' drive, you have programmed it into the flash memory on the micro:bit, which means even after you unplug the micro:bit, your script will still run if the micro:bit is powered by battery.
## Troubleshooting
You cant drag and drop more than one hex file at once onto your micro:bit. If you try to drag and drop a second hex file onto your micro:bit before the first file has finished downloading, then the second file may fail in different ways.
When the first program has been written to the micro:bit, the drive will disengage. If you drag and drop a second file at this point it may not find the drive and the second write will fail.
The errors may look like this:
**Windows**
![](/static/mb/device/usb-9.jpg)
**Mac**
![](/static/mb/device/usb-10.png)
Or it may appear that there are two hex files on your micro:bit so the micro:bit wont be able to run multiple files. To rectify this, unplug your micro:bit and plug it in again. Make sure that your micro:bit appears as MICROBIT and not MAINTENANCE.
### See also
[Run code in a browser](/device/simulator)
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,69 @@
# Uploading from Chrome for Mac
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-osx-device.png)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
When you select **Download** in Chrome, the file will appear at the bottom of
the browser. Click on the small arrow and select **Show in Finder**. This will
show the file in your download folder. Drag and drop the file onto your
`MICROBIT` drive.
![](/static/mb/device/usb-osx-chrome.png)
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,71 @@
# Uploading from Firefox for Mac
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-osx-device.png)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
A dialogue box will appear, asking whether you would like to open or save your
hex file. Select **Save file** and click **OK** and the file will then appear in
your downloads in the top right of your browser. Right click on the file and
click on **Show in Finder** and the file will appear in your downloads folder.
Select the file and drag and drop it onto your `MICROBIT` drive.
![](/static/mb/device/usb-osx-firefox-1.jpg)
![](/static/mb/device/usb-osx-firefox-2.png)
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,68 @@
# Uploading from Safari for Mac
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-osx-device.png)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
When you select **Download** in Safari a file called `Unknown` will be
downloaded into your Downloads folder. Open your Downloads folder and drag and
drop the file onto your `MICROBIT` drive, under Devices:
![](/static/mb/device/usb-osx-dnd.png)
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,24 @@
# Troubleshooting Transfer
You cant drag and drop more than one hex file at once onto your micro:bit. If
you try to drag and drop a second hex file onto your micro:bit before the first
file has finished downloading, then the second file may fail in different ways.
When the first program has been written to the micro:bit, the drive will
disengage. If you drag and drop a second file at this point it may not find the
drive and the second write will fail.
The errors may look like this:
**Windows**
![](/static/mb/device/usb-windows-copy-file-error.jpg)
**Mac**
![](/static/mb/device/usb-osx-copy-file-error.png)
Or it may appear that there are two hex files on your micro:bit so the micro:bit
wont be able to run multiple files. To rectify this, unplug your micro:bit and
plug it in again. Make sure that your micro:bit appears as `MICROBIT` and not
`MAINTENANCE`.

View File

@@ -0,0 +1,79 @@
# Uploading from Chrome for Windows
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
### ~hint
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
![](/static/uploader/tooltip.png)
### ~
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-windows-device.jpg)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
Your `.hex` file appears as a download at the bottom of the browser. Click on
the arrow next to the name of the file and then click **Show in folder**.
![](/static/mb/device/usb-windows-chrome.png)
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
![](/static/mb/device/usb-windows-sendto.jpg)
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,89 @@
# Uploading from Edge on Windows
How to compile, transfer, and run a program on your micro:bit on **Microsoft Edge**.
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
### ~hint
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
![](/static/uploader/tooltip.png)
### ~
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-windows-device.jpg)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
A message will appear at the bottom of the browser asking what you want to do
with the file. Click **Save**:
![](/static/mb/device/usb-windows-edge-1.png)
Then click **Open folder** and drag and drop the file from your Downloads to
your `MICROBIT` drive.
![](/static/mb/device/usb-windows-edge-2.png)
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* If you're using Windows, you can use **Send to** as described below
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
![](/static/mb/device/usb-windows-sendto.jpg)
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
If you want to save time, you can use the [micro:bit uploader](/uploader) to
automatically deploy hex files to your micro:bit. It works on Windows and is
compatible with any browser.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,86 @@
# Uploading from Firefox on Windows
How to compile, transfer, and run a program on your micro:bit on **Firefox for Windows**.
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
### ~hint
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
![](/static/uploader/tooltip.png)
### ~
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-windows-device.jpg)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
A window will appear asking whether you want to save or open the `.hex` file.
Select **Save File** and then select **OK**.
![](/static/mb/device/usb-windows-firefox-1.png)
The file will then appear in your downloads in the top right of your browser.
Click the **folder icon** next to the filename to open it in Windows Explorer.
![](/static/mb/device/usb-windows-firefox-2.jpg)
Drag and drop the `.hex` file from the download folder onto the `MICROBIT` drive.
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* If you're using Windows, you can use **Send to** as described below
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
![](/static/mb/device/usb-windows-sendto.jpg)
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -0,0 +1,86 @@
# Uploading from Internet Explorer on Windows
While you're writing and testing your programs, you'll mostly be [running them
in the simulator](/device/simulator), but once you've finished your program you
can **compile** it and run it on your micro:bit.
The basic steps are:
1. Connect your micro:bit to your computer via USB
2. Click **Download** and download the `.hex` file
3. Copy the `.hex` file from your computer onto the micro:bit drive
### ~hint
You can use the [micro:bit uploader](/uploader) to automatically deploy ``.hex`` files to your micro:bit!
![](/static/uploader/tooltip.png)
### ~
## Requirements
You need the following things to transfer and run a script on your micro:bit:
* A-Male to Micro USB cable to connect your computer to your micro:bit. This is
the same cable that is commonly used to connect a smart phone to a computer.
* A PC running Windows 7 or later, or a Mac running OS X 10.6 or later
## Step 1: Connect your micro:bit to your computer
First, connect the micro:bit:
1. Connect the small end of the USB cable to the micro USB port on your micro:bit.
2. Connect the other end of the USB cable to a USB port on your computer.
Your computer should recognise your micro:bit as a new drive. On computers
running Windows, `MICROBIT` appears as a drive under Devices and drives. On a Mac
it appears as a new drive under Devices.
![](/static/mb/device/usb-windows-device.jpg)
## Step 2: Download your program
1. Open your project on [codethemicrobit.com](https://codethemicrobit.com)
2. Click **Download**
3. When prompted, choose to **save** the compiled file onto your computer. The
prompt will be different depending on which browser you are using, or
whether you are using a Windows computer or a Mac
A message will appear at the bottom of the browser asking what you want to do
with the file. Click **Save**:
![](/static/mb/device/usb-windows-ie11-1.png)
Then click **Open folder** and drag and drop the file from your Downloads to
your `MICROBIT` drive.
![](/static/mb/device/usb-windows-ie11-2.png)
## Step 3: Transfer the file to your micro:bit
* Once you've found the folder containing your `.hex` file, drag and drop it
onto your `MICROBIT` drive
* If you're using Windows, you can use **Send to** as described below
* The LED on the back of your micro:bit flashes during the transfer (which
should only take a few seconds).
* Once transferred, the code will run automatically on your micro:bit. To rerun
your program, press the reset button on the back of your micro:bit. The reset
button automatically runs the newest file on the micro:bit.
**Send to**: If you're using Windows you use *Send to* in File Explorer:
In File Explorer, right-click on the hex file (created in Step 2 above), choose **Send to**, and then **MICROBIT**.
![](/static/mb/device/usb-windows-sendto.jpg)
By copying the script onto the `MICROBIT` drive, you have programmed it into the
flash memory on the micro:bit, which means even after you unplug the micro:bit,
your program will still run if the micro:bit is powered by battery.
### ~hint
Transfer not working? See some [troubleshooting tips](/device/usb/troubleshooting).
### ~

View File

@@ -1,36 +1,31 @@
# Documentation
```sim
basic.forever(() => {
basic.showString("DOCS ");
})
input.onButtonPressed(Button.A, () => {
led.stopAnimation();
basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
input.onButtonPressed(Button.B, () => {
led.stopAnimation();
basic.showLeds(`
. # . # .
# . # . #
# . . . #
. # . # .
. . # . .`);
});
```
### @description Links to the documentation, reference and projects.
* **[getting started](/getting-started)**
* Get started with [projects](/projects)
* Browse the [micro:bit APIs](/reference)
* Learn more about the [micro:bit device](/device)
* Frequently Asked Question [faq](/faq)
* Follow up with the [release notes](/release-notes)
### Things to do
* **[Getting Started](/getting-started)**
* [Ten projects](/projects)
### Micro:bit reference
* [The micro:bit APIs](/reference)
* [The micro:bit device](/device)
### Language and data reference
* [Blocks language](/blocks)
* [JavaScript language](/javascript)
* [Streaming data](/streaming)
### More questions?
* [Frequently Asked Question](/faq)
* [Embedding project](/share)
* [Help Translate](/translate)
* [Release notes](/release-notes)
### Developers
* Learn about [packages](/packages) (possibly using C++ or ARM thumb)
* [Command Line Interface](/cli)
* Learn about [packages](/packages)

Some files were not shown because too many files have changed in this diff Show More