Hex codes are a simple, unambiguous way to designate colors in digital media. However, going from a color in your head to a hex code can be difficult for the unpracticed. [Guy Dupont] built a little gadget by the name of the Dial Toner to do it for him (Nitter).
The Dial Toner has two dials for each color channel – Red, Green, and Blue. By turning the dials, one can choose a given color in the 8-bit RGB color space, and that color is then displayed on the device’s included RGB LED. Once selected, the button can be pressed to type the selected color’s hex code into a text box. The Dial Toner runs on a Xiao RP2040 microcontroller board, and is coded in CircuitPython.
[Guy] hopes to sell the Dial Toner on Etsy in future, and is even working on a CMYK version for print addicts. We’ve featured [Guy]’s work here before, too, in the form of his extended-play HitClips cartridges. Video after the break.
Features:
– exceedingly clicky knobs/button
– built in conversation from hex to RGB, CMYK, HSV
– that's kinda it but w/e pic.twitter.com/swR7sKlFzY— Guy Dupont (@gvy_dvpont) September 13, 2022
Add a color sensor!
Neat!
Bit disappointed that he made a PCB and didn’t use… Dupont cables.
This is the first time that anyone has ever made a joke using my last name instead of my first lol
I didn’t know I wanted this until I saw it! A color sensor would be a great addition to copy external colored objects and get the hex for it as well
You adjust the 6 dials until the color is what you want.
Seems like you’re still typing the hex code but with worse ergonomics. I’d rather hit six keys than twiddle six tiny knobs (phrasing!). I think each channel should just be one analog pot and then it converts that to a two-digit hex and sends it, but hey it’s all for novelty anyhoo.
Pretty sure the LED backlight for the “paste” key is changing colors as you twiddle the knobs, so when it’s the perfect shade of greeny-blue you hit the key to paste in #008080
… and you get a completely different colour pasted in, because the RGB LED’s Colour space isn’t going to match your screen.
It’s great if you’re picking colour values for RGB LEDs, but not for screens.
This clearly wins at being cute (which is also a valid quality), but it will never beat the screen interfaces.
And how accurate is a rgb led in reproducing colors?
Exactly my thought.
It’s quite hard just finding the right starting color balance at full intensity. Then there’s the issue of what some call gamma correction… which is non-linearly dimming each light so that #FF7F00 is actually orange and not yellow.
I think I would replace the clicky rotary switches with continuous turn pots for smoother operation and I would add an LCD to display the current value. That’s just my 2¢ though, someone else might prefer it as is.
I personally think HSV is more intuitive than RGB when searching for a color.
This type of rotary switches are not designed for repeated use. Not sure they last long.
That RGB LED can’t show Brown. https://www.youtube.com/watch?v=wh4aWZRtTwU
I agree with your point, and it serves as a good example of the absolute mess that is created by the human constructs dealing with “color”. In defense of the creator (and advocate for the devil) the device doesn’t claim that ability, nor does it involve a format that describes or contains brown. As long as it is acknowledged that the device outputs a mix of red, green and blue light, and displays a 24 bit hex code that closely represents that output, then I’d imagine it works fairly well.
I’m falling down a thought-wormhole here, but as far as I can reason, the only purely objective physical description of color that we can rely on is it’s wavelength. Intensity perhaps. But intensity is useless without context. Everything else is either relative or subjective, or both. And of course color as we use it cannot be sufficiently described using only wavelength and intensity. I need to stop though, as this is one of those topics where one may very well conclude that nothing exists.
Man oh man, the creator has chosen to enter an exceedingly complex topic. I’m not advocating for walking away, and I think the idea is pretty neat. However I will caution that as one goes deeper, the complexity increases greatly, and in lockstep with a drop in end-user understanding of the aspects involved. Accuracy will become the white whale in any foray into color rendition.
Remaining in the realm of transmitted color seems somewhat straightforward. The color LED output can be calibrated to closely match a calibrated monitor. A sensor can be calibrated as well, though note that I’m referring to it’s use to sense light transmission output, not color reflected from an object. The problems rear up when you begin to deal with the end-user. Is their monitor calibrated? What are the lighting conditions in their environment like as they evaluate the result? What color space are they using? Is the dress blue, or gold?
It’s when you get into printing that the complexity really goes off the charts. The issues above remain a subset of the process, and a whole new batch of issues crop up. There is simply no one good way to convert between transmitted color and reflected color, period. If you attempt to sense what color an object “is” with the end-goal of getting a printer to output it, then you’re making this conversion twice.
I’m not a sayer of nay. I think it’s all super interesting as well. I’m simply setting expectations, and making it known that while the first few layers of this particular onion may come away somewhat easily the onion itself is huge, it’s layers get denser quickly, and not even the photo reproduction industry has been anywhere near the core, if it even exists.
Have a great day!! :)
Wells
Creator here, thanks for the write-up! And thanks for the good feedback. I am aware of the bottomless pit of rabbit-hole of color issues, and am definitely trying to keep the branding more towards “desk toy” (vs. “precision instrument”)
Oooh…. I have a couple of that sort of hex switch, but better, I have some lovely modules that are eight hexadecimal thumbwheel switches — could select an RGBW or RGBA value. (There’s a photo at https://64.media.tumblr.com/5f1560d2f746cf8d10875230cb92bdfd/c61fda96adfc7560-69/s1280x1920/9663b2bdc6be844545399e042c965b0dbfecb15b.jpg .)
The possibilities…