Declan Freeman-Gleason
Declan Freeman-Gleason8:47 PM

@Declan Freeman-Gleason has joined the channel

Declan Freeman-Gleason
Declan Freeman-Gleason8:47 PM

@Declan Freeman-Gleason set the channel purpose: :bulb::bulb::bulb:

Declan Freeman-Gleason
Declan Freeman-Gleason8:48 PM

@Riyadth Al-Kazily Done

Riyadth Al-Kazily
Riyadth Al-Kazily8:48 PM

@Riyadth Al-Kazily has joined the channel

Declan Freeman-Gleason
Declan Freeman-Gleason8:48 PM

@Adam Rideout Redeker @Samantha Rosen

Samantha Rosen
Samantha Rosen8:48 PM

@Samantha Rosen has joined the channel

Adam Rideout Redeker
Adam Rideout Redeker8:48 PM

@Adam Rideout Redeker has joined the channel

Rose Bandrowski
Rose Bandrowski8:48 PM

@Rose Bandrowski has joined the channel

Kenneth Wiersema
Kenneth Wiersema8:49 PM

@Kenneth Wiersema has joined the channel

Rose Bandrowski
Rose Bandrowski8:49 PM

@Rose Bandrowski set the channel purpose: :bulb::bulb::bulb: make the robot look cool!

Riyadth Al-Kazily
Riyadth Al-Kazily8:51 PM

@Riyadth Al-Kazily set the channel topic: Arduino programming and associated electronics for BLING!

Riyadth Al-Kazily
Riyadth Al-Kazily8:52 PM

Spartronics Bling repository on Github: https://github.com/Spartronics4915/Bling
Bling wiki: https://github.com/Spartronics4915/Bling/wiki

Riyadth Al-Kazily
Riyadth Al-Kazily8:52 PM

@Riyadth Al-Kazily pinned a message to this channel.

Rose Bandrowski
Rose Bandrowski8:54 PM

I'm hoping we can get that particle board painted black so the lights stand out more. No guarantees

Riyadth Al-Kazily
Riyadth Al-Kazily8:56 PM

A huge question that needs to be answered soon is: Where are the lights going, and what "shape" do they form?
One idea I had, which may be on the "complicated" side, is to cut the LED strips down to something like 8 or 10 inches long, then stick them to a square of polycarbonate in horizontal rows. We wire them back up with extension wires so they all light up again, then put a translucent white piece of plastic in front of them. Then we can use the individual LEDs as "pixels" on a screen to show low-res 8-bit style icons/avatars.

Riyadth Al-Kazily
Riyadth Al-Kazily8:58 PM

Other options are to run the LEDs on the scissor lift, but that's probably a very bad idea.

Will Hobbs
Will Hobbs9:32 PM

@Will Hobbs has joined the channel

Cruz Strom
Cruz Strom11:03 PM

@Cruz Strom has joined the channel

Randy Groves
Randy Groves6:12 AM

@Randy Groves has joined the channel

Peter Hall
Peter Hall6:55 AM

@Peter Hall has joined the channel

Rose Bandrowski
Rose Bandrowski8:56 AM

@Riyadth Al-Kazily oh my gosh that would be so cool

Terry Shields
Terry Shields11:49 AM

@Terry Shields has joined the channel

Terry Shields
Terry Shields11:54 AM

@Riyadth Al-Kazily I really like that idea with the LED’s being able to display 8-bit icons on a translucent poly barrier. We could use some poly protection on some portions of the robot internals anyway.

Riyadth Al-Kazily
Riyadth Al-Kazily12:31 PM

Do realize that the primary purpose of polycarbonate panels on the robot is not protection, but for marketing & sponsor stickers :-)

Riyadth Al-Kazily
Riyadth Al-Kazily12:37 PM

And I'm a tad concerned about the weight of the bling system (seeing as how we're close to our maximum limit anyway). The Arduino is tiny and light, but we also need to add a voltage converter (12V to 5 V) and the LED strips themselves. I think that totals up to at least a pound in weight, maybe two. If we add extra polycarb to hold the LEDs, and more to diffuse light, then we probably need to think about thin plastics with lots of holes in them.

