Custom headlight and taillight (VESC)
-
@theboardgarage I’ll be sure to keep a set reserved for you on the first batch :)
For testing I’m just feeding a data signal using a seeeduino (tiny little Arduino the XS will be using) using the neopixel library. Really simple to test with and I hear the VESCs support RGB and RGBW now so this should just drop in with a decent buck converter to supply the 5v.
-
This post is deleted! -
Packaging being made. Nearly ready to put up orders for the first batch :3
Hopefully this weekend with @cheppy44 's help.
Each box gets a bit of my shoddy spray painting (It's artistically bad I promise)
The rest of the boxes waiting to dry :3
Test of the foam inserts and fitment. I think it looks nice and doesn't come loose no matter how much I shake it.There's only a few on the first batch because I have no idea what sort of demand there are for these but I've already ordered 2000 LEDs for another few batches just in case with an altered LED orientation.
Back to work I guess <3
Follow-up post with better pics, included bits and whatever else I'm forgetting. -
@lia said in ELM custom headlight and taillight (VESC):
Each box gets a bit of my shoddy spray painting (It's artistically bad I promise)
The overspray look of the ELM logo is incredible!
-
@hanahsdax I really like how that turned out too, it's crazy messy but worth it :)
-
Looks excellent. I look forward to these.
-
@theboardgarage Thankies <3
I'm sure you'll love them :) I can't wait to see what people do with these with whatever special sauce is being added to the VESC firmware.
Nick tells me you're after a few more so we'll set aside a bunch from the next batch for you too. Still have 1 from this batch reserved as well x
We're going to allow orders on Saturday Noon (Central Time) in Discord.
Once the first batch are gone (there's like 11 left) we'll be doing a wait-list as I'm currently waiting for the delivery of the LEDs to begin the next batch which I'm ordering WAY more of this time.
-
All of the headlights have shipped and a handful have theirs already (no thanks to customs delaying a bunch).
I haven't made v2.3 yet as I wanted to get some feedback on the initial v2.2 version and so far some things have came to light.
Nick has noticed while testing with a modified VESC (using the servo port as an RGB led driver) is the voltage levels on the data pin aren't enough to trigger the high and low thresholds for the LEDs. Even after some research I'm unsure of the specifics but Nick did manage to get it to work with a simple logic shifter. I had this working on Seeeduino (Arduino) and ESP32 so although 3.3v logic can drive this it doesn't look like the servo port has the ability to do so natively. It's early testing though so those working on that mod might come up with something.
Logic shifters usually require the low level and high level rails supplied along with GND and the data in which would be one more pin than I am able to fit on a stock ELM box due to the extremely restrictive size of the passthrough holes that were added.
As such I'm looking at making a logic shifter cable to link the headlight and VESC if used as an optional extra. This would mean it makes sense for me to add a connector to the headlight which would then in turn mean minor modification to an ELM box if anyone chooses to use it with one. A file would be needed to make the passthrough hole slightly taller and wider for this.
I plan on using a JST-PH connector which are spec'd for 2amps so that it has plenty of headroom when used to provide power to the LED and also something else on the other end if used as a passthrough.
(I haven't soldered it I know, it's a dry fit)
Smaller connectors are only 1 amp which would mean it would be easy for someone to overload it carelessly. I might be a complete novice but I try to not put low current connectors on medium-high current draw things ;)
On a completely separate note the next version of these headlights will likely not be branded with ELM as the guys are doing their own thing and it doesn't make sense to use the logo anymore. I'm working on another name and logo to put on these with Nick, possibly to go with the GT-VESC ecosystem too but we'll see. Until we've settled I won't amend the thread to avoid confusion. We have one thing already and a 'finished' logo but I'm unsure yet if I 100% like it.
-
Looks great! When I vesc my OW later on down the road, I might pick one of these up for myself :3
-
@loaffette Thank you :)
Hoppe your future VESC goes well :) I'm hoping to make a new board rather than convert one of my current ones. I'm kinda still loyal to my stock boards lol. -
@lia I understand!
I don't really like owning/buying multiples of one thing unless if it's necessary. One less thing to take care of, plug it means I can divert all of my attention towards it.TBH, this project is making me consider trying to see if I could sell DIY kits for my LED headlight project if I ever get it to a place that I like, however I'm not sure if it would be worth it
(also I would probably have to split profit with whoever (probably Cheppy) for getting the code to work, I cannot program to save my life and I plan on adding a bluetooth remote.)
-
@loaffette Me too... kinda. If I get an
obsessionvery cool hobby that I like I sometimes have multiple of it. In the case of the Onewheels they all are special to me so breaking one up to convert feels wrong to me. I probably have some unhealthy sentimentality to inanimate objects lol.
The LEDs work with rESCue however by default even if you select RBGW the W channel doesn't seem to get lit up.
I'm bad with code but I know how to fiddle so I downloaded it and spent a bit of time trying to find where I could inject some data. I managed to find some lines that were responsible in Ws28xxController.cpp that sent the values for the R G and B but couldn't see a 4th set for the W which explains why.
Below is an example of what I was seeing.
By contracst below is a snippet of the adafruit neopixel example code for RGBW. A 4th set of values are present which I expect to see for RGBW.
I didn't want to put more time than needed to prove it could work so I decided to bodge it by adding ", 255" to anything with "0, 0, 0" in and sure enough I was able to get it to light up my W channel :)
So rESCue is compatible with the LEDs BUT it looks like the actual software needs updating to make it work with RGBW (GRBW) by including the white channel when that needs lighting up. I'm too dumb to actually modify and suggest the proper fix though so I'll focus on v2.3 for now still.
-
The next version of the LEDs are still waiting to be sent off for production. Kinda delayed as I'm waiting on some more feedback before going ahead with the next set. However feedback is delayed because further development is needed on the software side it seems.
So far the LEDs have been rotated 180 degrees to optimise the white channel being completely unobstructed by the bumpers. In doing so the input has been moved to the other side which for the battery box is more beneficial.The next batch is likely to be around 65 sets and currently 23 are already allocated on a wait list.
In the meantime a Discord is being set up to deal with the showcase, sale and support with these which I'll linky here at some point when ready.
Still might alter it but a new Logo has been made to go on these headlights along with future things me and Nick work on :)
There's a bit of design philosophy built into the logo but I won't bore anyone with that because I will go on for days lol.
-
@lia clever
-
@notsure Thankies x
I thought it was pretty clever. It's also very cool ;) -
@lia what is the controller you are using for the lights? I have everything I need except a controller, and that’s the confusing part for me.
-
@krysis Hiya :)
I was using a Seeeduino Xiao for testing the LEDs however other programmable boards like ESP32 or Arduinos can be programmed to control them.Some have been using rESCue to control LEDs like this although I do not own one myself so have only been able to replicate some of it's functionality with my ESP32 which it also uses.
-
@lia Thank you so much!
-
I've been feeling much better recently so I've gotten back into this.
I was made aware that the rear light needs special attention because the BMS would normally sit there and obstruct most connectors placed in there.
To make matters worse it turns out the rear light is 10mm wider on one side so that it can reach around the BMS. I hadn't noticed and instead assumed the printed battery enclosure I had was just modelled weird. NOPE.... that's how it is.
I don't fancy making 2 separate PCBs for 1 product. Frankly it's dumb so I've devised a super big brain solution.
I have extended the PCB by 10mm and added a duplicate connector BUT with a V-cut along the usual width of the front LED with 0 ohm resistors bridging the 2 isolated sections.
You might be thinking "why not just run traces and cut it short?"
When breaking the PCB I want the edge to be clean with no conductive material present on the edge. If you have traces there will be tiny bits of material that poses a shorting hazard if placed up against a metal enclosure like the ELM box.To prevent shorting out on the walls I have made it so that there is a complete conductive dead zone near the V-cut to eliminate the possibility of that happening. The 0 ohm resistors are there to interface with pads away from the cut and make the bridge while also maintaining some structural integrity.
Clever right? I hope so at least. I considered solder bridges but those are unclean and I'd have to do those myself whereas I can get the PCB fab to pick and place these 0805 resistors instead.
All that is left is to spin those up and prepare to make the next batch. Question is do I pre-populate these with headers, hand solder them myself or leave them unpopulated entirely. Everything adds cost and being one person scale doesn't really work well in my favour lol.
-
Nearly done with the final touches. Apparently there's a desire to have a 5v pullup on the data to allow easier compatibility with native VESC use so I've added a pullup enable and 1k resistor to facilitate that with some advice from Pickles over in Discord.
Here's some renders and a possible look at maybe a limited white version I might do.
And the white version, It looks kinda clean ngl.
Edit: Box design mocked up ^-^