Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Board 'odt-rpga-feather' has an unknown programmer type "mcu". #535

Closed
zapta opened this issue Jan 11, 2025 · 15 comments
Closed

Board 'odt-rpga-feather' has an unknown programmer type "mcu". #535

zapta opened this issue Jan 11, 2025 · 15 comments

Comments

@zapta
Copy link
Collaborator

zapta commented Jan 11, 2025

@Obijuan , @cavearr

The board definition below has the programmer type "mcu" but there is not such programmer in the programmers.json file. Is it broken? Any suggestions on how to fix it?

"type": "mcu"

  "odt-rpga-feather": {
    "legacy_name": "ODT_RPGA_Feather",
    "description": "ODT_RPGA_Feather",
    "fpga": "iCE40-U4K-SG48",
    "programmer": {
      "type": "mcu"
    }
  },
@zapta
Copy link
Collaborator Author

zapta commented Jan 13, 2025

@Obijuan, @cavearr, do you know what this 'mcu' mean? Is this board useable with apio?

@cavearr
Copy link
Member

cavearr commented Jan 13, 2025

i don't know this board

@zapta
Copy link
Collaborator Author

zapta commented Jan 13, 2025

@cavearr, it was added in the commit below. Even at that time, there was no programmer called 'mcu' so it seems that that board was broken from the begining.

Ok to delete?

b427656

@cavearr
Copy link
Member

cavearr commented Jan 13, 2025 via email

@zapta
Copy link
Collaborator Author

zapta commented Jan 13, 2025

Hellow @skerr92, can you please shed a light on this commit b427656 ?

The reason we ask is that we are revisiting the apio boards definitions and board odt-rpga-feather refers to the apio programmer id mcu which doesn't see to exist in apio's programmers definitions: https://github.com/FPGAwars/apio/blob/develop/apio/resources/programmers.json

Was it ever run successfully with apio?

@skerr92
Copy link
Contributor

skerr92 commented Jan 13, 2025

The goal with MCU was that the FPGA on RPGA Feather is programmed by an RP2040. The primary method intended for loading the FPGA was through a library used with CircuitPython. The user would end up needing to copy the bin to the CIRCUITPY drive. I was hoping to revisit this and add a check for CIRCUITPY drive and copy over automatically. Alternatively, transforming the bin to a C header to use with Arduino.

@zapta
Copy link
Collaborator Author

zapta commented Jan 13, 2025

Thanks @skerr92. The programmer type in apio's board definition is a key reference to programmers.json when the programmer commands that apio issue are defined.

https://github.com/FPGAwars/apio/blob/develop/apio/resources/programmers.json

  1. Do you know if there is a programmer command for that board? E.g. a python pip package that installed a binary that apio can call to program the board?

  2. That board definition never upload successfully with apio, right? (we try to decide how to handle it).

@cavearr
Copy link
Member

cavearr commented Jan 13, 2025

@zapta , @skerr92

if mcu is in development, the best solution now is used the local boards.json and programmers.json until the development will be finished or almost with something working. In this moment the mcu will be part of apio programmers.

Is this the case? if is it, the best solution is remove mcu from apio and return back when works. now is not neccesary inetgrate into apio core like before this new version.

@skerr92
Copy link
Contributor

skerr92 commented Jan 13, 2025

The primary objective for having the board in APIO was to enable IceStudio usage for those looking for a more visual IDE for developing for the FPGA on board. If it's preferred, the option that would make the most sense is to simply disable the ability to program when mcu is set at the programmer type. Otherwise it kind of makes the board unusable in IceStudio to simply remove it.

@zapta
Copy link
Collaborator Author

zapta commented Jan 13, 2025

@cavearr, removing it for now until it will be resolved sounds reasonable.

@skerr92, if I understand correctly, the approach you propose is not finding a way to program that board with apio/icestudio but to have a graceful way to mark at board as 'non programmable with apio/icestudio'. Is it so?

@skerr92
Copy link
Contributor

skerr92 commented Jan 13, 2025

Yeah, that's correct. A graceful failure/notification so it's generally still usable.

@zapta
Copy link
Collaborator Author

zapta commented Jan 14, 2025 via email

@skerr92
Copy link
Contributor

skerr92 commented Jan 14, 2025

After building the user can drag and drop the bin file generated from bitstream generation to the RPGA Feather USB MSC drive when using CircuitPython. I have a tool for using with CircuitPython called IcePython to program the FPGA on board that my end users would utilize for loading the bitstream. The idea is they set up the code on the board once to accept their bitstream and then they only need to drag and drop from there.

@zapta
Copy link
Collaborator Author

zapta commented Jan 14, 2025

Thanks. I created an issue for it here #547

For now we will comment out odt-rpga-feather because that feature is not supported yet.

If you want to use it, the dev version of apio support project specific boards, fpgas, and programmers definitions so you can add custom boards.json in your project.

Edit: Deleting the board definition. Can add back if/when non programming programmer will be supported.

@zapta
Copy link
Collaborator Author

zapta commented Jan 16, 2025

Board removed. Added an issue with a feature request for the 'no programming programmer'. Closing.

@zapta zapta closed this as completed Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants