8/25 The objective of this project is to build a guitar pedal that displays a visual waveform as you play guitar, detects the note or notes you’re playing, and also includes an HDMI output. Currently, I am not planning to manipulate the guitar audio(but may), however there will be some knobs to change the gain on the visualizer. The plan is to use an LCD with a micro controller. I already have an LCD that I have worked with before and I have knowledge of the tool-chain, but was still indecisive on the micro controller. After weighing all my options, I landed on a new small form factor Arduino called XIAO by SeeedStudios. I am a little partial to Arduino due to its large community and support, but I have never enjoyed the Arduino Interactive Development Environment(IDE). I have not programmed an Arduino in almost half a decade due to their minimal IDE. I asked a search engine the question, “Does Vscode work with Arduino?”, the answer was yes. Apparently this is very common nowadays. There is an extension called platformIO that is used, there is a ton of tutorials, and there is support for the newest Arduino that I have chosen to program. With a goal of being able to compile a “Hello world” program, I attempted to download the suggested toolchain.
8/26 Typically when I install new software, I never read the instructions first. Most of the time it turns out alright, but sometimes it requires brute force. I hit the timer knowing this install was going to suck. VScode in general, takes a while to install with all the extensions, auxiliary programs, and libraries. Plus, in this case I need to add all the Arduino libraries, CLI, and PlatformIO extensions. After following the Seeedstudios tutorial paralleled with a platformIO video and an hour and a half later, I got all of these installed. After all that, of course I was unable to upload a sketch. I then tried the Arduino IDE to see how that would go, it worked like charm. I was almost about to fall back on the Arduino IDE and say screw Vscode. Then I remembered my reasons for wanting Vscode which outweighed settling for the Arduino IDE. Therefore, I had to persist and find the issue. I then went backwards and started watching multiple videos to see if I missed any steps on how to incorporate platformIO and Vscode.(3 Hours)
8/27 After giving up the previous night, I continued pushing through videos, and somehow it just started working. I had downloaded the Arduino libraries in Vscode, when what I actually should have done was to download them using platformIO. This was a detail that I didn’t think mattered, but it made sense in retrospect. After that, I started flashing firmware to the XIAO. It was going well, until after a couple flashes, the XIAO suddenly was not recognized as a COM port on the computer. After unplugging it a couple times, looking for drivers/installers, and researching, I gave up and plugged in the second XIAO board that I had purchased. Then I started programming again on the second unit when it failed with the same symptoms. My first thought was “dang, these things are crap.” Anyways, I hit the forums until I found out that there are on-board reset pins that need to be triggered with a jumper wire. The forums source for the solution was directly from the Seeedstudio website itself. I would have saved a couple hours if I didn’t skim the documentation so briefly on the initial read. In my experience, the micro controller becomes corrupted 1 out 4 times while flashing with VScode. While I seem to have found the solution, this is not going to work for me as micro controller. Now I must find out which board I want to use instead. (4 Hours)
9/16 My researched continued, and I have decided to have a shoot out with 3 different boards. These are boards I’ve been wanting to work with either way and the XIAO was just an easy sell because of it’s small package. XIAO is not completely out, but it’s had a bad start. Regardless, I sent out an order for new SoMs. In the meantime of waiting for this order I hope to get the amplifiers and supporting circuitry built to try to expedite this project.