Go Down

Topic: Creating an Improved Shield List (Read 600 times) previous topic - next topic

numma_cway

Hi there!

tl;dr: Do you think that creating an up-to-date Shield List that has more features and does not rely on a single person is a good idea and would you maybe even want to help?

I joined the Arduino universe some months ago, but already did some projects, wrote a library for a sensor and collected quite some shields already. When I decided which shields to buy, I noticed is that shieldlist.org hasn't been updated for 5 years now, has a backlog of 531 submissions (in contrast to 317 extant entries) and misses some important features. The list on arduino.cc has many dead links, too. My idea is to make a better site with two major improvements and I already did quite some work, but before I continue, I would like to know if the community thinks this is a good idea (and would maybe like to help) or just a waste of time.

Key improvements/goals:

1. Add shield categories
  • Instead of grouping shields by their makers, shields are grouped by categories representing their supported features. There are currently 29 categories (e.g. Wi-Fi, Ethernet, SD card, XBee socket, CNC, prototyping, ...) and a shield can have multiple of these.
  • For each of a shield's categories, a short note can be added, which is intended for the name of the chip, connector count and other important info.
  • Each category gets a list of boards with that feature. The list displays the name, a photo, used pins (multiple pin-sets can be added to a shield, as some shields allows the user to switch between different sets) and features along with their notes (selected feature will be highlighted).
  • Each shield category has an SVG icon I drew myself, so they all have the same style.
Beside the categories, a shield page currently contains the name, at least one photo, pinheader/stacking type (topmost, stacking, unassembled/need to solder), and the following optional information: Maker, pins used, flag if no longer made, flags for officially supported major Arduinos, license, source link, library link, main free text (can use HTML or Markdown) that can be used for pretty much anything (e.g. further links or (if hard to find) even sample code).

There will still be lists for makers with at least 5 or 10 shields.



2. Don't rely on a single person
(increase the Truck Number - the minimum number of project members that need to be hit by a truck to make a project fail - though I'm usually quite reliable and still maintain projects I started 10 years ago)
  • The site's backend is completely written in Shopify Liquid and uses the Jekyll static site generator, so it can be hosted and compiled on GitHub Pages, a type of reliable ad-free webhosting. That means that a team (in contrast to only one person) can maintain the site and if it ever gets abandoned by that team, everyone will be able to fork and continue the project. Shields can easily be added via a YAML front matter (very simple format, a bit like INI) and a description in either Markdown or HTML (at the entry creator's choice).
  • Advanced search, implemented on client-side using JavaScript. This is required to be able to use a (static) file-oriented database system like the one in Jekyll which allows not only the code but also the database to be open-source. You can search for e.g. shields that don't use certain pins and have a certain feature.
  • Everyone can fork the project, add stuff and make a pull request.
I welcome suggestions for any other free solution that is owned by a major organization (to not rely on donations or a single person's will) and allows collaboration, easy export of the entire project and is free of ads, unwanted cookies and trackers. Wikis might be easier to edit, but their are harder to host and browse/search/filter (I do know DPL, but I also know it's limitations).



But the project isn't finished yet, just most of the Jekyll programming is. Help would be greatly appreciated, especially for these tasks:
  • Add more shields. It's easy. If you can post on a forum and fill in a form, you can add shields. It's also OK to add shields of a certain maker only.
  • Add CSS. Requires experience with CSS. The site currently has very clean HTML5 so it can easily be styled. Graphics are already done.
  • Work on the search feature. Requires experience with JS.
  • Improve the overall site with new features. Requires experience with Jekyll/Liquid, which isn't hard to understand if you don't have to start from scratch.


Things to be discussed:
  • Is there a need to add the exact ICSP pins? Most shields don't even have the headers, do they only have them if they use them?
  • What license should be used for non-image files? I personally prefer CC-BY-NC-SA, as I don't want it to ever be hosted with ads/analytics/cookies/trackers and it's not really software (code is more similar to the template programming on a MediaWiki), so a content license makes more sense to me than a software license.
  • Does it make sense to be able to discuss individual shields via Disqus (non-commercial projects may qualify for the free Pro membership), IntenseDebate, GraphComment, Widgetpack or me self-hosting HashOver? (For privacy reasons, externally-hosted comment services should be loaded on request or if the user chooses to always load them via a cookie.)


Thanks for reading! Looking forward to any feedback.

pert

tl;dr: Do you think that creating an up-to-date Shield List that has more features and does not rely on a single person is a good idea
Sure.

would you maybe even want to help?
I'd be willing to copy some shields over from the existing lists if that still needs to be done.

If you need help with administration of the repository (managing incoming issue reports and pull requests) I can do that too. I'm currently doing this on the arduino/Arduino repository.

Is there a need to add the exact ICSP pins? Most shields don't even have the headers, do they only have them if they use them?
It's not necessary to specify which pins are broken out to the ICSP header, since that is actually dependent on which board the shield is plugged into (11, 12, 13 on Uno. 50, 51, 52 on Mega. 14, 15, 16 on Leonardo).

Typically what people would want to know regarding ICSP is whether shields with SPI devices connect them via the ICSP header or via pins 11, 12, 13. The latter will only be compatible with the Uno. The former will be compatible with all boards. I believe the latter system is more rare in recent shield designs.

I welcome suggestions for any other free solution that is owned by a major organization (to not rely on donations or a single person's will) and allows collaboration, easy export of the entire project and is free of ads, unwanted cookies and trackers. Wikis might be easier to edit, but their are harder to host and browse/search/filter (I do know DPL, but I also know it's limitations).
I think a GitHub repository is a reasonable choice as long as you can make sure the project doesn't get abandoned without anyone to merge PRs (yes, it can be forked but then the URL changes and the project loses a lot of momentum). I think it's worth considering a publicly editable wiki (though it sounds as though you've already ruled that out), but not trying to host it yourself. The Arduino Playground would be the obvious choice, especially since it already has a page for this. A GitHub wiki would also work (I prefer Markdown to whatever the Playground's pmWiki uses). Those options will definitely be much more limiting but that also means the project is easy for anyone to maintain because they don't require you to know JS, HTML, CSS, Jekyll/Liquid.

wfriedrich

I like the idea.
I have designed 2 shields (one is for sale), so anything that brings more exposure would be great.

NTSC/PAL Video Display shield

20 channel analog IO shield


 - W.

Go Up