Hi,
First post and first project. I am a novice at this. First a big thanks to Paul and team for such a great product!
I have built a MIDI controller using a Teensy 3.5 with 10 encoders and 10 LED rings. All working fine.
I am using 10 LED rings with 24 RGBW LEDs each so 240 LEDs in total (>18 A theoretically at full max). Using only minimal LED brightness and one color at a time, my controller draws a maximum of 480 mA from the USB connection (LEDs and encoders draw 5V from the VIN pin). I measured this using one of these USB power monitors).
I would prefer to keep using USB power only and no external power supply as i do not need high brightness and my power budget seems to fit with the USB 2.0 500 mA max.
But I need some guidance on some questions relating to using USB power which I could not find answers to when googling:
Thanks for your help!
Thomas
First post and first project. I am a novice at this. First a big thanks to Paul and team for such a great product!
I have built a MIDI controller using a Teensy 3.5 with 10 encoders and 10 LED rings. All working fine.
I am using 10 LED rings with 24 RGBW LEDs each so 240 LEDs in total (>18 A theoretically at full max). Using only minimal LED brightness and one color at a time, my controller draws a maximum of 480 mA from the USB connection (LEDs and encoders draw 5V from the VIN pin). I measured this using one of these USB power monitors).
I would prefer to keep using USB power only and no external power supply as i do not need high brightness and my power budget seems to fit with the USB 2.0 500 mA max.
But I need some guidance on some questions relating to using USB power which I could not find answers to when googling:
- As USB 2.0 offers only 500 mA max, is it safe to run the controller so close to the max?
- I read a comment from Paul that I can edit the "bMaxPower" var in usb_desc.c to announce to the USB host that I need the full 500 mA. How can I detect that the USB host is unable to provide that much current so I can deactivate the LEDs on my MIDI controller via code?
- If I would specify my controller to only be used on USB 3.0 ports so I can get the 900 mA that USB 3.0 provides, is there a way I can detect on the Teensy (via code? / other?) that I am not connected to a USB 3.0 port / not getting the 900 mA so I can accordingly not start up the controller LEDs? Do I need to vary the "bMaxPower" variable for USB 3.0 or is the 900 mA available as a baseline?
- Theoretically, if my code has a bug or the LED controllers malfunction (I had one LED ring from an eBay vendor light up to max due to what I assume was a flaky part / data line timing) I assume this would damage my Teensy and / or the USB host. Are there any overcurrent protection components I can add to my circuit to prevent my controller to unexpectedly try to draw a huge amount of current and damage things?
- If I decide to add an optional external power supply (so controller can be run via USB power at low LED brightness or via external power at high LED brightness), how could I do that and is there a way I can detect via code / other components that I have external power available and accordingly use higher LED brightness?
Thanks for your help!
Thomas