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

add beginner-friendly usage documentation and/or use-case driven examples #26

Open
Sorontik opened this issue Apr 18, 2022 · 1 comment

Comments

@Sorontik
Copy link

Sorontik commented Apr 18, 2022

Hello,
i'm really impressed by what you managed to squeeze out of the RP2040 and very excited to try this myself.
In your readme you explain the creation of this project and the technical details very nicely, but only from a "PicoDVI internal" and somewhat low-level point of view. Your examples do a good job at showcasing the capabilites of the library, but they don't really help applying it to a specific use-case.
I also couldn't find much other ressources about this online (apart from a PiCockpit Blog Entry ).
Also some of the information (e.g about clock frequency, core voltage etc.) is scattered in the text and easily overlooked.

As I'm new to the PiPico/RP2040 world and Microcontrollers are just a hobby for me, I'm really having trouble understanding what's going on in the examples and how to translate it to my intended use-case.
(For me, the terminal-app is closest to my use-case, so my ideas and examples are kind of focued on that but most of it probably applies to the other example-apps as well)

So i suggest adding some more user-oriented / high-level documentation that

  • collects setup prerequisites and their implications in a clear overview. Stuff like:
    • system frequency / overclocking (what's the required system frequency, what are possible side effects of altering it?)
    • altering core voltages (dangers/side effects?)
    • used hardware modules (PIO Blocks, DMA-channels, interpolator etc.)
    • given it's popularity and widespread availability: a section on the Pi Pico (even if it's just a "fully compatible with Pi Pico" or sth)
    • an overview over the different modes and their implications (memory usage, freq & voltage requirements etc.)
  • answers questions like
    • what do i need to take into consideration, if i want to build a project on top of/around this library (both hard- and software)
    • how can i customise it (e.g. adding custom symbols to the font, change it from 8x8 to a more common 5x8 (HD44780 like) font)
    • what are your considerations regarding the assets' data formats (eg. why are you representing 2D or 3D information in 1D arrays)

and maybe also some examples that present a concrete use-case instead of showcasing the library:

  • an example terminal-drivative that reads text from UART/USB stdio and displays it in a terminal-like fashion
  • an example on how to combine apps:
    • display some text in front of an image (like a splash screen) or embed a logo-like image into a terminal output
    • combine text-output with drawing lines to display a fixed-size table (e.g each table cell is 2 rows by 10 characters but the table-lines' thickness is less than one glyphs height or width)
    • a multicolor terminal or table (where fg and bg color can be set per line or cell for example)
      Forget about that, didn't see the color-terminal example since it's not mentioned in the documentation, my bad

  • read sensor data (analog values, digital pins or maybe even via serial) and display it on the screen in simple line or bar-graphs
  • i doubt it's possible, but if you disagree: a turtle-like drawing app

This list is just a compilation of ideas, some of which probably don't make sense or even are outright impossible but i think it illustrates the intention of this issue.
Unfortunately I'm not versed enough in C/C++ and don't really understand your library, so I can't do this myself, but i'd be happy to help as proof-reader or do anything else i can to help.

Background:
The microcontroller-world is a hobby for me. I started to teach myself with Arduino, then advanced to dealing with the underlying Atmel/Microchip MCUs directly and now, encumbered by their limited resources, I'm trying to utilize the RP2040 / Pi Pico for selected projects.

I believe there are many people like me out there who would love to use this library to add a visual interface to all kinds of neat little projects but are not skilled enough (yet) to do so with the rather low-level documentation already provided.

Just to give you an idea: my current Project is a DMX-Monitor.
It reads DMX (digital lighting control protocol) values, displays them on the screen in a table and highlights the last changed value(s)
DMX essentially is a list of 512 8-bit values (so 3 digits for display needed) and i would like to display at least 48 or more).

So i imagine a 10x10 table for the values and change the background for changed values.
I dream of displaying the channel number in grey and the value in white in each cell, but since i have no idea at all how to approach this, fancy stuff hast to wait until basics work.

@Wren6991
Copy link
Owner

This is a great idea. Unfortunately I don't have time to work on it at the moment.

Note the interface is intentionally low-level, as getting decent performance requires you to think hard about how your pixels are laid out etc. If we had more RAM then maybe a "take a framebuffer" interface would have more value.

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

2 participants