diff --git a/README.md b/README.md index 8380abc..953bc86 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ # Microbit Developer Community Docs -These docs form the content that is rendered into the [micro:bit Developer Commmunity site](http://tech.microbit.org) +These docs form the content that is rendered into the [micro:bit Developer Commmunity site](https://tech.microbit.org) ## Using these docs -These docs are made available under a Creative Commons license, to support the micro:bit community. Issues and Pull Requests are welcomed and encouraged. Please review the [Foundation community and brand guidelines](https://microbit.org/community/) and the [tech.microbit.org](http://tech.microbit.org) homepage for further details about contribution. +These docs are made available under a Creative Commons license, to support the micro:bit community. Issues and Pull Requests are welcomed and encouraged. Please review the [Foundation community and brand guidelines](https://microbit.org/community/) and the [tech.microbit.org](https://tech.microbit.org) homepage for further details about contribution. ### Documentation development tools diff --git a/accessories/making-accessories.md b/accessories/making-accessories.md index 8e3e063..af054b6 100644 --- a/accessories/making-accessories.md +++ b/accessories/making-accessories.md @@ -10,18 +10,18 @@ lang: en A [list of available accessories](https://microbit.org/buy/accessories/) is maintained on the micro:bit website. -[submit an accessory](https://form.jotformeu.com/83453273451355){: .btn.sm-btn} +[Submit an accessory](https://form.jotformeu.com/83453273451355){: .btn.sm-btn} ## Using the Edge Connector -The micro:bit [card edge connector](/hardware/edgeconnector), commonly referred to as the 'edge connector' or the 'pins', is compatible with a standard 1.27mm, 2x40 edge connector socket. +The micro:bit [card edge connector]({{ "/hardware/edgeconnector" | relative_url }}), commonly referred to as the 'edge connector' or the 'pins', is compatible with a standard 1.27mm, 2x40 edge connector socket. Where possible your accessory design should implement this socket, making it simple for your users to plug in and remove the micro:bit board. -There are [limitations to the current that can be drawn from the micro:bit](/hardware/powersupply), accessories must be designed carefully to ensure they do not damage the micro:bit, or that the micro:bit cannot damage them. +There are [limitations to the current that can be drawn from the micro:bit]({{ "/hardware/powersupply" | relative_url }}), accessories must be designed carefully to ensure they do not damage the micro:bit, or that the micro:bit cannot damage them. -- [micro:bit edge connector and pinout](/hardware/edgeconnector) -- [powering accessories from the micro:bit](/hardware/powersupply) +- [micro:bit edge connector and pinout]({{ "/hardware/edgeconnector" | relative_url }}) +- [powering accessories from the micro:bit]({{ "/hardware/powersupply" | relative_url }}) ### V2 revision @@ -31,7 +31,7 @@ The edge connector on the V2 board revision is backwards There are two rounded rectangular pads on the back of the micro:bit. These allow you to connect a battery holder via a mechanism other than the JST connector. -![Picture of the two rounded rectangular pads](/docs/accessories/assets/making-accessories-d7c25.png) +![Picture of the two rounded rectangular pads]({{ "/docs/accessories/assets/making-accessories-d7c25.png" | relative_url }}) The upper pad is 0V or GND and the lower pad is 3V. diff --git a/blog/latest-revision-announcement.md b/blog/latest-revision-announcement.md index 20d1e92..9b935e1 100644 --- a/blog/latest-revision-announcement.md +++ b/blog/latest-revision-announcement.md @@ -13,8 +13,7 @@ lang: en Today we’re [announcing a new version of the BBC micro:bit](https://microbit.org/new-microbit/), adding a speaker, a microphone and the CPU power to run AI and Machine Learning workloads. With these additional capabilities, we are opening up the world of AI and ML to the same collaborative design and innovation that led to the original micro:bit’s success. This article is a more technical companion to the [news over at microbit.org](https://microbit.org/new-microbit/). - -![micro:bit V2 image](/docs/blog/assets/latest-revision/microbit-v2-tech-site.png){: width="600"} +![micro:bit V2 image]({{ "/docs/blog/assets/latest-revision/microbit-v2-tech-site.png" | relative_url }}){: width="600"} Although the latest micro:bit isn’t available to buy yet, we’re talking about it now because the micro:bit isn’t about one organisation, or the official editors, or even one device. @@ -34,7 +33,7 @@ At the Micro:bit Educational Foundation we are working with Lancaster University ## We’re building this together, not alone -![A wall of micro:bit accessories](/docs/blog/assets/latest-revision/accessory-wall-bett.jpg){: width="600"} +![A wall of micro:bit accessories]({{ "/docs/blog/assets/latest-revision/accessory-wall-bett.jpg" | relative_url }}){: width="600"} *The wall of accessories displayed at BETT* We recognise and support the huge contribution the wider micro:bit ecosystem makes to our community, and so we are making available all [key technical information about the new micro:bit](https://support.microbit.org/support/solutions/articles/19000119052-details-of-micro-bit-v2), and open source tools to make it easy to support in advance of the device being available to users. @@ -49,11 +48,11 @@ We’ve compiled all this information on an updated version of tech.microbit.org ## Creating code for the latest micro:bit -The latest micro:bit supports all features of the original version so there are many cases where a user won’t need to distinguish between the devices; every tutorial or programme that already exists today is supported on the latest hardware. However, as the machine code that runs on the two devices is different, the latest micro:bit supports a new kind of hex. We’re calling it ‘[universal hex](/software/hex-format/)’: this contains the machine code for both versions of the micro:bit. Thanks to the fantastic support of NXP who have worked on [DAPLink](https://github.com/ARMmbed/DAPLink), the Arm project that enables the micro:bit USB interface, the latest micro:bit is able to choose which code it should use from the universal hex. The files are designed so the original micro:bits do not need any update to use them. -![Creation of a Universal Hex](/docs/blog/assets/latest-revision/uhex2.png) +The latest micro:bit supports all features of the original version so there are many cases where a user won’t need to distinguish between the devices; every tutorial or programme that already exists today is supported on the latest hardware. However, as the machine code that runs on the two devices is different, the latest micro:bit supports a new kind of hex. We’re calling it ‘[universal hex]({{ "/software/hex-format/" | relative_url }})’: this contains the machine code for both versions of the micro:bit. Thanks to the fantastic support of NXP who have worked on [DAPLink](https://github.com/ARMmbed/DAPLink), the Arm project that enables the micro:bit USB interface, the latest micro:bit is able to choose which code it should use from the universal hex. The files are designed so the original micro:bits do not need any update to use them. +![Creation of a Universal Hex]({{ "/docs/blog/assets/latest-revision/uhex2.png" | relative_url }}) To make the experience of developing programs for these universal hexes as seamless as possible we’ve deepened our collaboration with Arm, Lancaster University and [Microsoft Research](https://www.microsoft.com/en-us/research/project/the-bbc-microbit-and-microsoft/), who were [co-creators of the original micro:bit,](https://www.lancaster.ac.uk/news/articles/2016/lancaster-university-helps-bbc-get-kids-coding/). Because of the open source nature of [Lancaster’s CODAL](https://github.com/lancaster-university/codal), the evolution of the original microbit-dal, we had a ready platform to make the latest micro:bit work. We have also included a full compatibility layer for [microbit-dal](https://github.com/lancaster-university/microbit-dal), so that existing projects and environments can be easily recompiled to work on the latest board. On top of the careful compatibility work there’s plenty of exciting new features designed for the latest hardware, like an advanced SoundExpressions synthesiser and audio pipeline architecture. -![micro:bit Software Architecture with CODAL](/docs/blog/assets/latest-revision/software-overview-v2.svg){: width="600"} +![micro:bit Software Architecture with CODAL]({{ "/docs/blog/assets/latest-revision/software-overview-v2.svg" | relative_url }}){: width="600"} MakeCode, MicroPython and Scratch are using CODAL to support the new device, and we recommend that anyone building software to run on the micro:bit do the same to ensure consistent experience across micro:bit editors. This will also ensure that as new features get added they can be incorporated easily and made available to users (it’s easy to forget that micro:bit radio wasn’t in the original micro:bit release!) @@ -63,7 +62,7 @@ When it launched in 2015, one of the key goals of the original micro:bit was to Part of ensuring this was putting the same hardware that real developers were using at the time into the hands of students. This is what has enabled some of the more incredible uses of the micro:bit: [Handwriting recognition using an optical mouse sensor](https://www.cs.ox.ac.uk/teaching/studentprojects/630.html); [use in a BLE mesh](https://docs.zephyrproject.org/latest/samples/bluetooth/mesh_demo/README.html), a [presentation remote](https://os.mbed.com/teams/microbit/code/microbit_presenter/), or a [custom piece of assistive technology.](https://hackaday.io/project/26143-handshake) -![Creation of a Universal Hex](/docs/blog/assets/latest-revision/nrf52833.jpg){: width="600"} +![Creation of a Universal Hex]({{ "/docs/blog/assets/latest-revision/nrf52833.jpg" | relative_url }}){: width="600"} With the latest micro:bit, we’re doing this again: the [nRF52833](https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52833) is a modern, exciting part recently released by Nordic, and being used across the industry for new designs. It’s capable of running machine learning workloads, and so opens up a new realm of possibilities, both for applications of the device, but especially for helping to expose and demonstrate what machine learning really is: not magic, but sufficiently advanced application of technology. @@ -73,7 +72,7 @@ The original micro:bit elegantly demonstrated the technology in a phone (the scr Music and sound on the micro:bit were pioneered in MicroPython as part of the original community effort around the BBC micro:bit – not least thanks to Nicholas Tollervey and Mark Shannon for introducing things like the [speech synthesizer](https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52833)! Now with the addition of a speaker to the latest micro:bit it is really coming into its own. If you connect headphones or an amplified speaker, you get even better quality sound. Just as the 5x5 display on the micro:bit is perfect for getting started, but a colour LCD is still a welcome way to extend your projects, the sound driver written by Lancaster University is capable of reproducing high quality sound on the edge connector. We don’t expect to see the end of crocodile clips connecting headphone jack sockets just yet! -![micro:bit guitar](/docs/blog/assets/latest-revision/microbit-guitar.jpg){: width="600"} +![micro:bit guitar]({{ "/docs/blog/assets/latest-revision/microbit-guitar.jpg" | relative_url }}){: width="600"} But beyond music, sound is the way many of us communicate. Our voice and our accent is part of our identity and personality. When adding ‘sound’ as a feature of the micro:bit we wanted to make sure we gave it a personality too. The careful thought put into the visual and structural elements of the micro:bit, led by Technology Will Save Us in 2015 showed how paying careful attention to design of a device had a huge impact its approachability, and the ease with which people could make an emotional connection to hardware. The sounds for the micro:bit learn from this, and are there to make the micro:bit’s voice friendly and approachable. We’ve been working on a synthesiser to make these amazing sounds, with lots of input from a sound designer to tune it and make it useful. @@ -81,13 +80,13 @@ The microphone, like the microphones on a smart speaker or digital assistant, al ## Exploring AI and ML -![Tensorflow Logo](/docs/blog/assets/latest-revision/tensorflow-logo.png){: width="300"} +![Tensorflow Logo]({{ "/docs/blog/assets/latest-revision/tensorflow-logo.png" | relative_url }}){: width="300"} Within days of getting a device, Gordon Williams, lead developer of [Espruino](https://www.espruino.com/) had the micro:bit supported in their online platform. This allowed JavaScript programs to run on the device, including Espruino’s gesture recognition libraries that were originally designed for bangle.js and use Tensorflow Lite. Unlike the "gestures" you might be used to on the micro:bit, like "shake", this demo allows you to train a machine learning model to recognise any gestures you can collect data for - it takes recordings of the gestures being performed, and builds a model that can recognise them. This means you can have much more complex, subtle gestures, and even customise them for yourself or something you’ve attached the micro:bit to. [Edge Impulse](https://www.edgeimpulse.com/), working similarly fast, took a video recording of each member of the micro:bit team saying “micro:bit” three times (what better way to conclude the weekly team meeting?) and used the Edge Impulse cloud service to create a model that could recognise the word “micro:bit” being said. [You can read more about this demo here](https://www.edgeimpulse.com/blog/voice-activated-microbit), but it clearly shows the possibility of training micro:bits to recognise unique sounds! -![Edge Impulse visualisation](/docs/blog/assets/latest-revision/edge-impulse.png) +![Edge Impulse visualisation]({{ "/docs/blog/assets/latest-revision/edge-impulse.png" | relative_url }}) ## What’s next? diff --git a/bluetooth/apps-and-examples.md b/bluetooth/apps-and-examples.md index 44951d5..7e49520 100644 --- a/bluetooth/apps-and-examples.md +++ b/bluetooth/apps-and-examples.md @@ -45,4 +45,4 @@ Below is a curated list of some Bluetooth applications you might like to read ab - [Bluetooth Low Energy Remote Control for Spotify](https://www.hackster.io/josejuansanchez/bluetooth-low-energy-remote-control-for-spotify-3438d1) - This project allows you to configure your micro:bit to work as a Bluetooth Low Energy remote control for Spotify on macOS. -- [Musical Instrument Controller](https://phwallen.github.io/microbit-music-controller/) - A micro:bit instrument that communities with an iPad via Bluetooth into MIDI controller app that can play music via GarageBand. +- [Musical Instrument Controller](https://phwallen.github.io/microbit-music-controller/) - A micro:bit instrument that communicates with an iPad via Bluetooth into MIDI controller app that can play music via GarageBand. diff --git a/bluetooth/index.md b/bluetooth/index.md index 84101db..e944a24 100644 --- a/bluetooth/index.md +++ b/bluetooth/index.md @@ -33,7 +33,7 @@ The micro:bit supports Bluetooth via a single, custom-developed, BBC micro:bit p A pre-compiled hex file is available to download for V2 that enables all Bluetooth services. -[Bluetooth all services CODAL](/docs/bluetooth/assets/BLE_All_Services_CODAL_0-2-40-ABDLIMTU-P.hex){: .btn.sm-btn download} +[Bluetooth all services CODAL]({{ "/docs/bluetooth/assets/BLE_All_Services_CODAL_0-2-40-ABDLIMTU-P.hex" | relative_url }}){: .btn.sm-btn download} The source for this can be found in the [microbit-v2-samples](https://github.com/lancaster-university/microbit-v2-samples/blob/master/source/samples/BLETest.cpp) repository. @@ -43,9 +43,9 @@ The BBC micro:bit V1 [Bluetooth profile is defined in th You can flash one of two pre-compiled Hex files to the micro:bit V1 that enable bluetooth services. As Bluetooth is memory intensive, these are supplied as either 'without Magnetometer Service' or 'without DFU Service': -[Without magnetometer](/docs/bluetooth/assets/BLE_All_Services_DAL_2-1-1-No-Mag.hex){: .btn.sm-btn download} +[Without magnetometer]({{ "/docs/bluetooth/assets/BLE_All_Services_DAL_2-1-1-No-Mag.hex" | relative_url }}){: .btn.sm-btn download} -[Without DFU](/docs/bluetooth/assets/BLE_All_Services_DAL_2-1-1-No-DFU.hex){: .btn.sm-btn download} +[Without DFU]({{ "/docs/bluetooth/assets/BLE_All_Services_DAL_2-1-1-No-DFU.hex" | relative_url }}){: .btn.sm-btn download} The DAL contains the [C++ source for the BLE service files](https://github.com/lancaster-university/microbit-samples/blob/master/source/examples/bluetooth-services/main.cpp). @@ -103,7 +103,7 @@ As an example, the tools at [ML Machine](https://ml-machine.org/) have been buil Note: on micro:bit V1, there is very limited memory available when also using the Bluetooth extension. Here is an example of how to add and use the Bluetooth extension in MakeCode: -![adding makecode bluetooth extension](/docs/bluetooth/assets/add_bluetooth_extension.gif) +![adding makecode bluetooth extension]({{ "/docs/bluetooth/assets/add_bluetooth_extension.gif" | relative_url }}) ## Apps diff --git a/community/slack.md b/community/slack.md index 6a6ad86..0d2e53a 100644 --- a/community/slack.md +++ b/community/slack.md @@ -3,7 +3,7 @@ layout: page order: title: Get Involved heading: Join the micro:bit developer conversation -description: Sign up for the latest news and join us on Slack +description: Sign up for the latest news permalink: /community/ ref: community lang: en @@ -21,31 +21,9 @@ In addition to our regular [Micro:bit Educational Foundation newsletter](https:/ Subscribe to Developer and ecosystem news -## Join us on the microbit-community slack channel! - -[Slack](https://slack.com) is a messaging service that allows teams and communities to connect online. It's a brilliant tool for live collaboration and the place to be for current micro:bit chatter! - -Note: For technical support you should use [micro:bit help & support](http://support.microbit.org), where you can search for answers and raise tickets to ask the team questions. Slack complements, but does not replace, this portal. - -Slack operate their own [privacy policy](https://slack.com/privacy-policy), make sure you have read and agreed with this before signing up. - -If you'd like to join the slack channel, please fill in the form below. This form collects your email address and system metadata, in accordance with the [privacy policy of Freshdesk](https://www.freshworks.com/privacy/) our support system. We only use this to process an invite to Slack, after which the ticket is closed and archived. If you wish, you can always [deactivate your slack account at a later date.](https://get.slack.help/hc/en-us/articles/203953146-Deactivate-your-Slack-account). - -Please notify help@microbit.org if you wish to have your email address removed from the Freshdesk system. - - - - - ## Other channels and communities In addition to the Foundation's own channels, there are other communities for support and discussion: - [MakeCode micro:bit forum](https://forum.makecode.com/c/microbit/11) Connect with the MakeCode team for more technical details regarding developing micro:bit extensions or working on the MakeCode editor. - -- [Mu Gitter](https://gitter.im/mu-editor) Gitter chat is similar to Slack and aimed at developers using [Mu](https://codewith.mu/) - - [/r/microbit](https://www.reddit.com/r/microbit) A reddit discussion on micro:bit diff --git a/hardware/1-3-revision.md b/hardware/1-3-revision.md index f70c6ea..c0c419d 100644 --- a/hardware/1-3-revision.md +++ b/hardware/1-3-revision.md @@ -15,11 +15,11 @@ lang: en * TOC {:toc} -![1.3 diagram](/docs/hardware/assets/microbit-overview.png) +![1.3 diagram]({{ "/docs/hardware/assets/microbit-overview.png" | relative_url }}) ## Hardware block diagram -![1.3 block](/docs/hardware/assets/v1-block.svg) +![1.3 block]({{ "/docs/hardware/assets/v1-block.svg" | relative_url }}) ## Getting Started With the micro:bit Hardware @@ -29,9 +29,9 @@ The interface processor does not connect to any of the micro:bit peripherals. Two key pieces of information to help understand the internals of the micro:bit are: -- The [schematics](../schematic), which shows the detailed component data and connectivity of the device. +- The [schematics]({{ "/hardware/schematic/" | relative_url }}), which shows the detailed component data and connectivity of the device. -- The [reference design](../reference-design), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. +- The [reference design]({{ "/hardware/reference-design/" | relative_url }}), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. ## Hardware Description @@ -48,7 +48,7 @@ There is an on-board 2.4GHz radio engine used to provide Bluetooth capabilities | RAM | 16KB | Speed | 16MHz | Debug | SWD, jlink/OB -| More Info | [here](/software) +| More Info | [here]({{ "/software" | relative_url }}) ### Bluetooth Wireless Communication @@ -65,7 +65,7 @@ This allows the micro:bit to communicate with a wide range of Bluetooth devices, | Role | [GAP Peripheral](https://bluetooth-developer.blogspot.com/2016/07/microbit-and-bluetooth-roles.html) | Congestion avoidance | Adaptive Frequency Hopping | Profiles | 1 [BBC micro:bit profile](https://lancaster-university.github.io/microbit-docs/ble/profile/) -| More Info | [here](/bluetooth) +| More Info | [here]({{ "/bluetooth" | relative_url }}) ### Low Level Radio Communications @@ -179,10 +179,10 @@ The edge connector brings out many of the GPIO circuits of the application proce || 3 may be assigned to an optional SPI communications interface || 3 may be assigned for up to 3 simultaneous touch sensing inputs |ADC resolution | 10 bit (0..1023) -| Edge Connector| [Edge connector](/hardware/edgeconnector/) +| Edge Connector| [Edge connector]({{ "/hardware/edgeconnector/" | relative_url }}) | Pitch | 1.27mm, 80 way double sided. | Pads| 5 pads, with 4mm holes -| More Info | [here](/hardware/edgeconnector/) +| More Info | [here]({{ "/hardware/edgeconnector/" | relative_url }}) ### Power Supply @@ -196,7 +196,7 @@ Power to the micro:bit may be provided via the USB connection, via the interface | Battery connector | JST X2B-PH-SM4-TB | Battery current | TBC | Max current provided via edge connector | 90mA -| More Info | [here](../powersupply) +| More Info | [here]({{ "/hardware/powersupply/" | relative_url }}) ### Interface @@ -210,7 +210,7 @@ The interface chip handles the USB connection, and is used for flashing new code | RAM | 16KB | Speed | 16MHz | Debug capabilities | SWD -| More Info | [here](/software/daplink-interface/) +| More Info | [here]({{ "/software/daplink-interface/" | relative_url }}) ### USB Communications @@ -225,7 +225,7 @@ The micro:bit has an on-board USB communications stack, that is built into the f | | [Communications Device Class (CDC)](https://en.wikipedia.org/wiki/USB_communications_device_class) | | [CMSIS-DAP HID & WinUSB](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) | | [WebUSB CMSIS-DAP HID](https://wicg.github.io/webusb/) -| More Info | [here](/software/daplink-interface/) +| More Info | [here]({{ "/software/daplink-interface/" | relative_url }}) ### Debugging @@ -249,9 +249,9 @@ We have some [nice 2D and 3D CAD drawings and models of the micro:bit](https://g ## Further information -- [Schematic](../schematic) +- [Schematic]({{ "/hardware/schematic" | relative_url }}) -- [Reference Design](../reference-design) +- [Reference Design]({{ "/hardware/reference-design" | relative_url }}) - [Nordic NRF51 datasheet](http://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.1.pdf) @@ -275,4 +275,4 @@ We have some [nice 2D and 3D CAD drawings and models of the micro:bit](https://g - [Arm Mbed overview](https://www.mbed.com/en/about-mbed/what-mbed/) -- [Fritzing diagram, contributed by Kok Ho Huen](/docs/hardware/assets/Microbit.fzpz.zip) +- [Fritzing diagram, contributed by Kok Ho Huen]({{ "/docs/hardware/assets/Microbit.fzpz.zip" | relative_url }}) diff --git a/hardware/1-5-revision.md b/hardware/1-5-revision.md index 60566f8..55a27de 100644 --- a/hardware/1-5-revision.md +++ b/hardware/1-5-revision.md @@ -15,7 +15,7 @@ lang: en * TOC {:toc} -![img](/docs/hardware/assets/microbit-overview-1-5.png) +![img]({{ "/docs/hardware/assets/microbit-overview-1-5.png" | relative_url }}) ## Getting Started With the micro:bit Hardware @@ -28,9 +28,9 @@ The interface processor does not connect to any of the micro:bit peripherals. Two key pieces of information to help understand the internals of the micro:bit are: -- The [schematics](../schematic), which shows the detailed component data and connectivity of the device. +- The [schematics]({{ "/hardware/schematic" | relative_url }}), which shows the detailed component data and connectivity of the device. -- The [reference design](../reference-design), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. +- The [reference design]({{ "/hardware/reference-design" | relative_url }}), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. ## Hardware Description @@ -49,7 +49,7 @@ There is an on-board 2.4GHz radio engine used to provide Bluetooth capabilities | RAM | 16KB | Speed | 16MHz | Debug | SWD, jlink/OB -| More Info | [Software](../../software), [NRF51 datasheet](http://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.1.pdf) +| More Info | [Software]({{ "/software" | relative_url }}), [NRF51 datasheet](http://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.1.pdf) ### Bluetooth Wireless Communication @@ -66,7 +66,7 @@ This allows the micro:bit to communicate with a wide range of Bluetooth devices, | Role | [GAP Peripheral](http://bluetooth-developer.blogspot.co.uk/2016/07/microbit-and-bluetooth-roles.html) | Congestion avoidance | Adaptive Frequency Hopping | Profiles | [BBC micro:bit profile](https://lancaster-university.github.io/microbit-docs/ble/profile/) -| More Info | [Bluetooth](../../bluetooth) +| More Info | [Bluetooth]({{ "/bluetooth" | relative_url }}) ### Low Level Radio Communications @@ -169,7 +169,7 @@ The edge connector brings out many of the GPIO circuits of the application proce || 3 may be assigned to an optional SPI communications interface || 3 may be assigned for up to 3 simultaneous touch sensing inputs |ADC resolution | 10 bit (0..1023) -| Edge Connector| [Edge connector](/hardware/edgeconnector/) +| Edge Connector| [Edge connector]({{ "/hardware/edgeconnector/" | relative_url }}) | Pitch | 1.27mm, 80 way double sided. | Pads| 5 pads, with 4mm holes @@ -185,7 +185,7 @@ Power to the micro:bit may be provided via the USB connection, via the interface | Battery connector | JST X2B-PH-SM4-TB | Battery current | TBC | Max current provided via edge connector | 90mA -| More Info | [Power supply](../powersupply) +| More Info | [Power supply]({{ "/hardware/powersupply" | relative_url }}) ### Interface @@ -199,7 +199,7 @@ The interface chip handles the USB connection, and is used for flashing new code | RAM | 16KB | Speed | [16Mhz (crystal)](https://github.com/Armmbed/DAPLink/blob/f499eb6ec4a847a2b78831fe1acc856fd8eb2f28/source/hic_hal/freescale/kl26z/MKL26Z4/system_MKL26Z4.c#L69) 48MHz (max) | Debug capabilities | SWD -| More Info | [DAPLink](../../software/daplink-interface/), [KL26 reference manual (behind login)](https://www.nxp.com/webapp/Download?colCode=KL26P121M48SF4RM) [KL26Z datasheet](http://www.nxp.com/docs/pcn_attachments/16440_KL26P64M48SF5_Rev.4.pdf) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}), [KL26 reference manual (behind login)](https://www.nxp.com/webapp/Download?colCode=KL26P121M48SF4RM) [KL26Z datasheet](http://www.nxp.com/docs/pcn_attachments/16440_KL26P64M48SF5_Rev.4.pdf) ### USB Communications @@ -214,7 +214,7 @@ The micro:bit has an on-board USB communications stack, that is built into the f | | [Communications Device Class (CDC)](https://en.wikipedia.org/wiki/USB_communications_device_class) | | [CMSIS-DAP HID & WinUSB](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) | | [WebUSB CMSIS-DAP HID](https://wicg.github.io/webusb/) -| More Info | [DAPLink](../../software/daplink-interface/) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}) ### Debugging @@ -244,4 +244,4 @@ We have some [nice 2D and 3D CAD drawings and models of the micro:bit](https://g - [SPI 'specification'](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus) -- [Fritzing diagram, contributed by Kok Ho Huen](/docs/hardware/assets/Microbit.fzpz.zip) +- [Fritzing diagram, contributed by Kok Ho Huen]({{ "/docs/hardware/assets/Microbit.fzpz.zip" | relative_url }}) diff --git a/hardware/2-0-revision.md b/hardware/2-0-revision.md index 2c8cf44..c44a887 100644 --- a/hardware/2-0-revision.md +++ b/hardware/2-0-revision.md @@ -16,11 +16,11 @@ lang: en * TOC {:toc} -![Board overview 2.0](/docs/hardware/assets/microbit-overview-2.png) +![Board overview 2.0]({{ "/docs/hardware/assets/microbit-overview-2.png" | relative_url }}) ## Hardware block diagram -![2.0 block](/docs/hardware/assets/v2-block.svg) +![2.0 block]({{ "/docs/hardware/assets/v2-block.svg" | relative_url }}) ## Getting Started With the micro:bit Hardware @@ -30,9 +30,9 @@ An interface processor is connected to the application processor and manages com Two key pieces of information to help understand the internals of the micro:bit are: -- The [schematics](../schematic), which shows the detailed component data and connectivity of the device. +- The [schematics]({{ "/hardware/schematic/" | relative_url }}), which shows the detailed component data and connectivity of the device. -- The [reference design](../reference-design), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. +- The [reference design]({{ "/hardware/reference-design/" | relative_url }}), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. ## Hardware Description @@ -51,7 +51,7 @@ There is an on-board 2.4GHz radio peripheral used to provide Bluetooth and custo | RAM | 128KB | Speed | 64MHz | Debug | [SWD](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52833%2Fdif.html), [J-Link/OB](https://www.segger.com/products/debug-probes/j-link/models/j-link-lite/j-link-lite-cortex-m/) -| More Info | [Software](../../software), [nRF52 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=3_1) +| More Info | [Software]({{ "/software/" | relative_url }}), [nRF52 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=3_1) ### Bluetooth Wireless Communication @@ -68,7 +68,7 @@ This allows the micro:bit to communicate with a wide range of Bluetooth devices, | Role | [GAP Peripheral & GAP Central](https://bluetooth-developer.blogspot.com/2016/07/microbit-and-bluetooth-roles.html) | Congestion avoidance | Adaptive Frequency Hopping | Profiles | [BBC micro:bit profile](https://lancaster-university.github.io/microbit-docs/ble/profile/) -| More Info | [Bluetooth](../../bluetooth) +| More Info | [Bluetooth]({{ "/bluetooth/" | relative_url }}) ### Low level radio communications @@ -198,7 +198,7 @@ The edge connector brings out many of the GPIO circuits of the application proce || 3 may be assigned to an optional SPI communications interface || 3 may be assigned for up to 3 simultaneous touch sensing inputs |ADC resolution | 10 bit (0..1023) -| Edge Connector| [Edge connector](/hardware/edgeconnector/) +| Edge Connector| [Edge connector]({{ "/hardware/edgeconnector/" | relative_url }}) | Pitch | 1.27mm, 80 way double sided. | Pads| 5 pads, with 4mm holes @@ -213,7 +213,7 @@ Power to the micro:bit may be provided via 5V on the USB connector, or via a 3V | On-board Peripherals budget | 90mA | Battery connector | JST S2B-PH-SM4-TB | Max current provided via edge connector | 190mA -| More Info | [Power supply](../powersupply) +| More Info | [Power supply]({{ "/hardware/powersupply" | relative_url }}) ### Interface @@ -227,7 +227,7 @@ The interface chip handles the USB connection, and is used for flashing new code | RAM | 16KB | Speed | 48MHz | Debug capabilities | [SWD](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52820.html) -| More Info | [DAPLink](/software/daplink-interface/), [KL27 reference manual (behind login)](https://www.nxp.com/webapp/Download?colCode=KL27P64M48SF6RM) [KL27 datasheet](https://www.nxp.com/docs/en/data-sheet/KL27P64M48SF6.pdf) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}), [KL27 reference manual (behind login)](https://www.nxp.com/webapp/Download?colCode=KL27P64M48SF6RM) [KL27 datasheet](https://www.nxp.com/docs/en/data-sheet/KL27P64M48SF6.pdf) ### USB communications @@ -243,7 +243,7 @@ MICROBIT drive in order to load code into the application processor. It also all | | [Communications Device Class (CDC)](https://en.wikipedia.org/wiki/USB_communications_device_class) | | [CMSIS-DAP HID & WinUSB](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) | | [WebUSB CMSIS-DAP HID](https://wicg.github.io/webusb/) -| More Info | [DAPLink](/software/daplink-interface/) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}) ### Debugging @@ -272,4 +272,4 @@ We have some [nice 2D and 3D CAD drawings and models of the micro:bit](https://g - [SPI 'specification'](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus) -- [Fritzing diagram, contributed by Kok Ho Huen](/docs/hardware/assets/Microbit.fzpz.zip) +- [Fritzing diagram, contributed by Kok Ho Huen]({{ "/docs/hardware/assets/Microbit.fzpz.zip" | relative_url }}) diff --git a/hardware/assets/microbit-overview-2-2.png b/hardware/assets/microbit-overview-2-2.png index 0adad66..90262dc 100644 Binary files a/hardware/assets/microbit-overview-2-2.png and b/hardware/assets/microbit-overview-2-2.png differ diff --git a/hardware/assets/microbit-overview-2-2.svg b/hardware/assets/microbit-overview-2-2.svg index 4f91ee6..bda3091 100644 --- a/hardware/assets/microbit-overview-2-2.svg +++ b/hardware/assets/microbit-overview-2-2.svg @@ -7,9 +7,9 @@ viewBox="0 0 677.86272 546.0994" id="svg3347" version="1.1" - inkscape:version="1.1.2 (b8e25be8, 2022-02-05)" + inkscape:version="1.2 (dc2aeda, 2022-05-15)" sodipodi:docname="microbit-overview-2-2.svg" - inkscape:export-filename="/Users/mark/Desktop/Github/dev-docs/hardware/assets/microbit-overview-2-2.png" + inkscape:export-filename="microbit-overview-2-2.png" inkscape:export-xdpi="96" inkscape:export-ydpi="96" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" @@ -1527,19 +1527,21 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="1257.1429" + inkscape:cx="1145.7143" inkscape:cy="1024.2857" inkscape:document-units="mm" - inkscape:current-layer="layer1" + inkscape:current-layer="g3394" showgrid="false" units="px" height="2064px" - inkscape:window-width="1920" - inkscape:window-height="1027" - inkscape:window-x="137" - inkscape:window-y="36" + inkscape:window-width="1470" + inkscape:window-height="890" + inkscape:window-x="0" + inkscape:window-y="38" inkscape:window-maximized="0" - inkscape:pagecheckerboard="0" /> + inkscape:pagecheckerboard="0" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> @@ -3363,37 +3365,37 @@ USB + id="tspan10603">USB BLE ANTENNA + id="tspan10607">BLE ANTENNA MICROPHONE + id="tspan10611">MICROPHONE RESET + id="tspan10615">RESET BATTERY + id="tspan10619">BATTERY @@ -3702,38 +3704,38 @@ SPEAKER + id="tspan10623">SPEAKER PROCESSOR + id="tspan10627">PROCESSOR ACCELEROMETER + id="tspan10631">ACCELEROMETER COMPASS + id="tspan10635">COMPASS PINS + id="tspan10639">PINS @@ -3773,25 +3775,25 @@ x="383.92319" xml:space="preserve" id="text1194-7-3-4" - style="font-style:normal;font-weight:normal;font-size:7.20758px;line-height:0%;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1196-1-0);clip-rule:evenodd;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.372445" + style="font-style:normal;font-weight:normal;font-size:7.20758px;line-height:0%;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1196-1-0);clip-rule:evenodd;display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.372445" transform="scale(1.0301142,0.97076618)">V2 + id="tspan10643">V2 .00 + id="tspan10647">.00 ST LSM303AGR - Power indictator + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:19.7556px;line-height:0.8;font-family:'GT Walsheim', sans-serif;-inkscape-font-specification:'GT Walsheim Semi-Bold';stroke-width:0.264583px">Power indicator Back  - JST connection for 3VJST-PH connection for 3V- USB interface chipUSB interface MCU  + Target MCU    + Magnetometer & Accelerometer    USB activity indictator + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:19.7556px;line-height:0.8;font-family:'GT Walsheim', sans-serif;-inkscape-font-specification:'GT Walsheim Semi-Bold';stroke-width:0.264583px">USB activity indicator + ST LSM303AGR diff --git a/hardware/edgeconnector.md b/hardware/edgeconnector.md index c0896e3..ac7df91 100644 --- a/hardware/edgeconnector.md +++ b/hardware/edgeconnector.md @@ -32,7 +32,7 @@ Pin 9 is no longer jointly shared with the LED display, but Pin 8 and Pin 9 can | V2 | V1 | ---- | ---- -| ![edge connector V2](/docs/hardware/assets/edge-connector-2.svg) | ![edge connector v1](/docs/hardware/assets/edge_connector.svg) +| ![edge connector V2]({{ "/docs/hardware/assets/edge-connector-2.svg" | relative_url }}) | ![edge connector v1]({{ "/docs/hardware/assets/edge_connector.svg" | relative_url }}) ### microbit.pinout.xyz @@ -143,7 +143,7 @@ This table shows various data about each of the pins on the micro:bit edge conne | s/w | the name that is used in the DAL runtime software | functions | all possible functions, **BOLD** for default. brackets indicate use with caution | dir | the startup conditions (direction) when the micro:bit boots: Input or Output -| pull? | pull up or down resistors. e10Mu means an external 10Mohm pullup, i12Kd means an internal 12K pull down. +| pull? | pull resistors: i12Kd = processor internal 12Kohm configurable pull-up/down/none; e10Mu = external 10Mohm fixed pull-up. #### Notes @@ -153,11 +153,11 @@ This table shows various data about each of the pins on the micro:bit edge conne 3. The DAL DynamicPWM driver (and the underlying Nordic timer peripherals) dictate that PWM can only be active on 3 pins simultaneously. Any attempt to allocate a 4th pin for PWM use, will disable one of the existing PWM pins. -4. Digital input pins are by default configured with internal pull down resistors when the pins are configured by the DAL. +4. A digital input pin's internal pull resistor is configured by default to pull-down by the DAL/CODAL. 5. Functions in brackets should be used with caution, as other features of the device may become unstable, degraded or non operational, if their normal use is not disabled in the software first. -6. The source file for [the pinout table](/docs/hardware/pinmap.csv) is held in CSV format. You can load this into a spreadsheet and sort and filter it in any way that makes sense to you. There is also a [zipped Python script](/docs/hardware/csv2md.zip) in this folder that you can download to re-generate the markdown table version of the pin map used on this page, from the .csv file. +6. The source file for [the pinout table]({{ "/docs/hardware/pinmap.csv" | relative_url }}) is held in CSV format. You can load this into a spreadsheet and sort and filter it in any way that makes sense to you. There is also a [zipped Python script]({{ "/docs/hardware/csv2md.zip" | relative_url}}) in this folder that you can download to re-generate the markdown table version of the pin map used on this page, from the .csv file. 7. The pin marked 'ACCESSIBILITY' is used to enable/disable an on-board accessibility mode, and should not be used for anything else (even though it can be used as a GPIO for testing). Future versions of the official micro:bit editors may remove the ability to write to this pin. @@ -189,7 +189,7 @@ The main reason you might choose to use these pins for other purposes would be i ## Power Supply Capabilities -There is a dedicated page on [power supply capabilities and parameters](/hardware/powersupply), which better defines how you can use the GND and 3V rings +There is a dedicated page on [power supply capabilities and parameters]({{ "/hardware/powersupply" | relative_url }}), which better defines how you can use the GND and 3V rings ## GPIO Capabilities @@ -272,7 +272,7 @@ Can you help to find or design a better connection solution to the micro:bit edg ## Further information -- [micro:bit schematics](../schematic) +- [micro:bit schematics]({{ "/hardware/schematic" | relative_url }}) - [micro:bit CAD resources (Kitronik)](https://www.kitronik.co.uk/blog/bbc-microbit-cad-resources/) diff --git a/hardware/edgeconnector_ds.md b/hardware/edgeconnector_ds.md index a6c4743..d72115f 100644 --- a/hardware/edgeconnector_ds.md +++ b/hardware/edgeconnector_ds.md @@ -9,4 +9,4 @@ ref: hardware lang: en --- -This page has been merged with [edge connector & micro:bit pinout](../edgeconnector) +This page has been merged with [edge connector & micro:bit pinout]({{ "/hardware/edgeconnector" | relative_url }}) diff --git a/hardware/i2c-shared.md b/hardware/i2c-shared.md index d490213..646c70a 100644 --- a/hardware/i2c-shared.md +++ b/hardware/i2c-shared.md @@ -11,13 +11,13 @@ lang: en ## Use of the shared I2C bus -The motion sensors on the board are on the same I2C bus as the edge connector I2C pins. This means that if you have an accessory that uses I2C on this bus, you need to check it won’t clash with any of the possible on-board sensors. The [latest board revision does not share the I2C bus](../i2c/). +The motion sensors on the board are on the same I2C bus as the edge connector I2C pins. This means that if you have an accessory that uses I2C on this bus, you need to check it won’t clash with any of the possible on-board sensors. The [latest board revision does not share the I2C bus]({{ "/hardware/i2c/" | relative_url }}). The V1.5 micro:bit has a footprint for two different motion sensors: one made by ST (the LSM303AGR) and one by NXP (FXOS8700CQ). The micro:bit DAL supports both of these sensors, detecting them at runtime. To date, all V1.5 boards have been manufactured with the LSM303AGR, however we may switch to the NXP part. Before doing so we will perform a round of testing and notify the [DAL and Devices mailing list.](http://eepurl.com/dyRx-v) ### I2C block diagram -![I2C block](/docs/hardware/assets/nrf51i2c.png) +![I2C block]({{ "/docs/hardware/assets/nrf51i2c.png" | relative_url }}) ### Table of addresses used diff --git a/hardware/i2c.md b/hardware/i2c.md index f827880..3544086 100644 --- a/hardware/i2c.md +++ b/hardware/i2c.md @@ -11,7 +11,7 @@ lang: en ## Use of the I2C bus -The I2C bus for the latest revision of the micro:bit separates the I2C signals into Internal and External use. The [previous revisions share the I2C bus](../i2c-shared/) with the Edge connector and the target MCU. +The I2C bus for the latest revision of the micro:bit separates the I2C signals into Internal and External use. The [previous revisions share the I2C bus]({{ "/hardware/i2c-shared/" | relative_url }}) with the Edge connector and the target MCU. The internal signals run to the target Nordic chip and communicate with the motion sensor and interface chip. @@ -19,7 +19,7 @@ The external lines run to the edge connector and can be used for accessories. ### I2C block diagram -![I2C block](/docs/hardware/assets/i2c-diagram.png) +![I2C block]({{ "/docs/hardware/assets/i2c-diagram.png" | relative_url }}) ### Table of addresses used @@ -28,7 +28,7 @@ The external lines run to the edge connector and can be used for accessories. | motion sensor variant 1 (LSM303AGR) | 0x19 (0x32/0x33) | 0x1E (0x3C/0x3D) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) | | motion sensor variant 2 (FXOS8700CQ) | 0x1F (0x3E/0x3F) | 0x1F (0x3E/0x3F) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) | -While the micro:bit V2 has a dedicated bus for the on-board I2C peripherals, the micro:bit V1 shares the same bus for on-board and external I2C devices. Please check the [V1 shared bus](../i2c-shared/) documentation to check the reserved I2C addresses. +While the micro:bit V2 has a dedicated bus for the on-board I2C peripherals, the micro:bit V1 shares the same bus for on-board and external I2C devices. Please check the [V1 shared bus]({{ "/hardware/i2c-shared/" | relative_url }}) documentation to check the reserved I2C addresses. ### Table of address used by micro:bit accessories (please edit) diff --git a/hardware/index.md b/hardware/index.md index 937b99a..4aa2cf6 100644 --- a/hardware/index.md +++ b/hardware/index.md @@ -24,15 +24,15 @@ An interface processor is connected to the application processor and manages com Two key pieces of information to help understand the internals of the micro:bit are: -- The [schematics](./schematic), which shows the detailed component data and connectivity of the device. +- The [schematics]({{ "/hardware/schematic" | relative_url }}), which shows the detailed component data and connectivity of the device. -- The [reference design](./reference-design), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. +- The [reference design]({{ "/hardware/reference-design" | relative_url }}), which is a complete module design of a compatible micro:bit, and is designed to be a starting point for anyone interested in understanding the micro:bit or designing their own variant. -![Board overview 2.2](/docs/hardware/assets/microbit-overview-2-2.png) +![Board overview 2.2]({{ "/docs/hardware/assets/microbit-overview-2-2.png" | relative_url }}) ## Hardware block diagram -![2.2 block](/docs/hardware/assets/v2-2-block.svg) +![2.2 block]({{ "/docs/hardware/assets/v2-2-block.svg" | relative_url }}) ## Hardware Description @@ -52,7 +52,7 @@ There is an on-board 2.4GHz radio peripheral used to provide Bluetooth and custo | RAM | 128KB | Speed | 64MHz | Debug | [SWD](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52833%2Fdif.html) -| More Info | [Software](../software), [nRF52 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=3_1) +| More Info | [Software]({{ "/software" | relative_url }}), [nRF52 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=3_1) ### Bluetooth Wireless Communication @@ -69,7 +69,7 @@ This allows the micro:bit to communicate with a wide range of Bluetooth devices, | Role | [GAP Peripheral & GAP Central](https://bluetooth-developer.blogspot.com/2016/07/microbit-and-bluetooth-roles.html) | Congestion avoidance | Adaptive Frequency Hopping | Profiles | [BBC micro:bit profile](https://lancaster-university.github.io/microbit-docs/ble/profile/) -| More Info | [Bluetooth](../bluetooth) +| More Info | [Bluetooth]({{ "/bluetooth" | relative_url }}) ### Low level radio communications @@ -199,7 +199,7 @@ The edge connector brings out many of the GPIO circuits of the application proce || 3 may be assigned to an optional SPI communications interface || 3 may be assigned for up to 3 simultaneous touch sensing inputs |ADC resolution | 10 bit (0..1023) -| Edge Connector| [Edge connector](/hardware/edgeconnector/) +| Edge Connector| [Edge connector]({{ "/hardware/edgeconnector/" | relative_url }}) | Pitch | 1.27mm, 80 way double sided. | Pads| 5 pads, with 4mm holes @@ -214,7 +214,7 @@ Power to the micro:bit may be provided via 5V on the USB connector, or via a 3V | On-board Peripherals budget | 90mA | Battery connector | JST S2B-PH-SM4-TB | Max current provided via edge connector | 190mA -| More Info | [Power supply](./powersupply) +| More Info | [Power supply]({{ "/hardware/powersupply" | relative_url }}) ### Interface @@ -232,7 +232,7 @@ As the two chip variants are of the same family, the same DAPLink firmware image | RAM | 128KB (only 32 KB used) | Speed | 64MHz | Debug capabilities | [SWD](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html) -| More Info | [DAPLink](/software/daplink-interface/), [nRF52833 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=4_1) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}), [nRF52833 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52833.html&cp=4_1) | item | details | --- | --- @@ -242,7 +242,7 @@ As the two chip variants are of the same family, the same DAPLink firmware image | RAM | 32KB | Speed | 64MHz | Debug capabilities | [SWD](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52820.html) -| More Info | [DAPLink](/software/daplink-interface/), [nRF52820 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52820.html) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}), [nRF52820 datasheet](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52820.html) ### USB communications @@ -258,7 +258,7 @@ MICROBIT drive in order to load code into the application processor. It also all | | [Communications Device Class (CDC)](https://en.wikipedia.org/wiki/USB_communications_device_class) | | [CMSIS-DAP HID & WinUSB](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) | | [WebUSB CMSIS-DAP HID](https://wicg.github.io/webusb/) -| More Info | [DAPLink](/software/daplink-interface/) +| More Info | [DAPLink]({{ "/software/daplink-interface/" | relative_url }}) ### Debugging @@ -286,4 +286,4 @@ We have some [nice 2D and 3D CAD drawings and models of the micro:bit](https://g - [SPI 'specification'](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus) -- [Fritzing diagram, contributed by Kok Ho Huen](/docs/hardware/assets/Microbit.fzpz.zip) +- [Fritzing diagram, contributed by Kok Ho Huen]({{ "/docs/hardware/assets/Microbit.fzpz.zip" | relative_url }}) diff --git a/hardware/powersupply.md b/hardware/powersupply.md index ae0f47b..97b0bc7 100644 --- a/hardware/powersupply.md +++ b/hardware/powersupply.md @@ -16,7 +16,7 @@ Power to the micro:bit may be provided via: - USB connection via the interface chip (which has an on-board regulator) - A battery plugged into the JST connector. - The 3V and GND pins on the Edge Connector -- The two [rounded rectangular pads](/docs/accessories/assets/making-accessories-d7c25.png) on the rear right of the board +- The two [rounded rectangular pads]({{ "/docs/accessories/assets/making-accessories-d7c25.png" | relative_url }}) on the rear right of the board Power from the micro:bit can be provided by the 3V and GND pins to small external circuits. @@ -89,16 +89,16 @@ Also, some USB battery packs will switch off automatically when the current draw When powered from a battery plugged into the top battery connector, the V1 interface chip is not powered up, and the System LED will not be turned on. If your code does not display anything on the display, this might look like the micro:bit is not working, but it is. On micro:bit V2 the battery power goes through the on-board regulator and powers the interface chip as well. If the micro:bit board is not in a sleep mode, the red LED (left of the USB connector) should be light up. -Because the V1 target chip is powered almost directly (there is only one BAT60 diode between the supply and the target nRF51 power rails), a fully charged **LiPoly battery** that is specified to reach 4.2V **will be give greater than the [3.6V maximum that the nRF51 can withstand**](#key-voltages) +Because the V1 target chip is powered almost directly (there is only one BAT60 diode between the supply and the target nRF51 power rails), a fully charged **LiPoly battery** that is specified to reach 4.2V **will give greater than the [3.6V maximum that the nRF51 can withstand](#key-voltages)**. There is further information about the [battery connection and use](https://support.microbit.org/solution/articles/19000013982-how-do-i-power-my-micro-bit-/en) in our knowledgebase. ### 3V Ring Powering The micro:bit may be powered from the 3V/GND rings on the edge connector. -There are also two [rounded rectangular pads](/docs/accessories/assets/making-accessories-d7c25.png) on the far right of the back of the PCB that can be used to supply power (e.g. solderable pads for a 2xAAA holder that has wires or pins at one edge). +There are also two [rounded rectangular pads]({{ "/docs/accessories/assets/making-accessories-d7c25.png" | relative_url }}) on the far right of the back of the PCB that can be used to supply power (e.g. solderable pads for a 2xAAA holder that has wires or pins at one edge). -![Picture of the two rounded rectangular pads](/docs/accessories/assets/making-accessories-d7c25.png) +![Picture of the two rounded rectangular pads]({{ "/docs/accessories/assets/making-accessories-d7c25.png" | relative_url }}) The upper pad is 0V or GND and the lower pad is 3V. @@ -110,9 +110,9 @@ When powering from the 3V ring or the rounded rectangular pads on the PCB, you s ### Power Supply Architecture V1 -The [schematic](/hardware/schematic/) shows the architecture of the power supply. +The [schematic]({{ "/hardware/schematic/" | relative_url }}) shows the architecture of the power supply. Key points to note are that there are two BAT60A diodes, one from the 3.3V supply from the KL26/27 interface chip, and one from the external battery connector. -Note that the 3V ring on the edge connector is V_TGT, which is the raw supply provided to all on-board chips, so this is why extra care should be taken when connecting directly to the 3V ring or the 3V [rounded rectangular pad](/docs/accessories/assets/making-accessories-d7c25.png). +Note that the 3V ring on the edge connector is V_TGT, which is the raw supply provided to all on-board chips, so this is why extra care should be taken when connecting directly to the 3V ring or the 3V [rounded rectangular pad]({{ "/docs/accessories/assets/making-accessories-d7c25.png" | relative_url }}). The BAT60A devices have a low Vf rating, you can read about this in the [BAT60A datasheet](http://www.infineon.com/dgdl/Infineon-BAT60ASERIES-DS-v01_01-en.pdf?fileId=db3a304313d846880113def70c9304a9) diff --git a/hardware/reference-design.md b/hardware/reference-design.md index 8a61d5c..3a0a282 100644 --- a/hardware/reference-design.md +++ b/hardware/reference-design.md @@ -13,9 +13,9 @@ review-with: jonnya ## Reference Design -As well as learning about how the micro:bit is designed from the [schematic](../../hardware/schematic/), we want to enable people to build their own hardware products and projects based on the micro:bit. This means taking all the hardware that you've connected to your micro:bit and putting down on one circuit board. +As well as learning about how the micro:bit is designed from the [schematic]({{ "/hardware/schematic/" | relative_url }}), we want to enable people to build their own hardware products and projects based on the micro:bit. This means taking all the hardware that you've connected to your micro:bit and putting down on one circuit board. -![micro:bit plant monitor](/docs/hardware/assets/referencedesign-57055.png){:width="40%"} +![micro:bit plant monitor]({{ "/docs/hardware/assets/referencedesign-57055.png" | relative_url }}){:width="40%"} *Turn all these cables into a single board!* @@ -41,14 +41,14 @@ Furthermore, the micro:bit has a built in programmer and debugger, which is impo Any code that you write for your micro:bit can be run on the reference design without modification. -![micro:bit reference design back](/docs/hardware/assets/referencedesign-76a11.png){:width="40%"} -![micro:bit reference design front](/docs/hardware/assets/referencedesign-2988d.png){:width="37%"} +![micro:bit reference design back]({{ "/docs/hardware/assets/referencedesign-76a11.png" | relative_url }}){:width="40%"} +![micro:bit reference design front]({{ "/docs/hardware/assets/referencedesign-2988d.png" | relative_url }}){:width="37%"} ## Modularity The reference design is laid out in a very modular way, so that someone working with it can easily customise the board to include only the parts they need. -![the reference design is modular](/docs/hardware/assets/referencedesign-9cfb5.png). +![the reference design is modular]({{ "/docs/hardware/assets/referencedesign-9cfb5.png" | relative_url }}). For example, if you want to make something really tiny that doesn't make use of all the expansion or the LEDs, you could make use of the 'bare minimum subset' section of the board, and have a separate programmer. @@ -59,9 +59,9 @@ Seedstudio, and commonly used on things like Adafruit BLE boards. This design is fully open source, and we're happy to accept pull requests for variants that use other modules, or improvements. -For your own projects, using a different module is as simple as wiring the right pins. The [hardware](../../hardware/) page has a detailed pinmap. Likewise, contributions to this pinmap document for other popular modules are welcome. +For your own projects, using a different module is as simple as wiring the right pins. The [hardware]({{ "/hardware/" | relative_url }}) page has a detailed pinmap. Likewise, contributions to this pinmap document for other popular modules are welcome. -There is a [list of nRF51822 modules maintained by Nordic Semiconductor](https://www.nordicsemi.com/eng/Products/3rd-Party-Bluetooth-low-energy-Modules), from which you could choose any module that has all 31 GPIOs broken out. If your design doesn't use all of the pins on the edge connector and you are able to recompile your software for your custom design ([for example using Mbed](/software/runtime/)) then you could choose a range of other modules. +There is a [list of nRF51822 modules maintained by Nordic Semiconductor](https://www.nordicsemi.com/eng/Products/3rd-Party-Bluetooth-low-energy-Modules), from which you could choose any module that has all 31 GPIOs broken out. If your design doesn't use all of the pins on the edge connector and you are able to recompile your software for your custom design ([for example using Mbed]({{ "/software/runtime/" | relative_url }})) then you could choose a range of other modules. ## Software Bringup @@ -69,17 +69,17 @@ Unlike a micro:bit, your device won't come pre-flashed! Neither of the MCUs will ### KL26 Software -As described on the [interface firmware](/software/daplink-interface) page, there is a bootloader and a main interface program that needs to be flashed to the KL26. +As described on the [interface firmware]({{ "/software/daplink-interface" | relative_url }}) page, there is a bootloader and a main interface program that needs to be flashed to the KL26. -The hex file/image that contains both of these together can be found here: [hex file](/docs/hardware/assets/kl26z_bl_if_BL0233_IF0234.hex.zip) +The hex file/image that contains both of these together can be found here: [hex file]({{ "/docs/hardware/assets/kl26z_bl_if_BL0233_IF0234.hex.zip" | relative_url }}) You should flash this onto your KL26 using the header labelled MKL26 prog: -![KL26 program header](/docs/hardware/assets/referencedesign-7eaaa.png) +![KL26 program header]({{ "/docs/hardware/assets/referencedesign-7eaaa.png" | relative_url }}) If you don't have a debugger, the nRF51-DK board can be used as a J-link debugger with the following configuration. -![Using an nRF51-DK as a debugger](/docs/hardware/assets/referencedesign-609b1.png){:width="40%"} +![Using an nRF51-DK as a debugger]({{ "/docs/hardware/assets/referencedesign-609b1.png" | relative_url }}){:width="40%"} Please see [this page](https://os.mbed.com/users/MarceloSalazar/notebook/programming-a-minibeacon-bluetooth-module-nordic-n/) for more information. @@ -89,7 +89,7 @@ Once you have flashed the KL26 then you can use the USB interface on the referen If you have chosen not to include a KL26 circuit then you can use an external programmer and the nRF51prog header: -![nRF51 prog header](/docs/hardware/assets/referencedesign-d1599.png) +![nRF51 prog header]({{ "/docs/hardware/assets/referencedesign-d1599.png" | relative_url }}) ## Design and BOM @@ -97,7 +97,7 @@ The documentation of the reference design is hosted at GitHub where schematics, [micro:bit reference design GitHub page](https://github.com/microbit-foundation/microbit-reference-design) -The reference design uses the same ICs as the micro:bit itself, so to avoid duplication of documentation, please refer to the [micro:bit hardware page](../../hardware/) for further details. +The reference design uses the same ICs as the micro:bit itself, so to avoid duplication of documentation, please refer to the [micro:bit hardware page]({{ "/hardware/" | relative_url }}) for further details. ## Design Software diff --git a/hardware/schematic.md b/hardware/schematic.md index 4a199b9..010e49f 100644 --- a/hardware/schematic.md +++ b/hardware/schematic.md @@ -21,7 +21,7 @@ The micro:bit V1.3 and V1.5 sch The micro:bit V2 schematic is available from the Micro:bit Educational Foundation [microbit-v2-hardware repository](https://github.com/microbit-foundation/microbit-v2-hardware). -If you're looking to make something of your own based on the micro:bit, you might prefer to use our ['Reference Design'](/hardware/reference-design/) which is based on a radio module and has space on the layout for you to add your own components. +If you're looking to make something of your own based on the micro:bit, you might prefer to use our ['Reference Design']({{ "/hardware/reference-design/" | relative_url }}) which is based on a radio module and has space on the layout for you to add your own components. ## Schematics & BOM @@ -47,8 +47,8 @@ Below is the pinmap and allocation of the nRF52833, more information is availabl | P0.03 | RING1 | N | P1 | | P0.04 | RING2 | N | P2 | | P0.05 | MIC_IN | N | | -| P0.06 | UART_INT_RX | PTA18 / P0.03 | | -| P1.08 | UART_INT_TX | PTA19 / P0.02 | | +| P0.06 | UART_INT_RX`*` | PTA18 / P0.03 | | +| P1.08 | UART_INT_TX`*` | PTA19 / P0.02 | | | P0.08 | I2C_INT_SCL | PTC1 / P0.29 | | | P0.10 | GPIO1 | N | P8 | | P0.09 | GPIO2 | N | P9 | @@ -75,6 +75,8 @@ Below is the pinmap and allocation of the nRF52833, more information is availabl | P0.31 | COL3 | N | P3 | | P0.30 | COL5 | N | P10 | +`*`: These names follow the schematic's naming convention, labeled from the interface's perspective, not the target MCU's. So, UART_INT_TX corresponds to the MCU's RX pin, and UART_INT_RX to the MCU's TX pin. + ## Key Features Below, we've extracted some useful details about the hardware that anyone implementing software for the micro:bit, interfacing to it, or designing an add-on board for it should find useful. @@ -99,7 +101,7 @@ The interface processor does not have any connection to the GPIO pins on the mic There is one combined motion sensor IC on the micro:bit, that contains an accelerometer and a magnetometer. The accelerometer measures acceleration in 3 axes, and the magnetometer can be used as a compass, as well as a magnetic field detector. -The device is connected to the application processor [I2C bus](../i2c/), and for the V1 revision this [I2C bus is also shared](../i2c-shared/) to two pins on the edge connector. I2C pull-up resistors are pre-fitted on the board. +The device is connected to the application processor [I2C bus]({{ "/hardware/i2c/" | relative_url }}), and for the V1 revision this [I2C bus is also shared]({{ "/hardware/i2c-shared/" | relative_url }}) to two pins on the edge connector. I2C pull-up resistors are pre-fitted on the board. In V2 there is a combined open drain, active low, interrupt signal (`COMBINED_SENSOR_INT`) to the application processor for the motion sensors and the KL27. Any device can asset this signal and the application processor has to query the individual devices to locate the origin. @@ -129,9 +131,9 @@ Code is loaded into this processor via the interface processor. Communications via USB serial is done via the interface processor. -All GPIO pins on the [edge connector](../edgeconnector/) are serviced by this application processor. +All GPIO pins on the [edge connector]({{ "/hardware/edgeconnector/" | relative_url }}) are serviced by this application processor. -All [bluetooth](../../bluetooth) features are provided by a SoftDevice stack loaded into this processor. +All [bluetooth]({{ "/bluetooth" | relative_url }}) features are provided by a SoftDevice stack loaded into this processor. The nRF52V2 features additional NFC functionality on P0.09(NFC1) and P0.10(NFC2) that is disabled by default, but can be configured using the [nRF5SDK](https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK). @@ -162,29 +164,29 @@ The specific dimensions of the board are: ## Assembly Diagram -The following image of the V2 revision is taken from the [micro:bit V2 assembly diagram](/docs/hardware/assets/Microbit_V2_Assembly.pdf) provided by Avid. +The following image of the V2 revision is taken from the [micro:bit V2 assembly diagram]({{ "/docs/hardware/assets/Microbit_V2_Assembly.pdf" | relative_url }}) provided by Avid. -![micro:bit assembly front](/docs/hardware/assets/microbit-v2-assembly-front.png) +![micro:bit assembly front]({{ "/docs/hardware/assets/microbit-v2-assembly-front.png" | relative_url }}) ## Test point map The rear view of the device has been adapted to highlight the test points and describe their purpose. -![micro:bit assembly back](/docs/hardware/assets/microbit-v2-assembly-back.png) +![micro:bit assembly back]({{ "/docs/hardware/assets/microbit-v2-assembly-back.png" | relative_url }}) ### Exposed Test Points Test Point | Purpose ---------- | ------- -TP1 | U5 Bootmode - [used to enter the ROM bootloader on the KL27Z](../../software/daplink-interface/#updating-the-daplink-full-image-v200-only) +TP1 | U5 Bootmode - [used to enter the ROM bootloader on the KL27Z]({{ "/software/daplink-interface/#updating-the-daplink-full-image-v200-only" | relative_url }}) TP7 | USB D+ TP8 | USB D- TP17 | Access to Pin 1 on Battery connector TP19 | Access to VBUS line on USB Connector TP20 | Access for debugging internal I2C bus - SCL TP21 | Access for debugging internal I2C bus - SDA -TP9 | VREG - [Actually the power rounded rectangular pad](../../accessories/making-accessories/#battery-pads) -TP10 | GND - [Actually the GND rounded rectangular pad](../../accessories/making-accessories/#battery-pads) +TP9 | VREG - [Actually the power rounded rectangular pad]({{ "/accessories/making-accessories/#battery-pads" | relative_url }}) +TP10 | GND - [Actually the GND rounded rectangular pad]({{ "/accessories/making-accessories/#battery-pads" | relative_url }}) ### Covered test points (Solder mask to be removed to access test point) @@ -201,7 +203,7 @@ TP5 | VREG - additional VREG, this is connected to TP9 ## Further information -- [micro:bit V2 assembly diagram](/docs/hardware/assets/Microbit_V2_Assembly.pdf) +- [micro:bit V2 assembly diagram]({{ "/docs/hardware/assets/Microbit_V2_Assembly.pdf" | relative_url }}) - [KL27 datasheet](https://www.nxp.com/docs/en/data-sheet/KL27P64M48SF6.pdf) diff --git a/index.md b/index.md index 06758ce..71e1ee0 100644 --- a/index.md +++ b/index.md @@ -17,11 +17,11 @@ The site is maintained by the Micro:bit Educational Foundation in order to docum We hope to encourage contributions into these projects in order to broaden our ecosystem and the range of things people can invent with a micro:bit. -The Micro:bit Educational Foundation aims to be a 'responsible downstream' to the many open source [software](https://tech.microbit.org/software/) projects that are used to build the micro:bit: much like a good Linux distribution collates, tests, stabilises and releases combinations of many diverse open source packages, the micro:bit Educational Foundation and the micro:bit community present micro:bit users with a stable, tested release of all the things you need to make the magical 'end-to-end' micro:bit experience. +The Micro:bit Educational Foundation aims to be a 'responsible downstream' to the many open source [software](https://tech.microbit.org/software/) projects that are used to build the micro:bit: much like a good Linux distribution collates, tests, stabilises and releases combinations of many diverse open source packages, the Micro:bit Educational Foundation and the micro:bit community present micro:bit users with a stable, tested release of all the things you need to make the magical 'end-to-end' micro:bit experience. ## Latest news -For the latest news and community updates, join our mailing list and Slack group. +For the latest news and community updates, join our mailing list. {% include community.html %} @@ -42,10 +42,10 @@ Contribute features and fixes to one of the upstream projects that the micro:bit Help us build a brilliant hardware ecosystem around micro:bit - derivative boards, cool accessories and add ons, or even suggestions for future versions of the micro:bit. - * The [micro:bit schematic](/hardware/schematic/) and [reference design](/hardware/reference-design) are good places to start for making your own projects + * The [micro:bit schematic](hardware/schematic/) and [reference design](hardware/reference-design) are good places to start for making your own projects * The [accessories guide](https://microbit.org/buy/accessories/) gives you an idea of what's currently available. ### Write * [Improve the documentation and this site](https://github.com/microbit-foundation/dev-docs), either reporting issues or adding documentation will be extremely helpful. - * Help build a community around micro:bit - join the [slack channel and Email list](/community/), share the things you've created on twitter, blog about them! + * Help build a community around micro:bit - join the [Email list]({{ "/community/" | relative_url }}), share the things you've created on twitter, blog about them! diff --git a/projects.md b/projects.md index dae6d92..b6bd2a8 100644 --- a/projects.md +++ b/projects.md @@ -21,7 +21,7 @@ If you’d like to see [research about the impact of micro:bit, head over to our {% if projects.post_filter contains 'projects' %}