Riyadth Al-Kazily
Riyadth Al-Kazily9:12 PM

For those wanting to get started with Arduino, here is a good getting-started overview about programming: https://youtu.be/CbJHLP5RJ8
There are also more videos in the series, covering more advanced topics.

Riyadth Al-Kazily
Riyadth Al-Kazily2:19 PM

If there is not enough space/weight available on the robot for advanced bling (ie, the "translucent icon projector"), we should still consider some fun bling project to display in the pit. So come up with some creative ideas!

Darwin Clark
Darwin Clark6:44 PM

@Darwin Clark has joined the channel

Mark Tarlton
Mark Tarlton6:11 PM

@Mark Tarlton has joined the channel

Ted Larson Freeman
Ted Larson Freeman8:28 PM

@Ted Larson Freeman has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily10:27 PM

I have updated the Bling repository wiki with a page describing how the RoboRIO should communicate with the Arduino, and select different Bling displays. It's not complete, and may have errors, but it gives us a place to start. If you are interested in making dynamic bling a reality, let's chat this weekend.

Chris Mentzer
Chris Mentzer11:37 PM

@Chris Mentzer has joined the channel

Ronan Bennett
Ronan Bennett3:22 PM

@Ronan Bennett has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily6:21 PM

I realized that we probably need an "all lights off" mode for the bling, and we should probably start up with that mode selected. Maybe a '0' command turns all the lights off? (I think it might be useful because we may need to reduce power usage to minimum while running the flipper motor, and starting with the lights off will be less distracting as the team is setting up the robot.)

Riyadth Al-Kazily
Riyadth Al-Kazily6:21 PM

What do you all think of that?

Ronan Bennett
Ronan Bennett6:38 PM

I definitely think turning bling off while the flipper is running is a good idea. Last time I checked the roboRIO code had ‘0’ as an off mode, but we should make sure the arduino is set up the same way.

Riyadth Al-Kazily
Riyadth Al-Kazily6:47 PM

@Adam Rideout Redeker We should chat about getting your project code into the Spartronics/Bling repository. Can you submit a pull request? Looking at your repository it looks like the Arduino code already defaults to all LEDs off, and my earlier comment is late to the party. I like that you guys are two steps ahead of me :-)

Riyadth Al-Kazily
Riyadth Al-Kazily10:29 AM

@Adam Rideout Redeker I reviewed and merged your bling code into the Spartronics Bling repository. Thanks for submitting it, and it looks good.

Riyadth Al-Kazily
Riyadth Al-Kazily10:31 AM

I made a comment on the review that we should strive for more consistent code formatting. It makes a huge difference when sharing code, or even trying to debug your own code a week after you wrote it. Luckily, the Arduino editor can do all the hard work for you. Here is a quick article about code formatting and Arduino: https://www.baldengineer.com/one-click-clean-arduino-code.html

Riyadth Al-Kazily
Riyadth Al-Kazily10:34 AM

Basically, I encourage you to always check your code formatting before you submit a merge request, and fix up any inconsistent areas in a new commit if necessary. When working on a larger team (in my day job), I will often reject pull requests that are not neat and tidy, because we all have to work with each other's code.

Riyadth Al-Kazily
Riyadth Al-Kazily10:35 AM

I would appreciate it if you could auto-format the two Arduino sketches that you submitted, commit the changes, and open a new pull request. I'll happily merge those changes in as well.

Will Hobbs
Will Hobbs9:06 AM

Did we finish mounting the bling before we bagged?

Riyadth Al-Kazily
Riyadth Al-Kazily9:19 AM

Here's a project like the one I suggested for the pit: https://hackaday.com/2018/02/26/arduino-babytv-is-big-fun-at-low-resolution/

Riyadth Al-Kazily
Riyadth Al-Kazily9:23 AM

