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

boards/bdmicro_vina_d51: A few updates for flexibility and expansion. #4561

Merged
merged 2 commits into from
Apr 7, 2021

Conversation

bd34n
Copy link

@bd34n bd34n commented Apr 5, 2021

ESP-01 header renamed to AUX, and expanded to 12 pins from 8
pins. Pins 1-8 still accommodate the ESP-01, with expansion to full
SERCOM 4-pad support to allow for SPI and I2C on that expansion port
with additional GPIO control.

Update pins.c with additional signals provided AUX_1-8, along with
UART, SPI, I2C name usage as aliases to appropriate AUX_1-8
signals. Additionally, add several alternate names specific to several
expansion modules - the ESP-01, and the ATW-01 using the WINC_1500
(SPI) w/interrupt and control needed for the WINC - with assignments
to module pin positions.

Re-work SERCOM assignments to accommodate the above from other parts
of the board, which required moving a SERCOM or two around in order to
accommodate the 4-pad sercom pin mapping on the AUX port.

Built and tested using latest from 'main':

Adafruit CircuitPython 6.2.0-rc.0-70-ga1562430f-dirty on 2021-04-05;
BDMICRO VINA-D51 with samd51n20

ESP-01 header renamed to AUX, and expanded to 12 pins from 8
pins. Pins 1-8 still accommodate the ESP-01, with expansion to full
SERCOM 4-pad support to allow for SPI and I2C on that expansion port
with additional GPIO control.

Update pins.c with additional signals provided AUX_1-8, along with
UART, SPI, I2C name usage as aliases to appropriate AUX_1-8
signals. Additionally, add several alternate names specific to several
expansion modules - the ESP-01, and the ATW-01 using the WINC_1500
(SPI) w/interrupt and control needed for the WINC - with assignments
to module pin positions.

Re-work SERCOM assignments to accommodate the above from other parts
of the board, which required moving a SERCOM or two around in order to
accommodate the 4-pad sercom pin mapping on the AUX port.

Built and tested using latest from 'main':

Adafruit CircuitPython 6.2.0-rc.0-70-ga1562430f-dirty on 2021-04-05;
BDMICRO VINA-D51 with samd51n20
@tannewt
Copy link
Member

tannewt commented Apr 5, 2021

Is this board still in development and got a rev? I'm surprised because it had a lot of downloads recently.

@bd34n
Copy link
Author

bd34n commented Apr 5, 2021

This should be the last update requiring PCB updates and pin shuffling to accommodate changes (famous last words), so I think it is at the point where it should be stabilized. Updates were based on early customer feedback and also some future modules we want to add taking advantage of the AUX port. It is at the point now where it does everything we want and satisfies all customer feedback. Photo on the web site is a bit dated - hopefully will be getting that updated RSN. Layout is virtually identical with the exception of the I2C (different connector), and the 8-pin socket which is now 12-pins.

Regarding Rev - this is actually rev 010 (10) - silkscreened on the board, but not differentiated otherwise. We will continue to support customers that have earlier Revs with a custom build or replace their boards for them so they don't have to worry about it.

If I had known then what I know now, I would have held off submitting for inclusion. I do think this will be the last major rev to this board - from a CiPy version compatibility perspective, at least.

@tannewt
Copy link
Member

tannewt commented Apr 5, 2021

Regarding Rev - this is actually rev 010 (10) - silkscreened on the board, but not differentiated otherwise. We will continue to support customers that have earlier Revs with a custom build or replace their boards for them so they don't have to worry about it.

Please don't maintain a custom build because it'll fall behind. Instead, create a second board def for this rev and the newer versions.

@bd34n
Copy link
Author

bd34n commented Apr 6, 2021

@tannewt , just to make sure I'm clear - you are asking to abandon (or modify) this pull request, then add a new board with a different name to differentiate it from earlier versions? Something like bdmicro_vina_d51_xxx where xxx is some designator indicating it is not binary/UF2 compatible with bdmicro_vina_d51?

If so, would it be ok instead to submit a PR that renames the current bdmicro_vina_d51 to something like _prelim, and then the current Rev remain attribute-less?

I ask because the board will still be called VINA-D51 commercially, and I worry that customers may get confused. There aren't that many older revs in the wild at this time - and no additional ones will be built, I can guarantee that. And if any customer has issues, I plan to replace their older board with the current.

Please let me know ... I'll do what you suggest, but wanted to offer what might be an acceptable alternative that will help our long-term support with "vina-d51" commercial, as vina-d51 commercial would be "vina_d51" in CircuitPython without any qualifiers for easy UF2 selection from your downloads page.

Thanks for the feedback and calling attention to this potential issue.

@tannewt
Copy link
Member

tannewt commented Apr 6, 2021

@tannewt , just to make sure I'm clear - you are asking to abandon (or modify) this pull request, then add a new board with a different name to differentiate it from earlier versions? Something like bdmicro_vina_d51_xxx where xxx is some designator indicating it is not binary/UF2 compatible with bdmicro_vina_d51?

If so, would it be ok instead to submit a PR that renames the current bdmicro_vina_d51 to something like _prelim, and then the current Rev remain attribute-less?

No need for a new PR. You can update this one by pushing to the same branch. Yes, I'm fine with you renaming the existing version. We've done similar for other boards. I'd suggest naming it based on the version number on the board. You can include the new one's version number in a comment to make it clear.

@bd34n
Copy link
Author

bd34n commented Apr 6, 2021

Excellent, thank you very much!

This update to the PR retains the earlier board rev (with a rename) so
that backward binary compatibility is not lost for the earlier board
revision. The primary name 'vina-d51' is retained for the latest
revision to make it easy for customers to select the proper UF2
download - because the name matches the commercial name.

Details:

Replace bdmicro_vina_d51 with bdmicro_vina_d51_pcb7 (revision 7 of
PCB) with boardfiles unmodified. Add _pcb7 to the workflow build.

Replace bdmicro_vina_d51 boardfile content with latest PCB updates
(revision 10 ov PCB). Add minimal comments in the board files to make
it clear which PCB revision is implemented. Update the USB PID to
reflect an updated board revision.
Copy link
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thanks! Please update circuitpython.org as well.

@tannewt tannewt merged commit 0539b88 into adafruit:main Apr 7, 2021
@bd34n
Copy link
Author

bd34n commented Apr 7, 2021

I'm working on getting the photos updated for the CircuitPython.org update. Should be in the next few days.

Thanks again!

@bd34n bd34n deleted the bdmicro_vina_d51_update branch April 7, 2021 17:38
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

Successfully merging this pull request may close these issues.

2 participants