Oshpark Projects

Awesome! Welcome to the fray :slight_smile:

Great job!

Nice effort.

Good stuff! I know the feeling when you fire up your first board with your own design and it works :slight_smile:

:slight_smile: Looking good.

This board should be useful for testing and programming the "tiny" attiny13a (MMU). It is labeled with USBAsp pins for easy hookup (I always mix up at least one pin every time I wire up a new programming clip! )

Nice board RMM…thanks!

[untested] 12.2mm Shutter Switch button board v005

For use converting SRK or similar from 1-stage button to 2-stage button. Inspired by Helios’s Tact switch (button) board 12.2mm round v2 found in the OP.

All this 1-stage switch stuff is for the birds, right?

  • Copied the 10mm and 11mm rings and 12.2mm OD from Helios’s design. I don’t know why those values were chosen and I didn’t measure any of my lights.
  • I used the exact footprint recommended in the datasheet for this switch.
  • Operation 1 and Operation 2 are marked by Stage 1 and Stage 2 to get closer to common parlance.
  • All copper and vias on the bottom layer fits w/in a 6mm diameter circle (with a margin).
  • Intended for use with this button: http://industrial.panasonic.com/www-data/pdf/ATK0000/ATK0000CE43.pdf
  • EVP-AXBA1A @ Mouser The switch is a little pricey, but what can you do?

v005 @ OSH Park

https://oshpark.com/shared_projects/P1GnvS2a

What is the stage 1/stage 2 for?

It’s a shutter switch. Like in a camera.

You press it halfway and it closes Stage 1 with the long horizontal strip (GND). You press it the rest of the way (harder) and it closes Stage 2 with the long horizontal strip (GND). This allows for more complex UI behavior. Some mid to high end lights have this type of switch. I think Nitecore uses a switch of that type for some things (such as the EA4).

It requires 3 wires, GND, SW1, and SW2. Typical use would be with 2x pins on the MCU, although there are hacks to allow for less pin usage.

EDIT: I’m not sure that this thing is actually useful, and I don’t have any of the switches yet. I’ll get a couple on my next Mouser order.

Oops. This double-action switch is a lot less expensive:

ALPS SKSMAFE010
http://www.mouser.com/ProductDetail/ALPS/SKRNPME010/?qs=sGAEpiMZZMsqIr59i2oRchLk7FYgnUpFPhAcyn%2Fs610%3D

It’s also got a bit lower operating force though, for both stages. EDIT: and a TON more travel. Hmm. Might have to get both. The ALPS part has a totally different pinout, requires a new PCB.

Man I bet Matt would be pretty interested in that switch, someone should email him the PN.

This isn’t exactly a shared project, it’s closed source because of the complexity but I wanted to show my newest driver off…

Daughter (switch) board. Tho it would serve no purpose this would actually run on its own as a complete driver.
https://oshpark.com/shared_projects/NlLyqjAM

Main board, mounts to the light, makes battery + and GND contacts and holds an additional 5x 7135 per channel
https://oshpark.com/shared_projects/vb7HPcvp

There is a third board that is absolutely required but it’s only for support, there are no components so you can just harvest it from the host light’s driver.

Assembled (PIC, a cap and 2 resistors missing, values being determined by testing) and the code is still undergoing hardware debugging.

This is a driver to transform a nitecore Cx6 (any of the series) into a tint mixing light. The code allows for seamless tint selection from 100% cool to 100% warm (and literally any step in between). It operates off a mix of tail Clicky and button presses and is designed to hide all the extra features (like tint mixing and the cool blinky modes) so you can hand it to someone and they can use it as a flashlight without needing a lesson while still being easy to access and control the added features for the advanced user.
It has battery monitoring LED’s under the side switch boot that are PWM’s to go from green to yellow to red (all the time when power is applied at the tail). The main emitters actually require a second PWM input each (obviously both CW and NW need their own main PWM input’s as well) and this 2nd shared PWM signal goes threw the series of BJT’s to not back feed into one another. This allows me to have the needed 2 PWM signals per channel while only taking up 3 MCU PWM output’s (the 16F1825 PIC has 4 PWM channels, the battery monitor is controlled by the 4th).

Fit perfectly in the host!

Boards

Built

This was my first time fitting boards together like this (“T” butted together). Also my first time making slot’s. 100mil is the smallest slot width supported, a little wider than needed but not to much that solder wouldn’t easily bridge the gap.

This project has been in the works MONTHS now, really excited Im this close now!