I don't know if the mounting was completed, but that might be more of a question for the electonic_pneumatics channel. But I do believe that the code on the Arduino has not been loaded yet. It is easy to do at any time (even at competition, but we could get it done before we get there. @Adam Rideout Redeker can load the software if he's available. If not, I can do it on Wednesday. (We just need to unplug the USB cable from the RoboRIO and plug it into a laptop for a few seconds...)

Adam Rideout Redeker
Adam Rideout Redeker11:40 AM

I won't be able to come today due to sports but should be there on Wednesday.

Peter Hall
Peter Hall2:05 PM

@Adam Rideout Redeker Is your code online for n git hub?

Adam Rideout Redeker
Adam Rideout Redeker4:51 PM

yes, it's under the Spartronics/Bling repository in a folder called Roborio_functionality

Justice James
Justice James10:49 PM

@Justice James has joined the channel

Adam Rideout Redeker
Adam Rideout Redeker3:42 PM

Sorry I can’t be at today’s meeting, hopefully we’ll be able to mount bling at the event.

Declan Freeman-Gleason
Declan Freeman-Gleason8:25 AM

Can someone describe why bling wasn't working when we put it on the robot? @Adam Rideout Redeker @Riyadth Al-Kazily

Will Hobbs
Will Hobbs8:28 AM

The bling wasn’t bright enough to ever see it

Riyadth Al-Kazily
Riyadth Al-Kazily8:28 AM

More context please. When we put it on the robot originally? The bring strip was connected to the 12v power source, instead of the 5v power source it required.

Riyadth Al-Kazily
Riyadth Al-Kazily8:29 AM

Has the “backup” strip been tested? Were animations playing correctly?

Declan Freeman-Gleason
Declan Freeman-Gleason8:36 AM

I don't think the backup strip has been connected. That's probably the problem.

Riyadth Al-Kazily
Riyadth Al-Kazily8:50 AM

If not, then @Will Hobbs comment on brightness is premature

Riyadth Al-Kazily
Riyadth Al-Kazily8:52 AM

The original strip lit up a few LEDs but never played an animation, which would be MUCH brighter

Riyadth Al-Kazily
Riyadth Al-Kazily9:26 PM

@Adam Rideout Redeker @Ronan Bennett Do you guys want to get the bling stuff working on ATLAS before the 4th of July parade? I think we can use all the good work you did for THEMIS. If so, you should join the new #atlas-restoration channel

Ronan Bennett
Ronan Bennett9:33 PM

Yep, I’m definitely willing to help out.

Adam Rideout Redeker
Adam Rideout Redeker9:44 PM

For sure

Binnur Alkazily
Binnur Alkazily11:18 AM

@Binnur Alkazily has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily4:25 PM

@Randy Groves This is the place to ask your Arduino question :-)

Randy Groves
Randy Groves4:27 PM

I've got an Arduino YUN, which may or may not complicate things. Finally figured out how to connect via USB to the serial terminal in the Arduino IDE. Trying to load the Roboriofunctionality.ino file, however results in a complaint - are we using AdafruitNeoPixel? If so, there seems to be a missing library - or I'm not loading it correctly (which is certainly possible).

Randy Groves
Randy Groves4:28 PM

Just found the README - I'll check that.

Randy Groves
Randy Groves4:30 PM

THAT works better!

Riyadth Al-Kazily
Riyadth Al-Kazily4:30 PM

Your Arduino IDE has a library manager. You need to install it.

Riyadth Al-Kazily
Riyadth Al-Kazily4:30 PM


Randy Groves
Randy Groves4:36 PM

Yeah - that's what the README told me. I can compile and load it now.

Randy Groves
Randy Groves4:37 PM

So - newbie assumption - anything I load survives a power cycle, correct?

Riyadth Al-Kazily
Riyadth Al-Kazily5:04 PM


Dana Batali
Dana Batali9:19 AM

@Dana Batali has joined the channel

Randy Groves
Randy Groves8:41 PM

What are the specs again for the NeoPixel strip?

Riyadth Al-Kazily
Riyadth Al-Kazily8:42 PM

Our strip uses the WS2812b controller chip in each LED

Riyadth Al-Kazily
Riyadth Al-Kazily8:43 PM

