Dan kun je beginnen met het voorbereiden van het codevoorbeeld. Als de combinatie VSCode / PlatformIO / Python eenmaal draait, werkt het vrij goed, maar het spreekt allemaal niet voor zich.
De Longan Nano wordt geleverd met een firmware die de led met verschillende kleuren laat knipperen. Die originele firmware kan echter nergens gedownload worden. Als eerste eigen project hebben we gekozen voor het gebruikelijke eenvoudige knipper-project, waardoor de led van de Nano alleen rood knippert.
Na het starten van VSCode start PlatformIO na de standaard installatie automatisch, maar wel na een korte wachttijd. Als het venster ‘PIO Home’ niet verschijnt, klik dan op het kleine Home-pictogrammetje in de linkerbenedenhoek van het VSCode-venster. Rechts daarvan verschijnen later twee andere belangrijke pictogrammen: een vinkje, dat het compilatieproces start, en een pijl die naar rechts wijst, waarmee je de gecompileerde code als een firmware-image via usb in het geheugen van de Longan Nano kunt schrijven.
Maar daarvoor moet je eerst een project maken in VSCode en wat code bewerken. In het venster ‘PIO Home’ staat de knop “+ New Project” in de rechterbovenhoek onder ‘Quick Access’. Met een klik daarop start de Project Wizard. Daar geef je eerst een naam aan het nieuwe project, bijvoorbeeld Longan-Nano-01. Selecteer vervolgens ‘Sipeed Longan Nano’ onder ‘Board’, die bevindt zich in de categorie ‘GigaDevice GD32V’. Laat de standaardinstelling ‘GigaDevice GD32V SDK’ onder Framework zoals die is. Na klikken op Finish, zal PlatformIO een directory aanmaken in de Documenten-map van de ingelogde gebruiker voor PlatformIO, oftewel in C:\Gebruikersnaam\Documenten\PlatformIO\Projects.
Het is een beetje verwarrend dat het voorbeeldproject niet in de zojuist aangemaakte map terechtkomt, maar ernaast in dezelfde bovenliggende map – maar dat is alleen visueel storend. Selecteer ‘longan-nano-blink’ als eerste voorbeeldproject door dit te importeren bij ‘Project Examples’. PlatformIO kopieert de code van GitHub dan naar een nieuwe lokale directory. Het zal dan verschijnen in de linker VSCode-kolom Explorer in de huidige ‘Workspace’.
Als je de broncode van het voorbeeld – geschreven in C – wilt bekijken, klik dan op het bestand ‘main.c’ onder ‘src’ in de Explorer-kolom. Om het voorbeeld via usb naar de Longan Nano te schrijven, is een extra regel code in het bestand ‘platformio.ini’ nodig. Onderaan de sectie [env:sipeed-longan-nano] moet je ‘upload_protocol = dfu’ toevoegen.
Bij de eenvoudige codevoorbeelden voor de Longan Nano hoef je alleen maar een regel toe te voegen voor het ‘upload_protocol’ in het platformio.ini-bestand via PIO.
Compileer het project dan door op het vinkje in de statusregel onder te klikken. Er wordt dan automatisch een terminalvenster geopend onder de codeweergave, waarin de voortgang en eventuele foutmeldingen worden getoond. Aan het einde verschijnt ‘Terminal will be reused by tasks, …’ – de firmware-image is dan klaar.
Sluit de Longan Nano vervolgens aan (indien nog niet aangesloten) en activeer de usb-communicatiemodus. Met een klik op het eerder genoemde pijlsymbool start het flash-proces, dat enkele seconden duurt – in het terminalvenster verschijnt een voortgangsbalk, gevolgd door een foutmelding over een ontbrekende digitale handtekening, die je kunt negeren. Ook kan het zijn dat je upload-error 74 krijgt, dan is het flashen toch gelukt maar komt er geen statusmelding terug. Ook dat kun je negeren.
Na het succesvolle flashen schakelt de Longan Nano automatisch over naar de normale modus, voert een reset uit en vervolgens de nieuwe code. Het voorbeeldproject laat nu alleen nog maar de onboard-led boven de A1-pin knipperen. Het project ‘arduino-blink’, ook beschikbaar als voorbeeld, verschilt van het eerste project doordat het in C++ is geschreven en een Arduino-bibliotheek voor de GD32V-chip bevat.