Skip to content

Brainstorm #1

@RobThree

Description

@RobThree

Hi!

Thanks for replying to my YouTube comment. I thought I'd get in touch with you here... I would've started a discussion but you disabled those so that's why I created an issue.

I would like share my brainstorm:

  • ESP8266 / ESP32 MCU (both have WiFi capabilities which makes for a wireless connection to the computer, which means you can easily put the whole thing further away, both are cheap and readily available)
  • PCA9685 for 16 channel PWM, easily daisy chained (up to 62 x 16channels), where each channel is a gauge.
  • WS2812B LEDs, 30 LEDs/meter should be (near) perfect; the 'casing' should add the required extra mm's between (a group of) ammeters to account for the slight difference in lengths.
  • 50µA 85C1 ammeters
  • 100K trimpots for calibration / adjustment which should suffice in both 3.3V and 5V scenario's.
  • Start out with breadboard and modules (PCA9685, ESP8266 / ESP32) for prototyping, then design a single PCB and use discrete components (PCA9685, ESP8266 / ESP32)
  • Design a (modular) casing so that it'll be easy to make X by Y rows/columns; maybe they snap together, maybe just provide different layouts as 3D files for user to choose and print
  • Protocol could be real easy: Each byte is a 0-100(%) value where each index corresponds to an Ammeter. The sign-bit (bit 7) will be unused for values 0-100 so it could be used to, for example, disable/enable the corresponding gauge's LEDs. Send the amount of ammeter bytes et voila. 10 bytes? 10 gauges. 20 bytes? 20 gauges. The "host" (computer) can then choose what to send at what index, the "client" (MCU/Ammeters) just display the values. All logic is in the host which makes for easy updating / changing stuff around. The MCU can also determine the green-orange-red gradient based on the 0-100% values and set the LEDs accordingly. Another byte per gauge could be added/reserved to send extra options ("inverted palette" for example, where 0 = red and 100 = green, "dimmed" or "highlighted", "blink", "alternative palette" (purple to green), ... whatever).

Nice to haves:

  • Cross platform (Windows/Linux/MacOS)
  • "High" update rate (3 to 5 per second minimum, up to 10, maybe even higher?)
  • All 3D-printed design, no need for aluminium bars etc.
  • Since all 'logic' is in the host, we can easily send CPU (load), GPU (load), Network (usage), Disk (usage and/or free) etc. as long as it can be represented as a percentage.

Maybe we should create a discord (no clue how that works) to discuss / brainstorm further?

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions