GraphicsManager, beta-testers wanted!

Hello everybody!
I have been working on a GraphicsManager class for a while now, and its getting to the state where i wouldn’t be completely ashamed if a few persons would glance into my source code.

The current version includes 4 plugins; two different types of graphical gauges (linear and radial), as well as a analogue clock and a text box.
There are features implemented to update the value of each gauge and the graphics manager render method draws all of the added plugins in order, so you can build up the layers of your GUI by modifying the order of plugins added.

The various plugins are using the same (super-class) draw methods and colours defined in the GraphicsManager, so it presents a uniform colouring scheme/design.
But the current graphics should be considered placeholders, unless you are a huge fan of the “Day Of The Tentacle”-theme… :)

It is meant to be a “drop-in-solution”, to very easily add some gauges and info boxes to a small display, to create a graphical interface (GUI) for a voltmeter, dashboard for a motorcycle or whatever tickles your fancy that involves displaying stuff.

But im not quite ready yet to display my somewhat “noobish” code for the world, even though my ambition is to release the package as open-source when its ready.
So i am looking for some volunteers that are interested in using my creation for their own project, and to provide some feedback.

Simply put, i need beta-testers just to verify that my code is ready to be released, and that my implementation is user-friendly and intuitive enough that “any” user can download and use it.

As a separate “request”, if you are a “python-guru” and enjoys teaching others better ways of doing things, feel free to “apply” too, even if you are not planning on using my code.
I would certainly appreciate a private code review.
I am self-taught so im probably not utilising the whole toolbox so to speak, or using the proverbial hammer as a screwdriver.
But i have a strong desire to improve… :)

The hardware and software requirements are basic:

  • Raspberry Pico or compatible RP2040 microcontroller.
  • Pimoroni Display pack, compatible with the PicoGraphics library (i am using Display Pack 2.0).
  • “latest” pimoroni micropython distro for your Pico (the .uf2 file) (latest is probably not needed, but a update takes less than a minute thanks to the prepackaged file from pimoroni… ;-) )

You need a github account (free) to access the GraphicsManager package, so you’ll also need some git skills, but its not that big of a issue if you lack git experience.
You will need some basic python skills to utilise a package, but if you can use a Pimoroni display then you know enough to use my GraphicsManager. :)
It is desired, but not required that you also have a “current project” that would benefit using a graphics manager to handle your display.

My GraphicsManager package contains everything you’ll need to add to your project, except for documentation, excluding code comments.
If you’ll need someone to hold your hand while installing and using this package i may be able to offer some limited help over discord, but i am a single parent primarily, so my response time will vary.

And of course, i expect you to be able to keep my code to yourself, not reposting it or parts of it, or share copies of it with others.
But you are encouraged to make pull requests and play with the included code for your personal use (after i granted you access to the package).
You are allowed to mess with your personal copy of the package code, but not use it, or parts of it, commercially (i.e: make money off it).

Sounds compeling. Are you able to share a link to it, please?

I was expecting to find some sort of DM function here on the forum, but to no luck…
Please send me a email; “spammy at liggist . se” (remove spaces and replace at with @…), include your username here and your github account and i will invite you! :)

Is it any of these?

No, the github repo is private, as in not public.
This may change soon though, not a huge fan of the github access controls…

One of my early addons did show up in your list though, game of life at the bottom of the list…

I think your request is very strange. You are asking people to test your program, review the code, create pull requests. At the same time you want them to adhere to some sort of “non-disclosure agreement” and not share what they have done.

My suggestion is: sit down and think about the license you want to use for your code. If it is an open-source license, than make your repository public and post the link here. Users will try your code, comment on it an create PRs and everybody will profit from it. If you want to keep your code closed than I would suggest that you go to a marketplace for freelancers and pay other people for testing, reviewing and programming your stuff.

1 Like

To be brutally honest with you; your reaction indicates that you have no practical experience from beta testing.

Its quite common that beta-testers are required to sign an actual NDA, and most of the beta-testers around the world are not getting paid. This i know, because i am one.
So if commercial enterprises arent paying for their betatesters (more than giving them free software), then why should i?
And since commercial enterprises arent freely sharing their code in development, why should i?
And why it is “very strange” when im doing pretty much the exact same thing as the rest of the industry?
Is it maybe because im not getting paid for my work? Or because you arent getting free software?

Its quite common, almost part of the human condition, to feel that one must be finished before one can “show off” the work, its what i am and its not changing anytime soon.

To keep something private until its ready to be displayed may seem strange to you personally, and that is all right, everything doesnt make sense to all the people all the time…

A license is not really a protection from anything, but access control is.
So i propose that its okay to disagree.

There is now a discord channel for this project, in case anyone else is interested. :)

A creative commons (NonCommercial-ShareAlike 4.0) license is also being added to the project, but it will remain as a private repo for a while longer…
I want to make sure its polished enough to be released… :)

So any help in pointing out the “dirty spots” is greatly appreciated!

I cant say i feel quite ready yet, but the repo should now be public:

Thank you for putting this up.
I’ve got it working and it works very well and I hope a few more people will give it a try.
I’m too sure about the hands/pointers. I prefer more ordinary ones - perhaps different colours?

And thank you kind sir for trying it out! :)

You can define your own colors when creating the GraphicsManager instance by using the “colors” keyword:
gman = GraphicsManager(colors=[ (0,0,0),(10,10,90),(220,5,180),(250,200,255),(180,160,250),(255,160,160), (127,127,127), (255,0,0), (127,255,255) ])
color index = [ black (for clearing screen), gauge background, guage frame, text & indicator color, extras…

Ive been on the fence regarding the indicator needles for a while, so i will probably add a “normal” needle as a selectable option at a later time.
They have grown on me though, creating some sense of nostalgia since i used the same indicator shape on my first python clock. :)

But feel free to modify your gauges as you see fit, the indicator needles are defined as a picographics polygon so you can just remove (or modify) the intermediate points in order to straighten the arrow. :)
The first point in the hand polygon is the base of the needle, so the tip is the largest Y-value (-94 i belive) point in the list.

Forgot to ask; did you have any issues at all with the provided instructions and/or software? :)
Its my first repo, so im quite eager to make it as good as i can. :)

I’ll modify the hands later, thanks for the info.
I had no trouble but I’ve used GitHub many times in the past. I clicked on the Green Code button and downloaded the .zip. Opened it up and pasted the files into the correct places.
Easy when you know how!

1 Like