DIY RGB Icosahedron
gregdavill.com
gregdavill.com
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 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]
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:
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://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.)
(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.
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.
If you're just skimming, be sure to slow down and read the "Bodge Time" section.
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 :)
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 :)
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.
«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.
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.
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.
Where's a good place to get started with this?
Planning to get some GPIO headers for my raspberry Pi, breadboards and led lights to just get started.
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...
This $6 37-LED mini hexagonal board is a fun starting point, cheaper than most strips and matrices:
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 think having so many sides adds a lot of visual appeal.
Like behaving as if it's half full with water and make the liquid move around when placed on the table or picked up.
I'd think it would be a great programmable D&D dice, except that it might not handle being tossed around.
You could get something like the Matrix Portal and an off-the-shelf LED matrix to make an Internet-connected sign: https://www.adafruit.com/product/4745 (I use one of these to show the indoor and outdoor temperature, and it's only a few lines of Python.)
If you already have a microcontroller in mind and just want a grid of LEDs, these are great: https://www.adafruit.com/product/3444. I have a bunch of them wired in tandem to serve as a display for my GPS clock: https://raw.githubusercontent.com/jrockway/beaglebone-gps-cl...
Also, you probably don't need an FPGA to drive LED matrixes anymore. The RP2040's PIOs do a great job (the RP2040 is a $1 dual-core microcontroller), and honestly even a plain Cortex M0 does a perfectly fine job with cycles left over to run user code (for 64x32 grids anyway). The project this post documents probably could have been done with APA102s and a simple microcontroller spitting out a SPI signal to change their colors. No FPGA, no MOSFET bodges, etc. 2400 pixels is 7.2kB of data, which you can easily output many times per second.
I found that this adds up quick if you attempt variable brightness via PWM. At 1Khz this is 7.2MB/s of data.
Why was that a problem? The leds are square, so you could just rotate them by 90 degrees?