And it has 150 LEDs

Riyadth Al-Kazily
Riyadth Al-Kazily8:43 PM

I think the strip is this one: http://www.andymark.com/product-p/am-2916.htm

Riyadth Al-Kazily
Riyadth Al-Kazily8:43 PM

But you can get cheaper ones on Amazon...

Riyadth Al-Kazily
Riyadth Al-Kazily8:48 PM

(Beware of the super-cheap LED strips. They are usually junk.)

Riyadth Al-Kazily
Riyadth Al-Kazily8:51 PM

Note that the LED strips can consume a lot of current. I have read that an estimate of 60mA per LED is a good, conservative number. That means that our 150 LED strip can consume up to 9A of current at 5VDC. So you'll need a beefy power supply to light up the whole strip.

Harper Nalley
Harper Nalley6:51 PM

@Harper Nalley has joined the channel

Camden Greenhalgh
Camden Greenhalgh7:19 PM

@Camden Greenhalgh has joined the channel

Martin Vroom
Martin Vroom9:04 PM

@Martin Vroom has joined the channel

Kate Swietlik
Kate Swietlik7:27 AM

@Kate Swietlik has joined the channel

Emerson Nicholas
Emerson Nicholas6:28 PM

@Emerson Nicholas has joined the channel

Mitchell Teresi
Mitchell Teresi3:41 PM

@Mitchell Teresi has joined the channel

Jake Benjamin
Jake Benjamin3:26 PM

@Jake Benjamin has joined the channel

Lane Johnson
Lane Johnson8:41 AM

@Lane Johnson has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily9:10 AM

This channel has been too quiet for too long. I suggest some discussion about what we want our robot bling to do, and where on the robot it should go. Also, I encourage everyone to post a link to some interesting uses/implementations of bling.
I'll start with this: http://www.hackcasual.io/blingboard/

Riyadth Al-Kazily
Riyadth Al-Kazily9:11 AM

And of course, the Adafruit reference on NeoPixels is amazing and awesome: https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels

Riyadth Al-Kazily
Riyadth Al-Kazily9:21 AM

An alternative to the Arduino (less exciting, but may give us ideas for light patterns to implement?): https://youtu.be/wMdkM2rr1a4

Declan Freeman-Gleason
Declan Freeman-Gleason10:49 AM

Camden has a couple of patterns implemented so far: robot disabled (alternating red), robot driving reverse, robot driving forward, and robot autonomous.

Those are all drivetrain states because I told him that was the most useful and should be his MVP before he works on something else. If we do want something else then we might want two strips on the robot.

Declan Freeman-Gleason
Declan Freeman-Gleason10:49 AM

@Camden Greenhalgh

Camden Greenhalgh
Camden Greenhalgh10:49 AM

I know

Riyadth Al-Kazily
Riyadth Al-Kazily11:06 AM

Binnur suggested to me that lights pointing downward (under the robot chassis, reflecting off the carpet) could be a good effect. We could do something like that for a secondary (artistic?) bling system, while having the more prominent strip somewhere high and visible on the robot... Just a thought.

Riyadth Al-Kazily
Riyadth Al-Kazily11:08 AM

And do we want animations to be tied to our alliance color? Such as disabled could be just the alliance color instead of always red...

Binnur Alkazily
Binnur Alkazily11:37 AM

With a marketing hat on, I’d say ‘don’t associate the failure states w/ alliance colors’. However, I like the idea of detecting successful scoring and celebrating it w/ alliance colors!

Declan Freeman-Gleason
Declan Freeman-Gleason12:18 PM

I think this is a great idea! We want the drivers to be able to see the prominent strip, but downward lighting has a great effect. What does @Peter Hall think about this?

Camden Greenhalgh
Camden Greenhalgh12:58 PM

Ooh! Good idea! I just chose red because it was 255, 0, 0, and the shortest word.

Jeffrey Tappen
Jeffrey Tappen4:29 PM

@Jeffrey Tappen has joined the channel

John Sachs
John Sachs9:39 PM

