# Need help from Experts on Meowbit!

**URL:** <https://forum.makecode.com/t/need-help-from-experts-on-meowbit/38672>\
**Category:** Help\
**Created:** [August 15, 2025, 1:01am UTC](https://forum.makecode.com/t/need-help-from-experts-on-meowbit/38672 "2025-08-15T01:01:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![CodeTycoon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codetycoon/32/27588_2.png) [@CodeTycoon](https://forum.makecode.com/u/CodeTycoon)\
**Post date:** [August 15, 2025, 1:01am UTC](https://forum.makecode.com/t/need-help-from-experts-on-meowbit/38672/1 "2025-08-15T01:01:23Z")

</div>

hey there. I’m trying to make custom firmware on Meowbit, and the first thing i have done is comment out an image from the images folder. By the way, the repo im using is here: [HomeAssistantTycoon/Meowbit-Firmware: UF2 bootloader for STM32F4](https://github.com/HomeAssistantTycoon/Meowbit-Firmware) Its based off of the Meowbit v 2.8.2 bootloader. When I try to run make via this GitHub workflow: name: Build Meowbit Firmware

on:  
push:  
branches: [main]  
pull\_request:  
branches: [main]  
workflow\_dispatch:

jobs:  
build-firmware:  
runs-on: ubuntu-latest

```auto
steps:
- name: Checkout repository
  uses: actions/checkout@v4
  with:
    submodules: true

- name: Install ARM GCC
  run: |
    sudo apt-get update
    sudo apt-get install -y gcc-arm-none-eabi make

- name: Patch libopencm3 Makefile
  run: |
    echo "Patching libopencm3 Makefile for GitHub Actions..."
    # Force bash as shell globally
    sed -i '1s|^|SHELL := /bin/bash\n|' libopencm3/Makefile

- name: Build libopencm3
  run: |
    echo "Building libopencm3 single-threaded..."
    make -C libopencm3 -j1

- name: Build Meowbit firmware
  run: |
    echo "Building Meowbit firmware..."
    make build-bl -j1

- name: Upload firmware artifact
  uses: actions/upload-artifact@v4
  with:
    name: meowbit-firmware
    path: |
      build/*.hex
      build/*.bin

```

I keep getting an error when it tries building the submodule libopencm3. It fails with: `/bin/bash: -c: line 1: unexpected EOF while looking for matching '"'` I’m wondering if I’ve done something wrong and I should be doing it differently? (I would rather do it online than locally) Or is there an issue with the libopencm3 repo itself? The libopencm3 repo is here: [mmoskal/libopencm3 at 364ee72d0c05844c703c86e0bf4f407443a7370a](https://github.com/mmoskal/libopencm3/tree/364ee72d0c05844c703c86e0bf4f407443a7370a) If any more information is needed I can provide it to the best of my ability. I’m curious to know if @richard @mmoskal @AqeeAqee or even @EpicKitty (who tried messing with the firmware unsuccessfully like I did as well) have any idea what the issue is or what I am doing wrong. Any and all help is appreciated. Thank you!

---

<div class="post-metadata">

**Author:** ![a012](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/a012/32/24099_2.png) [@a012](https://forum.makecode.com/u/a012)\
**Post date:** [August 28, 2025, 4:46am UTC](https://forum.makecode.com/t/need-help-from-experts-on-meowbit/38672/2 "2025-08-28T04:46:16Z")

</div>

Ahhh yeah, I see the post — this is actually a **GitHub Actions + Makefile issue** , not MakeCode directly. That `unexpected EOF while looking for matching '"'` error usually means that somewhere in your script, a quote (`"`) is unmatched or the shell is interpreting it incorrectly.

Looking at their workflow:

```auto
sed -i '1s|^|SHELL := /bin/bash\n|' libopencm3/Makefile

```

That part should be fine, but the problem might happen **later in the `make` commands** , especially if any filenames or commands have quotes that the shell thinks are unclosed. Online CI (GitHub Actions) is more picky than local shells.

Some tips you could give them:

1. **Check for stray quotes in the Makefiles** : Even one missing `"` can break the workflow.
2. **Try escaping quotes properly** : If any path or variable has spaces or quotes, wrap it in double quotes `"` and escape inner quotes.
3. **Run the commands locally first** : Sometimes debugging locally is easier because you can see the full error context.
4. **Use single-threaded make** : They already did `-j1` which is good — avoids race conditions.
5. **Check line endings** : If the repo has Windows CRLF endings, GitHub Actions can choke. Run `dos2unix` on Makefiles.

Honestly, unless they want to get super deep, the main thing is that the CI shell sees **an unclosed `" somewhere** , likely in the Makefile or a command they added.

---

<div class="post-metadata">

**Author:** ![CodeTycoon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codetycoon/32/27588_2.png) [@CodeTycoon](https://forum.makecode.com/u/CodeTycoon)\
**Post date:** [September 2, 2025, 4:55pm UTC](https://forum.makecode.com/t/need-help-from-experts-on-meowbit/38672/3 "2025-09-02T16:55:40Z")

</div>

Yeah, i figured out a workflow that fixed it, thank you!