You’ll have to document this a bit more, I don’t really understand it. Why do you not create threads for things like this?

  • Why is one switch marked “dummy”?
  • How many output channels does this driver have?
  • How many forward facing LEDs are being controlled?
  • There are a total of 11x7135 on here?
  • So the top spacer board you’ve got can just be robbed out of the stock light?

It’s not far enough along for a thread yet, I don’t bother with “WIP” threads, I have to many ongoing projects (of my own and of customers). This is a light which will be an official KillerLumens light offered for sale, once nearer completion there will be a thread and/or my site page.

  • The switch marked “dummy” doesn’t currently do anything, it doesn’t hook to the MCU at all; it’s there cause the host has 2 side buttons (plus the tail, my FW is currently only controlled via 1 side button and the tail clicky) the dummy switch is because I would rather allow a platform for further UI development without needing a new board rev than to simply run both buttons in parallel (if/when I get to that I can air wire the dummy switch to a spare I/O, it’s already grounded, there just isn’t an outout to the MCU at this time.
  • 3 “channels” technically. Each of the main LED’s is controlled by one and a half PWM’s- that takes up 3 of the 16F1824’s PWM output’s (one for each main bank of 7135’s and then the third PWM is shared, the set of BJT’s preventing unwanted backflow to the wrong bank) and the 4th PWM runs the red switch LED (the green switch LED is controlled by a simple I/O, it’s turned on steady for green by pulling its pin high when green is needed, for yellow green is pulled high and red is PWM’d and for red the green LED is turned off and red is steady on).
  • 2 forward facing high power LED’s (one warm, one cool to allow the full white spectrum of tints to be mixed). It will work like the imalent SA04 with visually stepless tint mixing from 100% WW to 100% CW. It also has several interesting strobes that fire the LED’s alternating patterns.
  • 16 total, that’s 8 per high power LED, 5 (per LED) on the contact board, 3 (per LED) on the switch board. Again [just cause I think it’s a cool tid-bit] the switch board is actually a complete driver on its own with 3x 7135 per channel, it couldnt be used cause it’s supported by both the contact board and the top support board but it does contain all components to run at ~1A per LED.
  • exactly.

BTW There are 5 connections (5 plus gnd) between the two boards- VDD, CW & WW PWM’s and CW & WW outputs (from the 7135’s). That’s 7 solder points (2 GND’s help with physical support), there is also 4 large pads for connection to the top support plate. Also of interest is how I accomplished polarity protection reusing the factory style spring plate, I really like this method and am looking into sourcing the plastic button top isolators for future builds (every one of these I built I can just reuse the piece from the host light). Physical protection eliminates any voltage drop issues across a diode meaning battery voltage can be monitored directly at the MCU’s VDD via the internal reference, no voltage divider needed!

Damn, just realized I forgot to edit the masks in DRC and I’ve got all exposed via’s on the contact board.

If anyone is designing a driver where you have boards connecting in this manner (T butted together) let me know and I’ll send you my files so you can copy the contact point layout / space allowed for the thickness of the board. I surprised myself in getting it perfect first try!

Thanks for the details.

What PWM resolution are you attempting to achieve?

FWIW you’re getting temperature mixing. Tint mixing is a different thing and I do not think that 2 LEDs is enough for that.

wicked cool build C_K…three dimensional drivers :slight_smile:

what’s the difference between color temperature mixing and tint mixing?

BTW not only am I interested in the variable color temp using this method but also the greatly expanded CRI you get out of 2 different LED’s. This light will have 2 XP-L’s, the CW around 2A, the warm one will be a 7A3 HCRI (to bad I cant get a >6000K HCRI LED for the CW side).
When this idea first came about I did some testing swapping emitters around in my Imalent SA04 and it seems (basing my calibration off Nichias and my public lab spectra kit) that it will do somewhere around 92-94 CRI with that setup and with a very wide spectra. Currently my SA04 has one Nichia 219 and one HCRI XM-L2 S6 7A3 and it’s spectra is better than those I’ve taken of my HID sources! I use these lights for photography (along with my recently finished quad N.119 AT-008 with wide TIR)

What PWM resolution are you trying to achieve Cereal_killer?

Unknown as of now, hardware debugging starts today! Probably start at 1Khz (should be a pretty safe start point) and see how much higher I can go without issue.

I mean how many divisions (resolution), not frequency (repetition rate). It would be measured in bit depth or number of steps/divisions. For example 8bit (256 divisions), 7bit (128 divisions), 10bit (1024 divisions), etc.