In this Section

↩ Return Home

↩ Return to Resources

<aside> 📢 Unless you've soldered on a new SAMD51 microcontroller, it's likely the bootloader is already programmed for you.

If you're looking how to update the bootloader or firmware, see Updating PyCubed

</aside>

Flashing a new bootloader


Requirements

⭐ bootloader flashing is only required once: on brand-new SAMD51 that haven't been used on a PyCubed board before.

Instructions

  1. With the requirements above satisfied, plug the JTAG programmer into your computer and open Atmel Studio 7.

  2. Navigate to Tools → Device Programming, as shown:

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5f58ae29-a7c0-48bf-ae63-31f10322dc30/Untitled.png

  3. Select the appropriate Tool and Device from the drop-down menus and click apply.

    ❗ make sure to choose the correct microcontroller part number. Visually check the part markings on the SAMD51 to confirm if it's the SAMD51x19 or SAMD51x20.

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/420e4da4-4e8c-4263-83de-8e10269c7ab5/Untitled.png

  4. Navigate to "Memories" on the left-hand side.

  5. Uncheck the "Erase Flash before programming" box, and then click the "..." button, as shown:

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fa39de80-d98e-4a62-a79a-4e4b7101f077/Untitled.png

  6. Navigate to the directory you saved the GitHub firmware files, and change the file parameters from "Programming Files" to "Binary" and shown:

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/90704a97-db02-4fb6-87f4-7d8a820fa8a5/Untitled.png

  7. Select the .bin file downloaded previously and click the "Open" button:

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/71e4fd9d-25a2-4b84-9fa7-48d3e52c38d2/Untitled.png

  8. Now make the following connections to the PyCubed board. If you're careful, you can avoid soldering header-pins to the board by just holding jumper-wire pins (or pogo pins, if you have them) against the through-holes during programming. When in doubt, solder the header pins.

    Required Connections:

  9. With the connections made, return to Atmel Studio 7 and click the "Read" button. A device signature should populate. If an error appears, check connections and troubleshoot the specific error message.

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c50bc355-fae2-4bfc-99c0-64e2f5cdf830/Untitled.png

  10. After receiving a device signature, click the "Program" button. Programming should only take a few moments.

  11. Successful bootloader programming will trigger the PyCubed board to reboot. After a few moments, the board should mount to the computer as a PYCUBEDBOOT drive.

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ae95a971-cd76-4eeb-8ef8-983917107203/Untitled.png

    Flashing the Firmware:


  12. Drag the CircuitPython firmware .uf2 file downloaded previously to the PYCUBEDBOOT drive:

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1574bd42-1bba-4bb0-be10-1fb46a801610/Untitled.png

  13. As soon as the file is done transferring, the board will reboot again and mount as CIRCUITPY or PYCUBED and is now a functioning CircuitPython board. Congratulations! 🎉

    Note: you may wish to load the default libraries by copying everything from the respective board version here: https://github.com/pycubed/software to your PYCUBED drive.