Posts

Showing posts from August, 2023

EOS-S3 Thing+ Debug Setup 8/27/2023

We can now pause and resume a program running on the Thing+ in VS Code using GDB, Black Magic, and Cortex Debug. I found the template for the Black Magic config here: https://github.com/Marus/cortex-debug/wiki/Black-Magic-Probe-Specific-Configuration I modified it to fit out situation and uploaded it to the repo. To setup, you need to not have the jumpers on the Thing+ and open Black Magic in a terminal. Then select BMP Debug from the dropdown debug menu in VS Code and then press F5 to start the debug session. If it doesnt connect or attach, try to connect to the Thing+ outside of VS Code with Blackmagic and GDB. You may need to unplug the Thing+ or I found putting it into program (green flashing) mode and then connecting to in from GDB in the Terminal helped and I was then able to connect through VS Code. To set breakpoints, you can click on a line of a file that is part of the same project and folder structure as the elf you are running on the board. I wasnt able to set a brea...

EOS-S3 Thing+ Debug Setup 8/20/2023

There is an extension for VS Code called Cortex-Debug, using the below links I have made a first pass at developing an OpenOCD launch.json file for debugging the Thing+. Cortex Debug requires gdb version 9 or above, but the version that comes with qorc is 8.x. I downloaded version 10.x from the arm link down below. I tried the most recent version ( 12.x at the time of this writing) but it had some python error that is describe in the stackoverflow link. Cortex Debug also needs a SVD file which QuickLogic doesnt provide, but there is one someone made at the eos-s3-rs repo. It is not fully featured but is a great start. https://lonesometraveler.github.io/2020/03/27/debug.html https://www.digikey.com/en/maker/projects/raspberry-pi-pico-and-rp2040-cc-part-2-debugging-with-vs-code/470abc7efb07432b82c95f6f67f184c0 https://github.com/Josfemova/eos-s3-rs https://developer.arm.com/downloads/-/gnu-rm https://stackoverflow.com/questions/72187185/arm-none-eabi-gdb-cannot-start-because-of-some-pyt...

Setting Up Raspberry Pi in Headless Mode 6/18/2023

  This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   We are going to use Raspberry Pi's as the initial development platform for the Audio Bonnet that will help perform the Active Noise Cancellation. We are going to be communicating with the Pi's using SSH and maybe a virtual desktop application down the road. To get the Pi to work in what they call "Headless Mode" you have two main options. If you have the ability to operate the Pi as a standalone computer, you can log in and make sure it is connected to the internet (you can also use Ethernet) and you need to make sure ssh is enabled. If you do not have the ability to plug the Pi into its own monitor or you are starting/willing to start from scratch follow the instructions at this link: https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html The easiest method...

EOS-S3 Thing+ Notes 8/14/2023

This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   There is a folder in the qorc sdk called qt_apps. This folder has projects and bin files specifically for the Thing+ board. After using the jeff probe and blackmagic to run the load flash elf, I then followed the commands above for how to load the bootloader once it is in programming mode. However, I loaded the qt_apps bootloader instead of the quickfeather one. I also used this qfprog command, change accordingly based on your file: qfprog --port /dev/ttyACM0 --m4app output/bin/qf_helloworldsw.bin --mode m4 Once I loaded the new flash and bootloader, I was able to load the hello world sw program without the use of the jeff probe. It went into the correct programming mode and I was able to connect to the Thing+ over Putty. This is where the qt_apps is located: https://github.com/QuickLogic-Cor...

EOS-S3 Thing+ Notes 5/31/2023

This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   Used Raspberry Pi Pico to load the FPGA on the Thing+ Appendix A of this document shows how to setup a Picoprobe. https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf I used some of this link to help install the needed software https://kresna.dev/getting-picoprobe-openocd-gdb-to-work-with-rust-on-mac-m1/ I used an SWD Breakout board from Adafruit to connect the Pico to the Thing+. I connected Pin 4 on the Pico to CLK on the breakout and Pin 5 on the Pico to SWIO on the breakout. I then connected the grounds on the breakout to a ground on the Pico and Vref on the breakout to pin 36 (3.3V) on the Pico. If you are using a Raspberry Pi, Adafruit has a nice tutorial on how to setup it up with OpenOCD. This is the command I used to load code through the Pico using OpenOCD. sudo ./open...

EOS-S3 Thing+ Notes 5/28/2023

This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   You need to use --appfpga to program the fpga part of the eoss3 using qfprog (TinyFPGA programmer) example command : qfprog --port=/dev/ttyACM0 --mode --appfpga top.bin You can create a bin file for a verilog file using F4PGA python program directly instead of using given makefiles. Next Steps: Verify if current version of F4pga can work with the quickfeather or if the older quicklogic version is needed. Further explore qorc sdk examples and see if we can compile them directly without the makefiles.

EOS-S3 Thing+ Notes 5/20/2023

This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   Ran the following commands to start the Docker services on startup: sudo systemctl enable docker.service sudo systemctl enable containerd.service Added git clone of f4pga-arch-defs to Dockerfile_F4PGA. I believe I cloned it while inside the container last time. The commands to build the tests are located here: https://github.com/f4pga/f4pga-arch-defs/tree/main/quicklogic Our chip corresponds to the chandalar board. This is the command I used to build a openocd loadable version of the counter test: make counter-ql-chandalar_openocd

EOS-S3 Thing+ Notes 5/10/2023

This post is part of a series of notes I originally recorded on a GitLab wiki for our QuitetThing project with can be found here:  https://gitlab.com/mccormjf/quietthing/-/wikis/home   I am posting here for increased visibility and archival purposes. When building using ql_symbiflow, the dump command means it creates the files you list in the command, not that it wont create those. To get a .bin file you include -dump binary. Further information is at this link: https://quicklogic-quicklogic-fpga-toolchain.readthedocs-hosted.com/en/latest/tutorial/eos-s3/GeneratetheBinaryFile.html We also have a BGA package chip which is symbolized by using -P PD64 in symbiflow We started using F4PGA which is what the F4PGA docker file installs, but we weren't able to get the f4pga-examples version of btn_counter to work on the board. We started running the f4pga arch defs repo from https://github.com/f4pga/f4pga-arch-defs/tree/main/quicklogic They have an env setup script that sets up a conda...