Just beautiful and a quick scroll seems to suggest a fairly involved undertaking. Hoping to have fun reading it but for now just enjoyed the look of it,
I think having so many sides adds a lot of visual appeal.
A lot of the time when I’m doing something unpleasant but necessary, I say “You’re welcome, future me!”. And now and then when I realize I’m doing something super-easily because of the hard work of past me, I say “thanks, past me!”.
This is interesting. I’ve been thinking of making an icosahedron shaped room lamp with separately controlled sides for a while and this might provide some inspiration and perhaps motivation to start thinking about it again.
Yeah, wow. It takes a special kind of person for sure. I would do three before getting tired (plus my eyes have this weird thing where the center of my vision goes blurry if I focus up close for a few minutes, so odd).
Most people do not appreciate that when doing custom builds, it is often the case that it takes more time to build jigs and other things to help than it takes to do the actual build.
Yes, but GGGGP suggested that the alternative would be not building it due to lack of patience. That's not "extra time" but the difference between having and not having a result.
You would be surprised that many complicated things are built manually, it’s much too expensive to build a machine to do it. Chinese hands are really cheap.
Many PCB services offer SMD assembly as well, though the pricing is quite high for prototypes. PCBWay e.g. quotes over 300 USD for a single board with 2400 parts, though that price goes down quickly when ordering more (e.g. when ordering 50 they will only charge 20 USD per board).
Do you know of a tutorial on how to do assembly with KiCAD/JLCPCB? I've designed a few PCBs and tried to do assembly once, but IIRC my biggest problem was figuring out which parts they had that I could use and how to send them the info.
I did it for a board and it turned out pretty good. Make sure there's a pin 1 marker on your footprints so that in the preview (which they show in the submission process) you can make sure the parts are all aligned (and they will double check as well).
Basic parts are free to use at just the assembly cost. Extended parts add an extra $3 processing per bom item (not per part). Basically as far as I can tell their parts are the same as LCSC.com.
Also, Phil's lab has a long video on assembly from start to finish from Kicad to JLCPCB
It does this from a field on each part in the schematic called "JLC" containing the part number. The only thing I'm unsure of is whether the "footprint" column needs to be edited manually later, though.
Is there anyone here that would assemble something like this for cheaper? I don't have a reflow station but am making something similar and would pay someone to do a prototype (hopefully less than $2400). Based in Los Angeles.
Stencil, paste, steady hand and a reflow station is all you need to be done this type of placement in just about a few hours. The surface tension from the paste will get you 90% of the way there.
Then OP is choosing to do that themselves, not a big deal, but yea, sounds about right if you don't have paste or stencils. I've done a 3212 component board in 6 hours with handheld reflow. It's possible.
I’ve never understood them either. But then one of the motivations for taking a career in IT was so I could automate repetitive tasks. Little did I realise at the time that a whole industry would form around that basic motivation.
And this mindset leads you down the path of repurposing a 3d printer into an SMD piece-n-place machine, and spending 2-3 years of your 4 week project timeline getting that working properly...
:-)
(I would have totally paid $300 to get that done for me - even if it meant re laying out the pcb files to make it a practical "one big board with 2400 components, with a bunch of weird routed slots" task.)
Each LED has four contacts on the bottom. When the solder melts, surface tension of the solder should pull those contacts into alignment with the pads on the board.
I think what they're saying is that they they accidentally laid out the contacts in the wrong orientation, and needed to rotate the LED 90 degrees to put each contact on the appropriate pad. Because the arrangement of those pads is not quite a square, the LEDs do make the connections, but they don't get aligned quite straight.
This is the kind of full stack developer I'd like to be. Started tinkering with electronics in earnest about a year ago but it feels like I'm a decade away from being able to build stuff like this of my own volition.
I think the part that is intimidating to me is the power/clock/microcontroller integration. Maybe the gateway is to design a PCB that just connects the LEDs and over time add more and more components to it.
If you’re just starting then imo it’s easier to go the other way. Start with a fully-built dev board like a Wemos D1 mini. Keep building things and as you run into roadblocks and learn how to get around them you’ll naturally develop the knowledge to get further into fabbing your own integrated PCB.
I bit this particular bullet a couple of months ago. Turns out that a very cheap board like an Arduino Nano Every has a power voltage regulator (that will accept 6-21V supply) and a built-in clock, so you don't need to integrate anything.
(As it turned out, I wanted a more stable clock signal for timing purposes than the arduino clock, so I attached a 32.768kHz crystal to one of the inputs, and that also was very easy. I also attached a 4-digit 7-segment display, as there are enough I/O pins, a thermistor, several buttons/switches, and a stepper motor controller. It was easier than I thought. Give it a try.)
You might look up various DIY arduino designs (starting on a breadboard). You can start with very barebones selection of components, move it to a proto-board, and then modify it to your needs. Adafruit and Sparkfun have great resources for how everything they sell works.
A nice "gateway drug" is an addressable (programmable) LED strip. Hook it up to a Raspberry Pi or Arduino and have at it! I bought cheap motion sensors and will be installing a strip along the inside of a staircase to light up when I approach it.
> This is the kind of full stack developer I'd like to be.
Me too. But I think we need to find a new term for “full stack” at this point. Full stack developer was kind of the trendy “I do JavaScript and server stuff too”—though when I visited with adherents I usually found that many migrate to one part mostly and cede the other areas to others.
I do the kind of stuff shown here, embedded C, mqtt servers, native mobile apps, etc, but I have been leery of using the term “full stack.”
But now I’m seeing the term used more often in a more general abstracted sense, like the above. I see this type of person as a polymath (https://en.m.wikipedia.org/wiki/Polymath). I’d propose the term polytech, but that term is pretty overloaded already, and polyeng just doesn’t role off the tongue very well.
Same here. I have been daydreaming about starting from scratch and building up. Of course, everyone's definition of "from scratch" might be different, but for me the starting point would be an FPGA prototyping board. I'd start by implementing my own CPU, memory controller and IO peripherals. Then I'd move onto creating a development toolchain for the platform. Then writing an OS and so on.
If anyone is curious, the origami stellated [1] icosahedron in the second image is built from Sonobe modules [2][3], a kind of modular origami. Basic structures formed by Sonobe units have 3-sided 45-45-90 pyramids on top of an underlying polyhedra with triangular faces.
Each Sonobe unit functions as an edge in the underlying structure, so building a structure around an icosahedron, which has 20 faces and 30 edges, requires 30 units, and yields a stellated icosahedron with 60 faces and 90 edges.
You can also build a stellated octahedron from 12 pieces, and a stellated tetrahedron (which actually just appears as a cube) with 6 pieces, but that's just the beginning [4]!
I love HN, I stopped as soon as I saw that second image and came to the comment section hoping that there would be a comment like this one. I know what I'm doing this afternoon.
The end of the article talks about mapping the LEDs to 3D space. Once you've done that, I agree that throwing in an accelerometer would be awesome. You could take what he did on his cube[1] and then have it so the animation always flows down in gravity.
Or you could have a mode where you just tap it, and it "rolls a d20", where the RNG generates a number from 1 to 20, and then animates the faces rolling around a little and finally ending with the random number chosen on top.
From the future work aspect the author might consider adding an IMU to the device. It could mimic dice behavior or change state based on motion. Also a great opportunity to learn about dynamics and signal processing.
I wonder if the people commenting "I want one" would still agree if they knew how much it would cost to produce and assemble in small quantities. Would 1000€/piece even be enough to cover costs?
Something like this at the 1k price point isn't profitable? If you've never done anything like this before, I can see it being daunting. However, if you'd never done something like this before, you'd be crazy to start here.
When learning anything new you do a 'hello world' version of something. Bicycles have training wheels. Electronics has starter projects as well. You work up to something like this. Being thrown into the deep end is not the best way to learn how to swim. Eventually though, you get comfortable that project like this are not daunting.
You get your stacks of PCBs, you get all of the interconnect wires, you get all of the LEDs, you get all of your tools, then you just draw the rest of the fucking owl. I would not be looking forward to making 5000 of these, but I would not be afraid of 100. It won't be done in a week, but by the time I got to 100, I'd be pretty good at it. Again, if you know you're making 100, then the added time of making the proper jig is well worth it.
Also, isn't this something that Kickstarter would be perfect for?
Oke so let's to with a bit of napkin math. First materials:
3d printed enclosure: $167.68 (unlikely to get a better price for quantities a hobbyist will self assemble)
PCB for controller + parts, it's not listed in the article but let's assume it's 25$.
PCB for the LED panels + parts. Let's also assume 25$.
So now we are already at $213.68. Then let's factor in labor. Someone who can create something like this would not struggle with asking $100 per hour. I dare say assembling the entire thing, correcting possible errors, testing boxing + shipping will take more then 6 hours. Only placing the LED's will take a significant amount of time.
So no I don't think it's profitable to sell this for $1000.
For $167.68 per 3D print at 100 copies, you'd easily be better off buying the 3D printer and doing the printing yourself for much cheaper. So yes, a hobbiest could get better prices. It is DIY after all.
What's labor intensive about it? Mass producing and assembling PCBs is very cheap. A Chinese manufacturer will make you an injection mold for $2000 and then you can produce thousands of plastic parts for almost nothing.
I think the mistake you are making is that the processes that make 1000 units are completely different to making one unit ten times. The design gets streamlined for manufacturing. Nobody is going to hand solder wires to fix a botched PCB layout 1000 times. You'll just redesign the PCB layout and try again.
Did you miss something? This entire thread is PRECISELY about NOT using mass production capabilities, as in a hobbyist builds a few of them. My point earlier was that it can be profitable if you do use mass production facilities.
I've build a small run of cool electronic trinkets before and it's really a killer how economically unviable it is. My BOM cost (just raw components) was twice what the final cost of a comparable product, with free shipping, from China was.
A lot of people are into "local made, hand crafted" until they see it costs 4x as much for something that functionally isn't 4x as good.
> I attempted to assemble a board bey placing LEDs at 90 degrees, but ultimately this was a failure, the pads look reasonably symmetrical, but they’re not exactly.
With huge numbers of RGB LEDs I wonder if in the future using some sort of small FPGA per panel would make things easier? I have seen that done in some persistence-of-vision projects.
Man, I lived that same nightmare scenario with the flipped G-S pins on a MOSFET.
I had the board spun and excitedly soldered it all up. It was a relay logic project with a few micros, tons of LEDs, swaths of general logic chips, and a lot of relays. It was a hybrid mechanical computer, nothing massive, but a lot of components.
Fired it up for the first time and got nothing. Just like OP I narrowed it down to the relay coils not firing. No signal out of the driving MOSFETs.
Being a fool I had trusted a random online library for the MOSFET footprint, and of course the footprint had the G-S pins flipped. I painfully bodged one before deciding to just bite the bullet and spin another one. I cannot imagine doing 300 like OP did, good on him.
Strings or panels of addressible LEDs would be a good place to start. Adafruit brands these as "neopixels" but the specific LED most of them use is a "WS2812", "WS2812B", or "WS2813".
With these you have a single data line from a microcontroller to control the LEDs, and there are libraries to help you do that.
I've lit some up and fiddled with them and they're pretty cool, but I haven't come up with anything more serious to use them on yet. RGB lights on stuff for the sake of it isn't my aesthetic. But maybe a clock and weather forecast station with animated rain effects or something.
WLED is also fantastic if you are using WS/APA/STK style addressable LEDs. You just need a dirt cheap ESP32/8266 and you get a wifi connected lamp with a lovely web ui, cool animations, android app, timers, home automation integrations etc etc.
Have a look at Pixelblaze. It's a subset of JS on an ESP32 with no compilation - you code in a web browser and the LEDs just render live. I've done plenty of Arduino; this sidesteps the mundane getting-started knowledge base.
This $6 37-LED mini hexagonal board is a fun starting point, cheaper than most strips and matrices:
My kid likes to sleep with a nightlight. But commercial nightlights all have problems: either they are too dark, or too bright, or in the wrong spot, etc. So we made her one out of a LED light string and a colored glass flower vase on the nightstand, and ran a control cable to the headboard where she can easily reach a potentiometer with a nice satisfyingly heavy metal knob.
For v2 of this I was thinking of using the Arduino PWM pins and make the mapping function from potentiometer to brightness a little more linear to the human eye. I have a prototype that works pretty well. Could probably add a little segment display to make a clock or thermometer (she likes to know the temps). Our own StavrosK's project here was super inspiring: https://www.stavros.io/posts/do-not-be-alarmed-clock/
For v3 I was wondering how to implement the transfer function in analog components because I hate the PWM flicker. Even when I use the high frequency modes I can still see it. But I'm not very good at analog design yet. :-)
101 comments
[ 11.9 ms ] story [ 3738 ms ] threadI think having so many sides adds a lot of visual appeal.
If you're just skimming, be sure to slow down and read the "Bodge Time" section.
Keep up the good work!
"Screw you, future me!"
It's so easy to leave things for future me to deal with. But future me would think present me is an asshole for not documenting.
Try to not be an asshole to your future self :)
They have instructions on how to generate the BOM and placement files as CSV too https://support.jlcpcb.com/article/84-how-to-generate-the-bo...
https://support.jlcpcb.com/article/84-how-to-generate-the-bo...
I did it for a board and it turned out pretty good. Make sure there's a pin 1 marker on your footprints so that in the preview (which they show in the submission process) you can make sure the parts are all aligned (and they will double check as well).
The parts are here:
https://jlcpcb.com/parts
Basic parts are free to use at just the assembly cost. Extended parts add an extra $3 processing per bom item (not per part). Basically as far as I can tell their parts are the same as LCSC.com.
Also, Phil's lab has a long video on assembly from start to finish from Kicad to JLCPCB
https://www.youtube.com/watch?v=t5phi3nT8OU
https://gitlab.com/stavros/esp32-cnc/-/blob/master/project.k...
It does this from a field on each part in the schematic called "JLC" containing the part number. The only thing I'm unsure of is whether the "footprint" column needs to be edited manually later, though.
Simple to fix. Just keep uploading the CPL till it looks right.
EDIT: Yep, the config above produces parts the right way.
Lots of crafts require repeating some elementary steps thousands of times.
:-)
(I would have totally paid $300 to get that done for me - even if it meant re laying out the pcb files to make it a practical "one big board with 2400 components, with a bunch of weird routed slots" task.)
I think what they're saying is that they they accidentally laid out the contacts in the wrong orientation, and needed to rotate the LED 90 degrees to put each contact on the appropriate pad. Because the arrangement of those pads is not quite a square, the LEDs do make the connections, but they don't get aligned quite straight.
(As it turned out, I wanted a more stable clock signal for timing purposes than the arduino clock, so I attached a 32.768kHz crystal to one of the inputs, and that also was very easy. I also attached a 4-digit 7-segment display, as there are enough I/O pins, a thermistor, several buttons/switches, and a stepper motor controller. It was easier than I thought. Give it a try.)
Same. It's really fun to mix high level software with hardware.
https://github.com/whyboris/Arduino-LED (see "stairs.ino")
Another project of mine is having the LEDs light up as I play piano:
https://github.com/whyboris/Digital-Piano-LED
Unsure where I'll go after I finish these projects, but LEDs are so much fun!
Me too. But I think we need to find a new term for “full stack” at this point. Full stack developer was kind of the trendy “I do JavaScript and server stuff too”—though when I visited with adherents I usually found that many migrate to one part mostly and cede the other areas to others.
I do the kind of stuff shown here, embedded C, mqtt servers, native mobile apps, etc, but I have been leery of using the term “full stack.”
But now I’m seeing the term used more often in a more general abstracted sense, like the above. I see this type of person as a polymath (https://en.m.wikipedia.org/wiki/Polymath). I’d propose the term polytech, but that term is pretty overloaded already, and polyeng just doesn’t role off the tongue very well.
Like behaving as if it's half full with water and make the liquid move around when placed on the table or picked up.
Each Sonobe unit functions as an edge in the underlying structure, so building a structure around an icosahedron, which has 20 faces and 30 edges, requires 30 units, and yields a stellated icosahedron with 60 faces and 90 edges.
You can also build a stellated octahedron from 12 pieces, and a stellated tetrahedron (which actually just appears as a cube) with 6 pieces, but that's just the beginning [4]!
[1]: Strictly speaking, it's not a true stellation, which is formed by extending the planes of faces until they intersect. [2]: https://en.wikipedia.org/wiki/Sonobe [3]: https://www.amherst.edu/media/view/290032/original/oragami.p... (instructions for folding; I believe the image uses the two-mountain folds variation on the first page) [4]: https://www.polypompholyx.com/2017/01/modularorigami/
I'd think it would be a great programmable D&D dice, except that it might not handle being tossed around.
Next time (LOL), maybe put a gyro-sensor inside it, and program the light such that waves mimic motion... or...
Then roll it like a die :)
[1]: https://twitter.com/esden/status/1160309492896215040
When learning anything new you do a 'hello world' version of something. Bicycles have training wheels. Electronics has starter projects as well. You work up to something like this. Being thrown into the deep end is not the best way to learn how to swim. Eventually though, you get comfortable that project like this are not daunting.
You get your stacks of PCBs, you get all of the interconnect wires, you get all of the LEDs, you get all of your tools, then you just draw the rest of the fucking owl. I would not be looking forward to making 5000 of these, but I would not be afraid of 100. It won't be done in a week, but by the time I got to 100, I'd be pretty good at it. Again, if you know you're making 100, then the added time of making the proper jig is well worth it.
Also, isn't this something that Kickstarter would be perfect for?
3d printed enclosure: $167.68 (unlikely to get a better price for quantities a hobbyist will self assemble) PCB for controller + parts, it's not listed in the article but let's assume it's 25$. PCB for the LED panels + parts. Let's also assume 25$.
So now we are already at $213.68. Then let's factor in labor. Someone who can create something like this would not struggle with asking $100 per hour. I dare say assembling the entire thing, correcting possible errors, testing boxing + shipping will take more then 6 hours. Only placing the LED's will take a significant amount of time.
So no I don't think it's profitable to sell this for $1000.
Besides even if you would magically have 0 material cost. it's so labor intensive that's it's not worth it at $1000.
I think the mistake you are making is that the processes that make 1000 units are completely different to making one unit ten times. The design gets streamlined for manufacturing. Nobody is going to hand solder wires to fix a botched PCB layout 1000 times. You'll just redesign the PCB layout and try again.
A lot of people are into "local made, hand crafted" until they see it costs 4x as much for something that functionally isn't 4x as good.
Why was that a problem? The leds are square, so you could just rotate them by 90 degrees?
With huge numbers of RGB LEDs I wonder if in the future using some sort of small FPGA per panel would make things easier? I have seen that done in some persistence-of-vision projects.
I had the board spun and excitedly soldered it all up. It was a relay logic project with a few micros, tons of LEDs, swaths of general logic chips, and a lot of relays. It was a hybrid mechanical computer, nothing massive, but a lot of components.
Fired it up for the first time and got nothing. Just like OP I narrowed it down to the relay coils not firing. No signal out of the driving MOSFETs.
Being a fool I had trusted a random online library for the MOSFET footprint, and of course the footprint had the G-S pins flipped. I painfully bodged one before deciding to just bite the bullet and spin another one. I cannot imagine doing 300 like OP did, good on him.
«You assambled all 19 before testing first one?»
«….Yes. I am not a smart. -_-*»
When you are in the production flow, it is hard to stop for testing.. Good to see it’s not just me that can make this kind of mistake.
I have dabbled with arduino in the past but I am no expert with hardware.
Does anyone have suggestions of cool projects similar to this? Toy-like LED things :)
Or even a website I could browse to find similar projects (like Instructables maybe)?
With these you have a single data line from a microcontroller to control the LEDs, and there are libraries to help you do that.
I've lit some up and fiddled with them and they're pretty cool, but I haven't come up with anything more serious to use them on yet. RGB lights on stuff for the sake of it isn't my aesthetic. But maybe a clock and weather forecast station with animated rain effects or something.
Lots of info here: https://learn.adafruit.com/adafruit-neopixel-uberguide
https://www.learnrobotics.org/blog/neopixel-projects-ridicul...
https://github.com/Aircoookie/WLED
This $6 37-LED mini hexagonal board is a fun starting point, cheaper than most strips and matrices:
https://shop.m5stack.com/products/hex-rgb-led-board-sk6812
For v2 of this I was thinking of using the Arduino PWM pins and make the mapping function from potentiometer to brightness a little more linear to the human eye. I have a prototype that works pretty well. Could probably add a little segment display to make a clock or thermometer (she likes to know the temps). Our own StavrosK's project here was super inspiring: https://www.stavros.io/posts/do-not-be-alarmed-clock/
For v3 I was wondering how to implement the transfer function in analog components because I hate the PWM flicker. Even when I use the high frequency modes I can still see it. But I'm not very good at analog design yet. :-)
I made 8 LED icosahedra and 12 octahedra for a permanent lighting install in Boulder. They’re much larger (and thus were easier to make albeit much harder to handle ;) ) than this. I still gotta do the case study but some pics: https://www.instagram.com/p/Bv0dYbdH0yw/ https://www.instagram.com/p/Bv-sF0oH4Rd/ https://www.instagram.com/p/B5czvt_n3ME/
[edit: less unintentionally self-aggrandizing]