@John Sachs has joined the channel

Merrill Keating
Merrill Keating8:29 AM

@Merrill Keating has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily9:54 AM

The off-season is a great time for bling projects. Post some ideas to the channel! There are lots of articles about RGB LEDs on the Internets. Here is an advanced and flexible bling system for radio controlled models: https://hackaday.com/2019/04/28/a-chrome-extension-for-configuring-rgb-leds/

Riyadth Al-Kazily
Riyadth Al-Kazily9:29 AM

Animatronic bling is the best bling!

Max Morse
Max Morse12:19 AM

@Max Morse has joined the channel

Maya Shaw
Maya Shaw10:06 PM

@Maya Shaw has joined the channel

Riyadth Al-Kazily
Riyadth Al-Kazily4:56 PM

Here's some creepy bling... Animatronic eyes!

Riyadth Al-Kazily
Riyadth Al-Kazily10:19 PM

Inspiration for dressing up our LEDs

Binnur Alkazily
Binnur Alkazily8:55 PM

Started a documentation on our developer notebook for Arduino and Bling development. Let us know what we should include!

Declan Freeman-Gleason
Declan Freeman-Gleason2:59 PM

@Binnur Alkazily @Riyadth Al-Kazily The RoboRIO will support driving Neopixels (or any WS2812 LEDs) directly from the PWM pins (but not over PWM) using the FPGA. Information on frc-docs isn't finished yet, but there's an example here (https://github.com/wpilibsuite/allwpilib/blob/master/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/addressableled/Robot.java), and a video here (https://www.youtube.com/watch?v=PeDMgoDkUg).

Riyadth Al-Kazily
Riyadth Al-Kazily10:48 AM

@Harper Nalley I think I know what was up with the 'fade' sketch you were working on. The analogWrite() function only works on specific pins on the Arduino, and pin 13 (where the on-board LED is connected) was not one of them. You will need an external LED hooked up to one of the supported pins (in the set of { 3, 5, 6, 9, 10, 11 })

Riyadth Al-Kazily
Riyadth Al-Kazily10:49 AM

The Arduino Language Reference page gives details on all the functions in the basic Arduino system:

Harper Nalley
Harper Nalley3:29 PM

Ooohh, okay, thank you!

Harper Nalley
Harper Nalley3:00 PM

@Riyadth Al-Kazily is the bling light strip able to vary the brightness of each LED or is it a binary off/on?

Riyadth Al-Kazily
Riyadth Al-Kazily3:04 PM

It is variable. The intensity is set by the size of each R/G/B primary value. In other words, the red channel can have an intensity of 0 (off) to 255 (fully on), or anything in between. Same for the green and blue channels.
So an RGB triplet of (255,0,0) is red at 100%, blue and green off. And (127,0,0) is red at 50%, blue and green off.
I think the NeoPixel library might have a separate intensity control API which scales all the LED channel intensities for you, so you don't have to do the math. (It may be in the FastLED library, not NeoPixel... I can't remember).

Binnur Alkazily
Binnur Alkazily4:07 PM

are you thinking `setBrightness()` to specify brightness level for all pixels?
here are some api examples from the neopixel guide https://spartronics4915.gitbook.io/developer-handbook/arduinobling/bling#adafruit-neopixel-documentation

Jacob Miles
Jacob Miles5:34 PM

@Jacob Miles has joined the channel

Binnur Alkazily
Binnur Alkazily10:00 PM

Interesting idea to use bling for the camera led ring to provide a more controllable experience — fixed the link for the relevant thread

Riyadth Al-Kazily
Riyadth Al-Kazily9:51 AM

I think it's a good idea, especially since the intensity of the light could be varied for distant and close targets (so that we get the best signal-to-noise ratio). One thing to be aware of for camera lighting is that we want the light to be directed in a fairly focused beam. The NeoPixels are meant to be looked at directly, and so they have a very wide angle of view. As such, they won't be as efficient as individual focused LEDs in a ring.
Of course that's an easy problem to solve - add more NeoPixel LEDs to compensate :-)