- + {{ projects.title }}

@@ -31,7 +31,7 @@ If you’d like to see [research about the impact of micro:bit, head over to our {% assign sortedCategories = projects.categories | sort %} {% for category in sortedCategories %} - {{ category }} + {{ category }} {% endfor %}
diff --git a/software/assets/software-overview.svg b/software/assets/software-overview.svg index 72a2786..1669472 100644 --- a/software/assets/software-overview.svg +++ b/software/assets/software-overview.svg @@ -64,7 +64,7 @@ x="1032.5px" y="2603.5px" style="font-family:'GTWalsheim-Bold', 'GT Walsheim', sans-serif;font-weight:600;font-size:250px;fill:white;" - id="text4161">CODAL + id="text4161">DAL PSF + friends - \ No newline at end of file + diff --git a/software/hex-format.md b/software/hex-format.md index 72fc137..86f8fa7 100644 --- a/software/hex-format.md +++ b/software/hex-format.md @@ -30,7 +30,7 @@ A [Universal Hex JavaScript Library](https://github.com/microbit-foundation/micr ## Universal Hex Creator -We have created a [Universal Hex Creator](../universal-hex-creator) tool, to easily create a .hex file that will support all micro:bit variants. +We have created a [Universal Hex Creator]({{ "/software/universal-hex-creator" | relative_url }}) tool, to easily create a .hex file that will support all micro:bit variants. This tool is based on the [Universal Hex JavaScript Library](https://github.com/microbit-foundation/microbit-universal-hex). @@ -40,20 +40,20 @@ The Universal Hex format has been developed to ensure the best experience for us There may be cases where it is not possible to support both boards, for example an accessory that is designed only to target the V2 board variant. In these cases, to ensure the best user experience when flashing a hex file to any board variant, the file should always include an error message to signify board incompatibility to the user. -We have created a [standalone error hex](/docs/software/assets/stand-alone-error-v1.hex) that can be combined with a V2 only hex to produce a Hex that will work on a V2 board, but error if used on a V1. +We have created a [standalone error hex]({{ "/docs/software/assets/stand-alone-error-v1.hex" | relative_url }}) that can be combined with a V2 only hex to produce a Hex that will work on a V2 board, but error if used on a V1. -[Download standalone error hex](/docs/software/assets/stand-alone-error-v1.hex){: .btn.sm-btn download} +[Download standalone error hex]({{ "/docs/software/assets/stand-alone-error-v1.hex" | relative_url }}){: .btn.sm-btn download} This example shows the worst, best and acceptable (when support for V1 is impossible) cases for users. The best case is to provide a Universal Hex that supports all board variants. -![Universal Hex error 1](/docs/software/assets/hex-compatibility-errors.png) +![Universal Hex error 1]({{ "/docs/software/assets/hex-compatibility-errors.png" | relative_url }}) These examples show the process of creating a Universal Hex. A V1 and V2 hex can be combined to produce a Universal Hex. If you can only support a V2 board, the standalone error can be combined with a V2 hex to produce a hex that will fail with an error on a V1 board, rather than failing silently. |Universal Hex format |V2 only Hex format | |-----------------------------------------------------------|-----------------------------------------------------------| -| ![Universal Hex error 2](/docs/software/assets/uhex2.png) | ![Universal Hex error 3](/docs/software/assets/uhex1.png) | +| ![Universal Hex error 2]({{ "/docs/software/assets/uhex2.png" | relative_url }}) | ![Universal Hex error 3]({{ "/docs/software/assets/uhex1.png" | relative_url }}) | -If you are building .hex files for both board variants, you will need to use the respective toolchains for the DALV1 and CODALV2. See more information on the [micro:bit runtime](../runtime/). +If you are building .hex files for both board variants, you will need to use the respective toolchains for the DALV1 and CODALV2. See more information on the [micro:bit runtime]({{ "/software/runtime/" | relative_url }}). ## Micropython diff --git a/software/index.md b/software/index.md index d6b82a3..586db18 100644 --- a/software/index.md +++ b/software/index.md @@ -24,7 +24,7 @@ Typically, a program is written on the host computer and then transferred to the There are actually two chips on the micro:bit, one that is running the **DAPlink** software entirely to facilitate the flashing (KL26V1/KL27V2) and one that actually runs the user's code (nRF51V1/nRF52V2). -![Software flow](/docs/software/assets/software-program.svg) +![Software flow]({{ "/docs/software/assets/software-program.svg" | relative_url }}) ## High level programming languages @@ -41,7 +41,7 @@ The 'high level' programming languages for the micro:bit break down into two bro In order to ensure that the micro:bit online code editors could scale to support millions of deployed boards, Microsoft built [MakeCode](https://makecode.microbit.org), an in-browser-compiler written in TypeScript. -This process further explained in the [MakeCode software page](/software/makecode) page. +This process further explained in the [MakeCode software page]({{ "/software/makecode" | relative_url }}) page. In-browser-compilers do not compile the whole of the software stack, just the user's script. Function calls and low level functions are handled by the micro:bit runtime. A pre-compiled runtime image is included in the browser and concatenated with the compiled script before being presented for download. @@ -49,7 +49,7 @@ In-browser-compilers do not compile the whole of the software stack, just the us In the [official micro:bit editors](https://microbit.org/code), only Python is interpreted. This is done by the use of the MicroPython interpreter. -The details of this are documented in the [MicroPython](/software/micropython) page. +The details of this are documented in the [MicroPython]({{ "/software/micropython" | relative_url }}) page. There is also a [port of the Javascript interpreter Espruino](http://www.espruino.com/MicroBit) that runs on the micro:bit. @@ -57,7 +57,7 @@ There is also a [port of the Javascript interpreter Espruino](http://www.espruin There are a huge number of possible coding environments that you can use to program the micro:bit. -Among the most popular are the official ones listed at http://microbit.org/code as well as the offline Mu editor. +Among the most popular are the official ones listed at https://microbit.org/code as well as the offline Mu editor. Here's a non-exhaustive list of possible code editors for use with the micro:bit: *please add any you know about that are not here* @@ -107,20 +107,20 @@ Here's a non-exhaustive list of possible code editors for use with the micro:bit Each of the coding environments generates a special file called a .hex file, which contains code for your micro:bit, written in a format it can understand. -The micro:bit code is updated by dragging a .hex file onto the MICROBIT drive that appears on your computer, when you plug in the micro:bit. It looks just like a USB memory stick to your computer (the flash drive is actually emulated by the [DAPLink](/software/daplink-interface) software) +The micro:bit code is updated by dragging a .hex file onto the MICROBIT drive that appears on your computer, when you plug in the micro:bit. It looks just like a USB memory stick to your computer (the flash drive is actually emulated by the [DAPLink]({{ "/software/daplink-interface" | relative_url }}) software) -It is also possible to 'flash' code to your micro:bit by using a mobile app, and using the [Bluetooth](/bluetooth/) communications interface from your mobile phone. +It is also possible to 'flash' code to your micro:bit by using a mobile app, and using the [Bluetooth]({{ "/bluetooth/" | relative_url }}) communications interface from your mobile phone. -Read more about [bluetooth apps](/bluetooth/apps-and-examples). +Read more about [bluetooth apps]({{ "/bluetooth/apps-and-examples" | relative_url }}). ### micro:bit Low Level (C/C++) Software Stack When you write an application for your micro:bit, other pieces of software are joined together with your application to make up the final .hex file that is flashed. This code consists of various lower level software components, such as: -- [DAL/CODAL](./runtime/) (sometimes called the runtime), written in C++ by Lancaster University. The DAL abstracts the facilities of the micro:bit into a common set of functions that can be used by all coding languages. The high level block functions in MakeCode map almost directly onto equivalent C/C++ calls in the runtime. MicroPython requires less use of the DAL. +- [DAL/CODAL]({{ "/software/runtime/" | relative_url }}) (sometimes called the runtime), written in C++ by Lancaster University. The DAL abstracts the facilities of the micro:bit into a common set of functions that can be used by all coding languages. The high level block functions in MakeCode map almost directly onto equivalent C/C++ calls in the runtime. MicroPython requires less use of the DAL. -- [Arm Mbed](./runtime/) The Arm Mbed SDK provides standardised drivers for MCU peripherals and abstracts most of the low level hardware details of different MCUs, meaning that micro:bit software can be easily run on other hardware. This includes an abstraction for BLE, the Mbed BLE api. +- [Arm Mbed]({{ "/software/runtime/" | relative_url }}) The Arm Mbed SDK provides standardised drivers for MCU peripherals and abstracts most of the low level hardware details of different MCUs, meaning that micro:bit software can be easily run on other hardware. This includes an abstraction for BLE, the Mbed BLE api. -- [Nordic nRF5 SDK](./runtime/#nordic-nrf5-sdk) Mbed itself builds on top of the Nordic nRF5 SDK, the component provided by Nordic to assist programmers in using their hardware. +- [Nordic nRF5 SDK]({{ "/software/runtime/#nordic-nrf5-sdk" | relative_url }}) Mbed itself builds on top of the Nordic nRF5 SDK, the component provided by Nordic to assist programmers in using their hardware. -- [MicroPython interpreter](./micropython) If you are using Python, then the whole MicroPython language interpreter is joined to your application to make up the .hex file. MicroPython on the micro:bit uses Mbed underneath, though MicroPython also runs on a wide range of other hardware platforms. +- [MicroPython interpreter]({{ "/software/micropython" | relative_url }}) If you are using Python, then the whole MicroPython language interpreter is joined to your application to make up the .hex file. MicroPython on the micro:bit uses Mbed underneath, though MicroPython also runs on a wide range of other hardware platforms. diff --git a/software/interface.md b/software/interface.md index a51243f..7cd010b 100644 --- a/software/interface.md +++ b/software/interface.md @@ -15,11 +15,11 @@ The micro:bit presents itself as a USB disk when it is connected over USB, and c The **Interface MCU** is a **Nordic nRF52833/nRF52820** V2.2x, **Freescale KL27** V2.00, or **Freescale KL26** V1. -The chip that developers' code runs on, and that all the peripherals are connected to is called the 'target MCU'. See the [Hardware](/hardware) page and the schematic for more details about how these two devices are connected. +The chip that developers' code runs on, and that all the peripherals are connected to is called the 'target MCU'. See the [Hardware]({{ "/hardware" | relative_url }}) page and the schematic for more details about how these two devices are connected. The **Target MCU** is a **Nordic Semiconductor nRF52833** V2 or **Nordic Semiconductor nRF51822** V1. -![v2 interface](/docs/software/assets/v2-interface.png) +![v2 interface]({{ "/docs/software/assets/v2-interface.png" | relative_url }}) The target and interface MCUs are connected by these interfaces: @@ -27,11 +27,11 @@ The target and interface MCUs are connected by these interfaces: - UART for sending messages between the two devices. In practice, the UART from the target MCU is passed through directly to the PC over USB. -- V2 I2C using a custom [protocol](/software/spec-i2c-protocol/). +- V2 I2C using a custom [protocol]({{ "/software/spec-i2c-protocol/" | relative_url }}). ### Reference design -On the [reference design](/hardware/reference-design) the interface circuit is clearly separated from the main micro:bit circuits so that you can do the following things: +On the [reference design]({{ "/hardware/reference-design" | relative_url }}) the interface circuit is clearly separated from the main micro:bit circuits so that you can do the following things: - Build a board without the interface circuitry and use another debugger to program that over SWD. @@ -58,20 +58,20 @@ This table shows the device revision and which DAPLink Bootloader and Interface | Board revision | Bootloader | Interface | Download | -------------- | ---------- | --------- | -------- -| 1.3 | 0234 | 0234 | [0234](/docs/software/assets/DAPLink-factory-release/0234_kl26z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 1.3b | 0234 | 0241 | [0241](/docs/software/assets/DAPLink-factory-release/0241_kl26z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 1.5 | 0243 | 0249 | [0249](/docs/software/assets/DAPLink-factory-release/0249_kl26z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 2.00 | 0255 | 0255 | [0255](/docs/software/assets/DAPLink-factory-release/0255_kl27z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 2.20 | 0256 | 0256 | [0256](/docs/software/assets/DAPLink-factory-release/0256_nrf52820_microbit_if_crc_5dd23001a7_gcc.hex){: .btn.sm-btn .download} -| 2.21 | 0257 | 0257 | [0257](/docs/software/assets/DAPLink-factory-release/0257_nrf52820_microbit_if_crc_c782a5ba90_gcc.hex){: .btn.sm-btn .download} +| 1.3 | 0234 | 0234 | [0234]({{ "/docs/software/assets/DAPLink-factory-release/0234_kl26z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 1.3b | 0234 | 0241 | [0241]({{ "/docs/software/assets/DAPLink-factory-release/0241_kl26z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 1.5 | 0243 | 0249 | [0249]({{ "/docs/software/assets/DAPLink-factory-release/0249_kl26z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 2.00 | 0255 | 0255 | [0255]({{ "/docs/software/assets/DAPLink-factory-release/0255_kl27z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 2.20 | 0256 | 0256 | [0256]({{ "/docs/software/assets/DAPLink-factory-release/0256_nrf52820_microbit_if_crc_5dd23001a7_gcc.hex" | relative_url }}){: .btn.sm-btn .download} +| 2.21 | 0257 | 0257 | [0257]({{ "/docs/software/assets/DAPLink-factory-release/0257_nrf52820_microbit_if_crc_c782a5ba90_gcc.hex" | relative_url }}){: .btn.sm-btn .download} This table shows the latest DAPLink release for each board version that has been fully tested by the Foundation: | Board revision | Bootloader | Interface | Download | -------------- | ---------- | --------- | -------- -| 1.* | 02** | 0253 | [0253](/docs/software/assets/DAPLink-factory-release/0253_kl26z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 2.00 | 0255 | 0255 | [0255](/docs/software/assets/DAPLink-factory-release/0255_kl27z_microbit_0x8000.hex){: .btn.sm-btn .download} -| 2.2* | 0257 | 0257 | [0257](/docs/software/assets/DAPLink-factory-release/0257_nrf52820_microbit_if_crc_c782a5ba90_gcc.hex){: .btn.sm-btn .download} +| 1.* | 02** | 0253 | [0253]({{ "/docs/software/assets/DAPLink-factory-release/0253_kl26z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 2.00 | 0255 | 0255 | [0255]({{ "/docs/software/assets/DAPLink-factory-release/0255_kl27z_microbit_0x8000.hex" | relative_url }}){: .btn.sm-btn .download} +| 2.2* | 0257 | 0257 | [0257]({{ "/docs/software/assets/DAPLink-factory-release/0257_nrf52820_microbit_if_crc_c782a5ba90_gcc.hex" | relative_url }}){: .btn.sm-btn .download} ### Beta releases @@ -86,8 +86,8 @@ This DAPLink beta release for V2.00 and V2 device using the KL27 internal bootloader. This will update both interface and bootloader. -[Download latest full DAPLink image](/docs/software/assets/DAPLink-factory-release/kl27z_bl_0255_if_0255_microbit_full_image.bin){: .btn.sm-btn download} +[Download latest full DAPLink image]({{ "/docs/software/assets/DAPLink-factory-release/kl27z_bl_0255_if_0255_microbit_full_image.bin" | relative_url }}){: .btn.sm-btn download} You will need to register for and download the [**Bootloader Host Application (blhost)**](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuboot-mcu-bootloader-for-nxp-microcontrollers:MCUBOOT?&tab=Design_Tools_Tab) from NXP. In the `/bin` folder you will find executables for your operating system. @@ -165,7 +165,7 @@ You will need to register for and download the [**Bootloader Host Application (b To enter this mode we need to ground TP1 during board power up, this is the BOOTMODE pin in the KL27. To do that, connect with a wire (or something like a paper-clip) from TP1 (the red circle) with any ground point (any black square) as you insert the USB cable into the device. -![TP1](/docs/software/assets/TP1.png){: width: 300px} +![TP1]({{ "/docs/software/assets/TP1.png" | relative_url }}){: width: 300px} ### Bootloader CLI tool diff --git a/software/makecode.md b/software/makecode.md index 7b27ec5..c3af842 100644 --- a/software/makecode.md +++ b/software/makecode.md @@ -28,25 +28,25 @@ This target depends on several other repositories: ## Compiler - MakeCode uses a built-in compiler to translate a project into a .hex file when you select **Download**. +MakeCode uses a built-in compiler to translate a project into a .hex file when you select **Download**. This has the advantage of not requiring an internet connection in order to code the micro:bit. Once the browser editor at [makecode.microbit.org](https://makecode.microbit.org) loads, it is cached on your computer. -The MakeCode editors contain a copy of the micro:bit runtime [the DAL/CODAL](/software/runtime) which the blocks and javascript APIs reference. +The MakeCode editors contain a copy of the micro:bit runtime [the DAL/CODAL]({{ "/software/runtime/" | relative_url }}) which the blocks and JavaScript APIs reference. -When you press **Download** the compiler converts the code into a machine readable [hex file format](/software/hex-format). +When you press **Download** the compiler converts the code into a machine readable [hex file format]({{ "/software/hex-format" | relative_url }}). When this .hex file is flashed onto the MICROBIT drive, the KL26/7 interface processor on the micro:bit copies it into the flash memory inside the nRF application processor and the code runs. ## Other Features -MakeCode supports two-way conversion of code, so you can write code as blocks and see what the generated code looks like in Javascript/MakeCode Python. You can also write Javascript/MakeCode Python code, and if possible, MakeCode will convert this back into blocks automatically. +MakeCode supports two-way conversion of code, so you can write code as blocks and see what the generated code looks like in JavaScript/MakeCode Python. You can also write JavaScript/MakeCode Python code, and if possible, MakeCode will convert this back into blocks automatically. MakeCode also allows you to [write your own block types](https://makecode.com/extensions) and [publish them as Extensions](https://makecode.microbit.org/extensions). ## Offline - An [offline version of the MakeCode editor](https://makecode.microbit.org/offline) is available for use in situations where there is limited or no internet connectivity. +An [offline version of the MakeCode editor](https://makecode.microbit.org/offline) is available for use in situations where there is limited or no internet connectivity. ## Documentation @@ -65,7 +65,6 @@ Users can [publish their own tutorials](https://makecode.com/writing-docs/user-t There are a variety of ways to get involved and interact: -- Join the [micro:bit developer community on Slack](../../community/) - Raise a [MakeCode issue or feature request](https://github.com/Microsoft/pxt-microbit/issues) - Ask the MakeCode development team on [MakeCode forum for micro:bit](https://forum.makecode.com/c/microbit/11) - Help [Translate MakeCode](https://makecode.com/translate) into your own language. diff --git a/software/micropython.md b/software/micropython.md index 48abc5e..7f97037 100644 --- a/software/micropython.md +++ b/software/micropython.md @@ -32,7 +32,7 @@ It provides two services: - [microFS](https://microfs.readthedocs.io/en/latest/) A simple command line tool and module for interacting with the limited file system provided by MicroPython on the BBC micro:bit. -Finally, there are great [tutorials for MicroPython on the micro:bit](https://microbit-micropython.readthedocs.io/en/latest/tutorials/introduction.html). +Finally, there are great [tutorials for MicroPython on the micro:bit](https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/introduction.html). ## What is MicroPython? @@ -120,7 +120,7 @@ Many people in the international Python community have contributed free-to-use r ### Documentation -Tutorials and API documentation for developers can be [found here](https://microbit-micropython.readthedocs.io/en/latest/). +Tutorials and API documentation for developers can be [found here](https://microbit-micropython.readthedocs.io/en/v2-docs/). ### Logging an Issue with the Development Team diff --git a/software/python-editor.md b/software/python-editor.md index 8010300..7b1aea6 100644 --- a/software/python-editor.md +++ b/software/python-editor.md @@ -11,35 +11,34 @@ lang: en ## Overview -The [Python Editor](https://python.microbit.org) is a free, browser based coding environment for creating [MicroPython](../micropython/) projects with the BBC micro:bit. +The [Python Editor](https://python.microbit.org) is a free, open source, browser-based coding environment for creating [MicroPython]({{ "/software/micropython/" | relative_url }}) projects with the BBC micro:bit. -Use common snippets of code, add/remove files and modules, and upload/download .hex or .py files. +### Documentation -The Python editor is based upon the [Ace editor](http://ace.c9.io) and includes syntax highlighting, code folding and (semi) intelligent auto-indentation. +For using the editor: -### Source +- The [Reference](https://python.microbit.org/v/3/reference), [Ideas](https://python.microbit.org/v/3/ideas) and [API](https://python.microbit.org/v/3/api) tabs in the editor itself +- [User guide](https://microbit-micropython.readthedocs.io/en/latest/) +- [MicroPython reference](https://microbit-micropython.readthedocs.io/en/v2-docs/) provides information and examples on using the API -The upstream source code for the Python Editor can be found at [github.com/bbcmicrobit/PythonEditor](https://github.com/bbcmicrobit/PythonEditor) +For developing the editor or understanding how it works: -The micro:bit target depends a closed source versioning repository that facilitates releases at `/v/`, for example the beta editor [https://python.microbit.org/v/beta](https://python.microbit.org/v/beta) and previous releases. +- [GitHub](https://github.com/microbit-foundation/python-editor-v3) +- [Technical overview](https://github.com/microbit-foundation/python-editor-v3/blob/main/docs/tech-overview.md) -### Offline +### Reusable software components -It is possible to use the Python Editor offline to generate, upload and download .hex or .py files. However, refreshing the browser resets the editor. +The [micro:bit MicroPython simulator](https://github.com/microbit-foundation/micropython-microbit-v2-simulator#readme) is a separate component that you can embed in your own software projects. -### Documentation +The [micro:bit connection](https://microbit-foundation.github.io/microbit-connection/) npm package is used to connect to and flash the micro:bit over WebUSB. -- [MicroPython reference](https://microbit-micropython.readthedocs.io/en/v1.0.1/) provides information and examples on using the blocks -- [Developer setup](https://github.com/bbcmicrobit/PythonEditor/blob/master/README.rst) -- [Filesystem](https://github.com/bbcmicrobit/PythonEditor/blob/master/docs/filesystem.md) -- [Translation strategy](https://github.com/bbcmicrobit/PythonEditor/blob/master/docs/translations.md) -- [Embedding the editor](https://github.com/bbcmicrobit/PythonEditor/blob/master/docs/embedEditor.md) +The MicroPython file system that stores the user's Python code can be manipulated with the [microbit-fs](https://microbit-foundation.github.io/microbit-fs/) npm package. -### Community +### Previous version -There are a variety of ways to get involved and interact: +The micro:bit Python Editor (V2) is still available at [https://python.microbit.org/v/2](https://python.microbit.org/v/2) with source code at [https://github.com/bbcmicrobit/PythonEditor](https://github.com/bbcmicrobit/PythonEditor). + +### Community -- Join the [micro:bit developer community on Slack](../../community/) -- Raise a [Python Editor issue or feature request](https://github.com/bbcmicrobit/PythonEditor/issues) -- Ask a question on the [MicroPython forum for micro:bit](https://forum.micropython.org/viewforum.php?f=17&sid=de047c3e944921889becbc00f02a918f) +- Raise a [Python Editor issue or feature request](https://github.com/microbit-foundation/python-editor-v3/issues) - Help [Translate the Python Editor](https://support.microbit.org/en/support/solutions/articles/19000106022-translating-the-python-editor) into your own language. diff --git a/software/runtime.md b/software/runtime.md index 366fc9d..813a092 100644 --- a/software/runtime.md +++ b/software/runtime.md @@ -19,7 +19,7 @@ The micro:bit runtime, also known as the DAL/CODAL is software that runs on a mi | V2 | V1 | ---- | ---- -|![Software Architectural Diagram v1](/docs/software/assets/software-overview-v2.svg) | ![Software Architectural Diagram v2](/docs/software/assets/software-overview.svg) +|![Software Architectural Diagram v1]({{ "/docs/software/assets/software-overview-v2.svg" | relative_url }}) | ![Software Architectural Diagram v2]({{ "/docs/software/assets/software-overview.svg" | relative_url }}) There are a number of important software layers that run on the micro:bit to enable easy to use languages such as Javascript to be used. Some of these, like Arm Mbed and MicroPython existed before the BBC micro:bit project started, and others, such as the micro:bit runtime were written specifically for the micro:bit. @@ -69,8 +69,6 @@ Firstly, you should get yourself into a situation where you can build the micro: If you would have a feature request, or would like to get involved in the micro:bit runtime development, visit the [list of open issues](https://github.com/lancaster-university/microbit-dal/issues) and raise a new issue if it isn't already in there. -You can also join the [microbit developer community on Slack](/community) if you'd like to discuss the micro:bit runtime and its components. - If you think you've found a bug in the DAL, please [log a new issue in the GitHub DAL repository](https://github.com/lancaster-university/microbit-dal/issues/new) ### DAL Source Code diff --git a/software/spec-i2c-protocol b/software/spec-i2c-protocol index 63d14ee..060b38c 160000 --- a/software/spec-i2c-protocol +++ b/software/spec-i2c-protocol @@ -1 +1 @@ -Subproject commit 63d14ee2aefc57b15280c87dfaee5391f4421d94 +Subproject commit 060b38cf5e62205d83daef1fe8bb07105b7be0f1 diff --git a/software/spec-power-mangement b/software/spec-power-mangement index a39ad8e..b19a715 160000 --- a/software/spec-power-mangement +++ b/software/spec-power-mangement @@ -1 +1 @@ -Subproject commit a39ad8ea89ea167747dc0ebb95bfe6b4ffd877d2 +Subproject commit b19a715a5cfa0144cc4e0d3ed7de5cc74cf92b88 diff --git a/software/universal-hex-tool.md b/software/universal-hex-tool.md index 9065940..7e43047 100644 --- a/software/universal-hex-tool.md +++ b/software/universal-hex-tool.md @@ -12,11 +12,11 @@ review-with: carlospa The Universal Hex Creator lets you combine a hex file created for a micro:bit V1 device and a hex file created for a V2 device, resulting in a Universal Hex file that is compatible with all revisions of the micro:bit. -DAPLink will process the Universal Hex and only write data to the relevant board revision; V1 or V2. More information is available on our [Hex format](../hex-format), the [Javascript/Typescript libary](https://github.com/microbit-foundation/microbit-universal-hex) on which the Universal Hex Creator tool is based and the associated [Universal Hex specification](https://github.com/microbit-foundation/spec-universal-hex). +DAPLink will process the Universal Hex and only write data to the relevant board revision; V1 or V2. More information is available on our [Hex format]({{ "/software/hex-format" | relative_url }}), the [Javascript/Typescript libary](https://github.com/microbit-foundation/microbit-universal-hex) on which the Universal Hex Creator tool is based and the associated [Universal Hex specification](https://github.com/microbit-foundation/spec-universal-hex). This complementary online tool can be used to split Universal Hex files into its individual Intel Hex components: [Universal Hex Splitter](https://microbit-foundation.github.io/microbit-universal-hex/examples/separate.html) -To support [cross-device compatibility](../hex-format/#cross-device-compatibility), we have created a [standalone error hex](https://github.com/microbit-foundation/incompatible-error-programme/releases/download/v1.0.0/error-programme-v1.hex) that can be combined with a V2 only hex in this tool to produce a Universal Hex that will work on a V2 board, and display a "not compatible" error if used on a V1. +To support [cross-device compatibility]({{ "/software/hex-format/#cross-device-compatibility" | relative_url }}), we have created a [standalone error hex](https://github.com/microbit-foundation/incompatible-error-programme/releases/download/v1.0.0/error-programme-v1.hex) that can be combined with a V2 only hex in this tool to produce a Universal Hex that will work on a V2 board, and display a "not compatible" error if used on a V1. [Download standalone error hex](https://github.com/microbit-foundation/incompatible-error-programme/releases/download/v1.0.0/error-programme-v1.hex){: .btn.sm-btn download}