Some jigs you have to build yourself
Ғылым және технология
I am SO GLAD I built this thing. It has saved us days of work over the past couple months. Now I'm looking to rebuild it with a bit more...polish.
opulo.io
-------------------------------------------------------------------
Check out my Patreon:
/ stephenhawes
Join the Discord Server:
discordapp.com/invite/TCwy6De
LumenPnP Github Repo:
github.com/opulo-inc/lumenpnp
Feeder Github Repo:
github.com/opulo-inc/feeder
-- FOLLOW --
Twitch bit.ly/stephen-twitch
Instagram bit.ly/stephen-instagram
Twitter bit.ly/stephen-twitter
-- GEAR --
These are affiliate links so if you buy anything through them I get a small percentage which helps out the channel. Thank you!
PCB Holder (Omnivice): amzn.to/344qhVD
Microscope: amzn.to/348aSnw
Soldering Iron: amzn.to/2KlHDGs
Wire Strippers: amzn.to/2IESgDV
Cutting Mat: amzn.to/3oNCwOz
Flush Cutters: amzn.to/3ncFwnc
Digital Calipers: amzn.to/3gIzZSL
Leatherman Sidekick: amzn.to/3a4sQuY
Part Organizer: amzn.to/3a9uDyV
Soldering Iron Tip Cleaner: amzn.to/3a3wZiD
Oscilloscope: amzn.to/2W4zrNt
Multimeter: amzn.to/2JVp6Ba
Crimping Tool: amzn.to/37WymwP
SpaceMouse: amzn.to/3gCWR64
Tweezers: amzn.to/3a1auL5
Solder Wick: amzn.to/347kUVI
Files: amzn.to/37bMXp0
Dremel: amzn.to/3gIADj9
Headlamp: amzn.to/3gE5VYw
Pelican Case: amzn.to/3ncFpbg
Пікірлер: 178
Your 5x10 carrier PCB can be outfitted with 5 programming ports that have traces running to the eeproms. Those traces run through the snap-off points. Each eeprom has it's individual chip select line. so on the side you'd connect a 4+10 pin contact, which in turn programms each eeprom, and then you'd snap that row off, continuing to the next one. You can save contacts / ports, by sharing between rows and overwriting the programming each time you snap off a row above. You can save more by coming up with a matrix solution. The carrier PCB would need to have a larger border for this to work. Both on the outside as well as probably within the rows.
@der.Schtefan
Жыл бұрын
I think EEVblog has a video on pcb manufacturing that talks about those snap off programming ports to program dozens of ICs during manufacturing only.
To me, it is a little endearing that Stephen still has his old headphones (with the 3d-printed repair) after all these years.
@matiastripaldi406
Жыл бұрын
I own a set of M40xs and can confirm, besides the hinge issue for which i also had to print a replacement, they are fantastic headphones for the price. Low weight, comfortable and pretty flat frequency response, also they don't need a preamp. No need to upgrade if the product is already great
@ericlotze7724
Жыл бұрын
@@matiastripaldi406 Can Confirm Here Too. I had a pair of Audio Technica M40’s that broke by accodent at the hinge, otherwise fine with a few years of use. I upgraded to M50’s and Fiio’s Bluetooth Module for them and ave been going strong for about 4 years now! The m50s are similar and have a more durable hinge that can go both ways. Either way good option (in my biased opinion lol) for anyone in need of headphones.
Now all you need to do is frankenstein this thing onto one of the PnP machines so someone doesn't need to sit there programming every one of them. Also, I'm super excited for my machine to arrive. This lead time is killing me 😂 Keep up the great work!
@stephen_hawes
Жыл бұрын
that is an INSANELY good idea, thanks for the recommendation!! i should take a crack at this. and thanks for the support! :D
@caraffa3621
Жыл бұрын
@@stephen_hawes it would be total overkill and kinda dumb, you are missing a solution that you have in front of you. You already built a rig for testing and programming the motherboard, you should make same or similar thing for programming this boards. I would make one big PCB to which you could mount whole panel with pogo-pins and it would program everything one by one. Add a speaker and LCD to it and you are done.
@MarcelRobitaille
Жыл бұрын
Beat me to it
@EraYaN
Жыл бұрын
@@stephen_hawes essentially a “programming” head might not be the worst feature in general.
@MistahHeffo
Жыл бұрын
Put the programming probes on one head of the PnP, and a red paint pen on the other so it can physically mark any faulty units so you can see at a glance which ones are bad
Do a double success beep every 5 item. This way you don’t need to look away from the PCB to check you are programming the right address on the right PCB. If you hear the double beep on a non 5 multiple (or don’t hear it on a 5 multiple), you know you need to revert to the last successful one, set the proper address on the screen with the buttons and resume programming.
@defenestrated23
Жыл бұрын
Or just beep the number in binary.
Great! Ideas: 1. angle the pogo pins for comfort and visibility. 2. make it so the switch engages by pressing against the number pcb.
Probably a little late to suggest this, but TagConnect has some nice pre-made pogo pin connectors that could work in place of your custom solution. Also, pretty please, build AOI functionality into your PNP machine! I would kill to have my PNP take pictures of components after assembly and compare against a "golden standard" image to automatically find missing/misplaced components, etc. Even if it just saved each image to a big database for our recordkeeping purposes, that'd be swell.
Although a bit less modular than Ben Veltman’s idea of a PnP Toolhead for stuff like this, i LOVE the idea of this. Something about that, and things like die stamping. Just imaging a conveyor belt full of these, and just the *thud* of each time it programs them going every five seconds or so. Wild.
You won’t remember me, but I was a kid with a backpack who met you at Open Sauce. You were such a nice and genuine guy, and you definitely earned a subscriber. I can’t wait to see what you do next!
6:25 Now all you need is a limited edition case that had it sit better on your shoulder AND LOOKS LIKE A PARROT !
i always like to see progress on a project, awesome video!
Just come across your channel. Subbed. Love your enthusiasm
Love your work, thanks as always for sharing
Cool project! I'm also using the same display for one of my university projects, the library I'm using not only takes up a bit of space, but also takes a while to process and since the device I'm making is a control device with outputs dependent on ADC reading, I can see a lag in output at display refresh rate. I solved it by moving it to the second core of the MCU I'm using. We really take graphics, even simple ones, for granted on our everyday devices so it's always good to keep in mind this stuff really affects the performance of our low power MCUs!
@ericlotze7724
Жыл бұрын
What is your current project?
Great project! Well done.
Love this so much! I really appreciate the incremental nature of developing specialist tools: I too have a machine with a binary display because I rushed making it! (it cuts wires). And at some point I will improve it (like you have yours) and improve it again no doubt but getting products out of the door with 'good enough' tools is always the priority. (Also my feeders from you are on the way and I can't wait to try them out, keep up the excellent work!)
Awesome! Got something quite similar for a project of mine. No button on it, just always tries to program until it sucessfully does then it waits blinks for a second. I really dig the idea with auditory feedback from a buzzer 🤤 Gotta add that
@StephenHawes: Idea. Maybe you can make a small adapter that you can fit on a pick-n-place machine, so that can push the proper pins at the right spot, then program, and move to the next part of the board? Maybe a customized pick-n-place machine for this?
Absolutely awesome loved the video!!!!!
When I had something like that to design, I opted for a full bed of nails programmer, much like the one you have for testing the main boards. It saves a lot of time in bigger productions.
Alternatively, you could set the slot address with a resistor, rather than having to program an eeprom. Or a number of resistors and solder bridges allowing setting the address using a soldering iron.
Genius! Excellent attitude toward solving problems in manufacturing. But... you forgot to put a link for the actual product: Lumen!
Very cool! Possible idea if you add a beeper - make a success sound for each row (or group). That way if you hear the beep and aren't at the last one on the row, you know you got off some how.
Following this whole project/product has been a blast. Please do a video talking about all the design changes for the production feeder. I'm really curious to see what issues you found when trying to mass produce them. I'm also really curious about how the proton protocol turned out
You are inspirational STEPHEN ! I want to do computer engineering at the university, so do I have to specialize in embedded systems in oder to be like you . As in I enjoy writing software, soldering micro controllers and repairing stuff.
The pointer connectors look to be a total of 6 wires so either 2x3 connectors or one 6 wire would be better ( depending what you need already, always use ' common ' parts ). Either way, you could also keep them as ' bodge wire ' to the mainboard to allow for trying side by side or one over the other for connecting the pins. There may be enough space to ' pulse ' one of the leftover IO lines at a set frequency for part of a second, and no sound if failed for the audio conformation of programming, alternatively to an actual tone is there are piezo buzzers out there that just need power that would do it when a pin goes high ( and make sure you have that pin internally pulled down or wired as such ). Keep up the amazing work!
My build philosophy: First, make it _work. THEN_ make it pretty. (Currently working on a general-purpose inductor/coil/transformer winding machine for a couple projects - yep, I'm building a project for building projects - Arduino Mega 2560 R3 brain, 3D printed wire guide/straightener, beefy ER11 spindle to rotate the bobbin/core/coilform, closed-loop positioning on the spindle, all the cool bells and whistles. It'll do everything from tesla coil primaries to winding custom guitar pickups. And yes I'm using a buzzer for feedback for button presses, etc.) It it were me and I needed to program a whole panel of numbered boards, I'd set up a pogo-pinned jig to just do the whole panel at once. Start at #1 and sequentially power and do a board test/write-and-verify to each EEPROM on the panel, report any that failed or faulted, and Bob's your uncle.
@ericlotze7724
Жыл бұрын
*Oooooo* I been looking over various designs for those! Do you have your design files or any pictures anywhere yet? I’d love to follow along. That and a Torrodial Coil Winder are two things that would be VERY helpful for making larger electronics.
@OddlyIncredible
Жыл бұрын
@@ericlotze7724 I'm taking boatloads of pictures (I have something like 15-20 pics of the wire guide/straightener alone) but haven't uploaded anything yet. I probably ought to start a build log for it somewhere.
@ericlotze7724
Жыл бұрын
@@OddlyIncredible On a related note, if you haven’t printed it already, there is a “3D Benchy Photography Studio” that is great for photos / QC of small parts.
As a worker who does a lot of repetitive bulk tasks every day, this one seems particularly unpleasant and you should instruct whoever's doing it to really pay attention to the way it makes their arm feel after a while. This could easily be a machine for producing RSIs. Obviously as people have said, you could tape this onto a PnP. I'll go a step further. You should develop a module for the PnP which holds a plate of pogo pins wired to a programmer that is activated by the software. The head grabs a programmable chip, orients and locates it with the camera, takes it to the programmer, pushes it into the pins, beep, either it worked or it didn't and if it did you place the chip. This is a generalized solution for anywhere like this that you need to program chips a specific way based on their final location. It's not ideal if you need to program a large number of chips identically, but a lot of people will find it adequate for that task too. And if you don't end up mechanizing this task, it will help your employees to redesign the wand so that it can program several feeder slots in one go. This will reduce the movements to 1/n, as long as you can make it easy to align.
@ericlotze7724
Жыл бұрын
Yeah Ergonomics for Repetitive Motions like this are not something to be dismissed. Tendons are *not* easy to fix!
I think you should use the stepper motor as you auditorial feedback. Just to honour the "if it works it aint stupid" teacher!
I have absolutely no need for the machine you develop. But the process is SO interesting and I used some of the concept you showed in lots of my tiny side projects!
A possibly middle ground for audio feedback for the current (or next?) ID: Use 1 beep for success on even IDs, 2 beeps for success on odd IDs. For error it is up to you, going nuts with the beep, lower/long beep... Otherwise, it would be to put a small screen near your pogo pins Assuming you don't want to trace line on your board to make one big connector :p (line selection isn't possible on a eeprom to share otherline?)
@wesleymays1931
Жыл бұрын
Short single/double beep for success, longer beep(s) for error. Maybe even make the programmer not shut up until you press a button, at which point it lets you try again.
@ericlotze7724
Жыл бұрын
Alternately you need to: - Make the Buzzer Play “La Cucaracha” - Make the Test Unit’s Screen/Buttons Play DOOM
Why not make a panel with the same dimensions (call it the "programming panel") and lined up with the same pads to receive pogo pins, and then put 50 cheap mcus whose sole purpose is to program the mated to eeprom chip? That way you could program an entire panel in parallel instead of in sequence. You could use something very low cost like a padauk IC, and you would program each padauk MCU to do the same code that you wrote for the stylus (short check+program+verify program). The programming panel would contain 50 MCUs and each MCU would have their own success LED, and then on the programing panel you could have a master reset switch and a master program switch. So basically to program you would take the entire eeprom panel and mash it to the programming panel, hit the master program button and then lift the eeprom panel off and inspect all the LEDs on the programming panel making sure they all show a successful status, then you can press the master reset button and grab another panel. What do you think? Am I explaining myself well?
For the grounds-up build, I think I'd make it as a pen (maybe battery powered) with both a buzzer and a tiny OLED. That way, you can see the screen all the time without having to move your head and it will be less cumbersome without a cable hanging of it.
Feels like you could mount this on some kind of gantry system where you place a PCB down under it, and it does the job automatically ;)
@ChrizRockster
Жыл бұрын
That's what I thought. They are producing a consistent PCB with consisent pad placement. So surely a XY Gantry would be the perfect partner to the stylus.
@djdafish
Жыл бұрын
I came here to suggest this too.
You might want to build a needle adapter board with the same size as the panel and all pogo pins in place. Press down the needle adapter onto the panel and program and test the whole panel at once. It will cut down your work to program to 1/50th.
@HeatherBarron
11 ай бұрын
This is what I was about to say.
Do you think you can add this to the pick and place to automate the programming of the whole batch?
I love your project, I've been watching it for a while, and I think this is a great project and will be super helpful for small scale manufacturing. Just curious, how do you deal with compliance testing, such as FCC and RoHS?
I thought for sure that he was going to make a monster board with dozens of pogo pins which would program the entire panel in one go. But yeah, do the simple thing first.
@ericlotze7724
Жыл бұрын
Although a bit less modular than Ben Veltman’s idea of a PnP Toolhead for stuff like this, i LOVE the idea of this. Something about that, and things like die stamping. Just imaging a conveyor belt full of these, and just the *thud* of each time it programs them going every five seconds or so. Wild.
@oliverer3
Жыл бұрын
@@ericlotze7724 would be really hard to get every single pin to contact a pad properly and take decent amount of force very precisely
For the auditory feedback, you can change the pitch of the beep at each address increment to provide some clues about the address you're programming.
Maybe put in a short beep for a normal success, a long beep if it successfully programs a multiple of 5, and three fast beeps if there's an error. That will keep you from losing a lot of progress if you mess one up.
A beeper is a good idea TBH, I think each success should generate a confirmation beep, but then each end-of-line sequence 5/10/15/etc, should be a double-beep so the operator knows if they are at the same place, that or an error-tone, are better places to sanity-check, rather than after every single programming operation. The next step after this is either put the programmer onto a 3D printer to automate it, or give the panels themselves a break-off matrix connection to mass-program an entire PCB all at once.
If you want to keep it manual and beeping: beep in modulo of 4 times on ok. . So 1= beep.2= beep beep. 3= beep beep beep. 4= beeep beeep beep beep. 5 = beep. the reason is that you quickly memorize ho many beeps belong to which number (no problem for an engineer anyway), and you know that it is a wrong number without looking.
I screamed at the stepper motor being used as a weight. As for auditory feedback, you could wire up a vibration motor to one of the two motor drivers on the feeder PCB. 🤔
@ericlotze7724
Жыл бұрын
Owo ? ( /j )
Have you considered doing this without any manual programming of chip? I don't know what the general technology is called, but the DX encoding on old film cartridges would have multiple contacts and the camera would test continuity between them to read the encoding. Unless reprogramming them is super important (but you're already uniquely silk screening each one), this way, every encoding is is baked into the board from the start, no programming is necessary, and you can save yourself that chip. Technology Connections has a great video on the camera rolls tech.
@der.Schtefan
Жыл бұрын
The circuit board of each feeder could binary encode the number, but for 50 feeders he'd need 6 pins just for communicating that. The eeprom can do that with the few pins I2C uses
Why not develop a jig/panel that can program all 50 at the same time to speed up production and just use your single programmer for when it detects issues?
@ffoska
Жыл бұрын
Because this is much simpler and faster? I bet he has such a panel in the works, but it's probably overkill for the number of boards sold
Like my professor always says: "it ain't furniture!"
Next upgrade: mount it onto the PnP and let /it/ program all 50 chips. All it needs is rigid mounting, some "sense of space" with the thing, and feedback from it after telling it to program a chip.
@OddlyIncredible
Жыл бұрын
Fiducials will handle location in space, especially given that this is already implemented on the Lumen.
Wonderful prototype! When are you going to hook 50 of them together so you can just sandwich press an entire panel at once?
Hmm maybe a new interesting thing to add would be a modular stylus that can be added to the lumen? We did some side way dupond stuff for our line up. Would also be nice to have a two pin head that can check for connection or voltages..
Interesting how different people try to solve the same problem. I would have tried to include one of those mini OLEDs inside the stylus at a point where i look anyway. Also a bright LED lighting the board green for success. Maybe even RGB - Green flash=OK, Red flash=Error and altering between two colors for even and odd upcoming numbers as an additional indicator. I find buzzers problematic as you can easily get confused if your ambient noise includes similar sounds. Also: Musik keeps me sane ;)
I was thinking since you've got a panel why not have the panel program them with like " i then write code then move to next" or something like this that way you could do it in big batches and automate it
Love the little parrot machine. You have a PNP machine. Or a bunch of them to assemble PNP machines. Why you do not use one to program the feeder? Put the handle on the machine, put the board into it, too and you are ready to go! And, there is no test printout, like for the PNP mainboards.
You could, by slightly complicating the project probably not worth it, bake a matrix on the PCB comparable to an led matrix that pulls up only one programming pin each so your device can bulk program a complete board at one go.
Have you considered adding a robot arm? or ideally a programming frame that can do all 50 at once?
You need to promote more your twitch, i just found out about it and i've watching you for a while. Cheers!
Looks great, don't do the beeps though. You want to be looking at the screen to make sure you're on the correct address, otherwise you might miss one and then program all the following boards wrong without noticing!
I might have missed it, but does it also check, if what you have just programmed on is also what it should be?
Next iteration: Make it wireless. A bit like those small electric screwdrivers.
Red and green leds on stylus for success or error?
Much better idea would be place LCD right on the stylus. Operator needs to visually control placing of the pins, so their eyes should be there, near pins, not somewhere else looking for a screen.
So, I wonder if in a future version you could convert this concept to the head of a Lumen PNP frame and have it fully automate panel testing/programming by raising and lowering the stylus to specific X/Y coordinates and only moving to the next set of pins on a successful program or reports unsuccessful attempts at the end of the run
Replace the hotend on one of your prusa mini with this one, connect the extruder (or fan?) output to the button, and then create your own G-code that move to each card and down, "extrude", move up and to the next. :)
@TheRainHarvester
Жыл бұрын
If the eprom is on an i2c bus, just program them automatically.
@johboh
Жыл бұрын
@@TheRainHarvester yes even better!
Make the base station beep in binary, maybe a low tone for 0 and a high one for 1. BEEPBEEPbeep - you just flashed #6 correctly. Skip leading zeros. You can make an "angry" tone by alternating PWM frequency very rapidly (a trick from chiptune synthesis) for error code. Or just lower frequency.
Having trouble with font storage in your microcontroller while using graphic LCD or OLED displays? Use an external ROM like the GT20L24F6Y. Has a lot of font information in it, information you don't have to store in your microcontroller.
If you'd used SPI instead of I2C then you could have daisy chained the entire panel together and programmed them all with a single operation.
Since you have a PNP machine, why not utilize an I2C IO extender along with fixed resistors to program the addresses right in the PCB design?
I would put a RGB LED on the stylus to indicate if the programming went successful or not. A beep could work, but you might not hear it in a working environment or when you use those headphones you carry around all the time :)
For what ist the stepper motor inside?
For full out speed put a full size board with enough contacts to contact the other board and a case that lines up the two boards so you can test and program an entire board worth at oncejust placing one board into the guides on the programming block and that can ensure each spot programs the right number.
Cool project! . One question about the identifier solution though: why aren't the ids binary encoded in the pcb design? Since you're panelizing the pcbs anyway you could easily treat the panel as one pcb, with each of the 50 sub-pcbs have it's own unique I'd encoded in the copper in binary. Maybe I'm missing something, but it seems more straightforward and cheaper than eeproms and programming time?
@bracco23
Жыл бұрын
replacement parts are easier to manage with a single SKU, also you can rework existing boards in a pinch if you need
@TheRainHarvester
Жыл бұрын
If one gets damaged/lost, you could reuse a generic one. Maybe make a generic pcb with a programmable number.
@Blubb3rbub
Жыл бұрын
Or a DIP switch.
You can place little tiny 7 segment lcds onto slots so you dont need to write numbers on silkscreen manufacturing can be easier with this method but ofcourse these 7 segments will increase cost a bit
You should consider using the screw hole + a modified stylus design to have a positive register for the proper placement to reduce the effort to hit the right pads.
You can have 2 LEDs on the stylus and use them as feedback, this is really easy und visual Feedback on the Spot where you are looking
I feel like You're teaching the world how to reinvent industry.
If you're worried about being "off by one" while not looking at the screen, why not have the beep change pitch for each column in a row? that way you know if you go to the next row and hear a high pitched beep instead of a low pitched one, you only need to redo one row.
Glad to see someone else use freeCAD!
Wouldn't it make sense to do a jig that does the whole panel all in one go rather than having to put the stylus on each one individually?
you could make it all in the stylus no need for box, you can even go battery powered. if the volume is massive I suggest creating full panel flashing board
Would have been cool to have seen that Twitch stream, looks like there is nothing archived. Why not put it up here?
You could use the pick and place machine itself to automate that stylus thingy :)
Connect that motor instead of a buzzer, you can generate sounds with it.
Use a red and green led on the handle for failure or success? Varry the blinks or use more colors for additional statues.
@ericlotze7724
Жыл бұрын
Outside of Accessibility Considerations (Colorblindness), that’s a good idea! Wouldn’t need many wires and is quite versatile.
Now you need a way to program the entire sheet at one time
You could use a LumenPNP and this Stylus as toolhead to automatically program panel after panel
Instead of the buzzer you could add a DFplayer module that speaks the address you are flashing on the chip, so that you know if it is the right one. It shouldn't be too hard.
This is awesome content. Stephen can you recommend anyone else to watch who does this kind of proto-for-production content? Ive learned a ton from this video and your others.
can the memory be programmed via JTAG?
Buzzer!
Have the pnp poke and program? 😎
If you can make a pcb that size, why not just make another pcb the size of the carrier with pogo pins where you push and entire carrier into and program an entire carrier at a time?
Put the oled sticking out of the stylus so you can see the output right next to what you are programming
Every project has to have some hot glue. Some positive afixmeant can't hurt.
aside from the auditory alert, put a smaller OLED panel on the stylus!
why not use something like a small micro with some resistive dividers than work out its address on startup/during runtime to avoid all the extra manhours manually programming them?
Couldn't you add the pogo pins to your LumenPnP to have a kind of poor man's flying-probe-test/programmer machine?
maybe have the beep pitch go up every address and reset every 10 addresses. also when working with number ranges or any list to selet from, a scroll wheel is sooo much nicer than up and down buttons...
now you need to automate the probe placement so you dont have to stand there doing it. just swap bords when done then figure out a auto bord load unload
You definitely got a pic and place machine extra. Why don't you use that to automate the programing?
„It forces you to have to look every single time to check for an error. It would be nice if you’d just heard a beep for a successful on.” 7:15 How about mounting the LCD screen on the stylus?
What about an LED on the wand, red/green for error/success. No need for sounds, you can work and have your earbuds.
Adafruit for OLED - is the best lib to left with 80%RAM and 60%FLASH :-) I realy like ug2 is more RAM friendly