Nicholas Elpedes’s Work Log

  • Post author:
  • Post last modified:February 14, 2025
  • Reading time:11 mins read
  • Post category:Work Logs

Week 1

  • Helped create Project Specifications
  • Familiarized myself with OSHE processes
  • Did research on potential parts we would need to purchase

Week 2

  • Briefly researched libraries to use with the components
  • Decide on software to use for the project

Week 3

  • Narrow down library choices so we can start programming once the board comes in and familiarize self with the library choices
    • Need to find appropriate libraries to:
      • Operate Piezobuzzer
      • Display over VGA
      • Interface with MicroSD over SPI
      • Easily use NES Controller
  • Document library choices and share/confirm with the group
  • Refresh my C knowledge, learn how to use NUCLEO software
  • Other possible tasks are blocked by the ability to test with the board and devices

Concerns

  • We don’t have much done and are waiting on parts to start doing things. Other members are working on what they can without the parts, I can only do research and familiarize myself with the appropriate libraries and software.

Reflection

This list was made after our team’s meeting in the middle of the week, and thus not all tasks were completed. Without the board, I cannot test connectivity to the software, and the software seems to be difficult to work with (and obtain). ST’s website says that the IDE provides libraries for common activities such as VGA libraries and SD over SPI, but the software struggled to load the example programs. Will have to look into this this week, and it should be easier since we expect the boards this week. As such, the entire todo list will carry over to next week, as I need to verify that the IDE can actually support what we need the board to do, and figure out how to use said software with external libraries (and use the software in general). The only addition to the todo list I will add is checking if the university has resources for using these boards, as when I asked around, these seem to be a common board used in classes.

Week 4

To do:

  • Research STM32CubeIDE software
    • Verify this is the correct software to use with the board
      • See if other projects/courses/etc. use this board, and get information on how to (properly) use the IDE
    • Verify the software has builtin libraries for display and SD over SPI tasks
    • Successfully connect the software to the board
  • Familiarize self with development tools and environment
    • Above task should help familiarize myself with the IDE
    • Find libraries for the following
      • Piezobuzzer
      • NES controller
    • Make and test a small program that verifies I can program the board using the software (learn by doing)
      • Turn LED on board on/off
      • Some other hello world-esqe program

Concerns

I have exams, club management tasks, and a lot of other things going on this week. I will try to make OSHE a priority when possible, but I’m on my own in terms of figuring out how to use the ST software correctly (unless I can find university resources). Still will be a lot of research based tasks until I know how to interact with the board.

Week 5

NOTE: Limited availability due to Winter Carni

To do:

  • Get and be able to use input from the NES Controller
  • Help the others research and implement VGA
    • Note: Do we need to use a VGA Arduino shield to satisfy time constraints from project spec?
  • Find out how to run ARM code off of SD Card

Reflection

We received the parts finally! I spent a lot of time in the lab attempting to figure out how to interface with the SD card first and learned that the board can be programmed and flashed using the Arduino IDE (ST supports this?). Pins from both the ARM chip and the Arduino headers can be used. This should make it immensely easier to develop for the board and allows support for more libraries. Since programming microcontrollers is new to me, I made programs to blink the onboard LED (in both the STM32CubeIDE and the Arduino IDE) Given this, I was able to connect the SD card reader we bought to the board and interact with it using SPI. I was able to get info on the specs and contents of an inserted SD Card. Research was done on how to run code off the SD card, but that has been put on hold in order to prioritize the upcoming due dates on the project spec.

Concerns

Winter carnival will cut lab access and time short for this week. I will prioritize working with the team to get VGA working to satisfy the project spec. Concerningly, the project spec says that ALL programming needs to be done by next week. That will be an issue.

Week 6 – CDR Week

Reflection

Lots of progress has been made in figuring out how to interface with each individual component. I finally got some output out of the NES controller, after finding a programming error in my code. Lots of clarifications were done this week, and it has made the goal way clearer (for me, at least). We now are able to read the SD card, get some inputs from the NES controller, push and run code on the board, and more, all using the Arduino IDE. Lots of progress has been made, and once we implement VGA, we can work on combining all the individual parts together to make the device!

To do:

  • CDR Presentation
  • Write code to show button presses from the NES controller ✓
    • Determine if NES controller problems can be solved via code or by a new 4021 Shift Register (or a new controller)
  • Figure out why the STM32 stops running code (and blinks LED) after a few seconds when plugged in

Concerns

Currently, the NES Controller thinks that the D-Pad Right button bit is always pressed, and the buttons are shifted by a bit (ex. pressing B on the controller shows up as pressing A on the software side). The latter can be fixed by software, but while researching the odd behavior on the controller, I came across articles that mentioned that the 4021 Shift Register in the controller may be causing issues, or some other hardware bug.
I’m also having issues where the board runs code for a bit but then flashes an LED and the code stops running. I found limited documentation and solutions from ST, but it hasn’t fixed the issue. I need to figure out how to fix this ASAP as this will cause problems when trying to run a program for longer than a few seconds.