Hacker News new | past | comments | ask | show | jobs | submit login
IKEA Frekvens LED box hack (spritesmods.com)
574 points by rubenbe on April 6, 2020 | hide | past | favorite | 82 comments



Shout out to the amaaaaazing folks at Teenage Engineering who built this with Ikea, you can also 3D print accessories for the Ferkvens: https://teenage.engineering/designs/frekvens-hacks


Indeed. Had my eyes on this for a long time until release, then just around those days had too much to do and missed out on it completely. All sold out. :(


This is the same guy that installed Linux on his hard drive's controller. A very interesting read:

https://spritesmods.com/?art=hddhack


That is correct.

I have been following Jeroen's (sprite_tm) work for quite a few years now. I first encountered him on the GoT forums (which are in Dutch) back in the early 2000's iirc.

His website is a delight to read, there are many interesting hacks.

Edit: here is an interview with Jeroen from 2013 [0], it is in Dutch though, there seem to be no captions available.

[0] https://www.youtube.com/watch?v=otjnmtSy4H4


Maybe I'm mistaken, but it doesn't look to me that the Linux is running there. (Of course, it doesn't mean his effort is any less)



Sorry, you are right, I missed that part! Really fascinating hack!


This isn't the only project to hack the Frekvens. Here's code + instructions (not mine) for hacking the box with an Arduino + AdaFruit GFX library: https://github.com/frumperino/FrekvensPanel

It seems fairly approachable if you don't mind the disassembly / reassembly required.


This is a very nice hack, and I enjoyed the writeup (minus the fact that the site isn't easily readable on mobile).

As someone who does a lot of this stuff too, I've kind of realized that it's hard to get an audience unless you're making YouTube videos. I've heard of many "YouTube makers" but very rarely has someone sent me an article like this one.

Does anyone have first-hand experience with this? I don't much like making videos, but if that's what gets more people to see my stuff, maybe it's worth it. Am I correct or do I just see the videos from creators because they managed to already get popular, and they just happen to be on YouTube?


Videos are easier and more entertaining to consume than text for most people. The audience of a text post like this is mostly hacker types; if turned into a video that’s as much about the entertainment value as the nitty gritty, your audience now becomes 99% bored tech enthusiasts and 1% hackers, and you could plausibly go from a few thousand reads to your article to a few hundreds of thousands views for your video as on top of that, the YouTube platform itself acts as a reach multiplier.

So yes, if your goal is to make money/get an audience rather than purely documenting (nothing wrong with that), you’re much better off making a 10 minute YouTube video than writing a 5 page article.


This. Your target audience is the determining factor. Though, you can do both: Put the gritty technical stuff in an article while the live demo and a talk goes into a video.

Personally I don't care for video and most videos people send me go unwatched. It's just not productive and I can scroll and skim text for interesting bits faster than skimming a video.

Most "technical" videos are simple tear downs for entertainment or a lengthy demo with a long winded how-to or technical overview. ZZZZzzzzzzz.


Reader view on safari works brilliantly on this site, if you’re using an iPhone of course.


Firefox reader mode generally works well, although it's completely disabled on some sites and I never managed to figure out why.


Reminds me of when I went crazy with some Christmas lights: https://blog.jgc.org/2011/11/turning-ge-color-effects-g-35-c...


I own two strings of those lights because of you and that article. Thanks for the inspiration and entertainment!


For the impatient, the final product is here: https://youtu.be/UCPUPO21Cwk?t=17 linked from the fifth page of the post: http://spritesmods.com/?art=frekvens&page=5

It's an eye that follows movement around, pretty cool.


Funny how abit of clever software can take full advantage of the hardware. The authors eye is way more impressing than the OEM's.


Well, he didn't take full advantage of the hardware - he changed significant part of it (raising total final price by 1/3). Nevertheless I agree - it is very impressing ! :)


> he changed significant part of it (raising total final price by 1/3)

Have to say the coolest thing about the recent collaboration projects from Ikea is you get work from well regarded product designers at prices everyone can afford.


That is Ikea's usual modus operandi. Their merchandise is well designed and engineered for the most part. The cheap furniture is good - but only for the price. Some of the less cheap stuff is pretty good quality, like kitchens.


IKEA needs to Apple it up a bit. Increase the hardware specs, , add 1/3 to the manufacturing cost, double the price, build an app store for people to download new effects to their box, charge 30% of the revenue from these effects.


Can anyone explain how PWM (pulse width modulation) uses more computational power than binary code modulation (or bit angle modulation)?


I can. Say you want to display one 'frame', that is, one run where you display all the pixels where the pixels on average have the intensity you want them to have. Because you can only turn the pixels off and on, you need to send a certain amount of 'subframes'.

PWM works as such: you send 256 subframes at the same time interval, and if you want a pixel to be 50% dimmed, you turn it on in half of the subframes and off in the other half. When you want it at 1/255 brightness, you turn it on in only one of the 255 subframes.

BCM/BAM works as such: you send only 8 subframes, but each subframe has a specified time when they are visible: each following subframe stays on for twice as long as the previous one. For example, subframe 0 is visible for 1 ms, subframe 1 is visible for 2 ms, subframe 2 is visible for 4 ms, subframe 3 is visible for 8 ms, etc. Now, by turning on the pixels in some subframes, you can exactly specify how long they are on in the total frame: say you want to have your pixel at a dimness of 200, you'd turn it on in subframe 3, 6 and 7.

As to CPU use: because you only need to calculate and send 8 subframes instead of 256, everything takes up less CPU. Especially during the longer subframes, the CPU can context switch out and go do something more useful while waiting.


That didn't explain the energy difference.

The on-time power is identical in both cases.

PWM has more capacitive-switching energy cost (in wires and it gate cap), and crowbar current. But I'm curious how much of the total energy is due to these transients, because LEDs burn a ton of power. Is crowbar/capswitching 50% 90% 1%?

Now the hardware to compute the binary signal is the same as the PWM because you still need to subdivide the clock and count to know how many phases have passed to pulse at 1, 2, 4, 8ms, etc. This is typically done with dedicated hardware (the Atmega has a fairly unsophistcated PWM compared to TI, ADI or STM). Ideally you want the PWM to use the IO fabric to DMA the data, and not have the CPU twiddle GPIOs, that's a sledgehammer approach.

Also, the PWM rate is not fixed, it does not have to be 256 pulses. Depending on the hardware it can go from Hz to MHz (it impacts responsiveness). But that is a function of the MCU, and Atmega has fairly coarse adjustment for the PWM modes.

Ironically, the point of PWM is to actually save power.


What do you mean by "crowbar current"?

Running the bus for a large array definitely takes a lot of power, but I agree it wouldn't be huge compared to the LEDs themselves.

> Now the hardware to compute the binary signal is the same as the PWM because you still need to subdivide the clock and count to know how many phases have passed to pulse at 1, 2, 4, 8ms, etc. This is typically done with dedicated hardware (the Atmega has a fairly unsophistcated PWM compared to TI, ADI or STM). Ideally you want the PWM to use the IO fabric to DMA the data, and not have the CPU twiddle GPIOs, that's a sledgehammer approach.

BCM isn't used when hardware PWM is an option. It's used for displays driven by long long chains of shift registers where you have to reload a whole frame to change an LED's state. Your DMA is sending data to a hardware SPI transmitter, not a PWM block in this case. There are ICs designed for _very_ large, high-end LED arrays that have hardware PWM for each LED, but they're less common and much more expensive.

You also don't really need to 'compute' BCM. You generate a bit-sync pulse or interrupt or whatever that runs once for each bit. At that point you just grab the pixel from the frame buffer, mask the correct bit, and output it to the array. The advantage over PWM is this bit-sync only runs 8 times (or whatever the bit depth) instead of 256. The shortest time between syncs is still the same length of the equivalent PWM signal, but the length between them grows but double each time (up until the start of the next period).

> Also, the PWM rate is not fixed, it does not have to be 256 pulses. Depending on the hardware it can go from Hz to MHz (it impacts responsiveness). But that is a function of the MCU, and Atmega has fairly coarse adjustment for the PWM modes.

256 is the number of grayscale colours (2^bit depth), not the pulse rate. Just like PWM, BCM can run at any rate or any bit depth.

You're really hung up on microcontroller PWMs. They're certainly helpful, and you certainly can use them to drive LEDs, but they top out at anywhere between 2 and 24 channels, so they aren't cost-effective for large, dense arrays. These LED drivers are really just shift registers, so they're dead simple and very, very cheap.


The only difference in power consumption is in the reduced toggling of the IO pins and the reduced effort of the CPU (but that's assuming the CPU will downclock or downvolt automatically, which is unlikely for a microcontroller.)

In an LED panel, the vast majority of power consumption is in lighting up the LEDs.


Does this not increase the flickering?


Yes, for an intensity that is not a power-2 fraction of fully-on, but all the additional flickering is at frequencies that are harmonics of the fundamental frame rate. If the fundamental is high enough that you do not notice the flickering, you will not notice the additional components.


Feels like IKEA could capitalize on an opportunity here to provide a beginner friendly devkit to control the patterns. I love writing software but am less delighted by physical messing around :)


I think this is a too small niche for IKEA, but they should help selected hackers or small companies to fill these niches. Maybe this is already happening and we do not notice.


This is happening at least with more traditional Ikea items, for example cabinets: https://www.semihandmade.com/pages/about-us


> Ikea is an interesting store. Even if you go in having in mind you're only going to buy that one thing that you actually need and this time you're not going to be distracted by other crap, you tend to come out with about three times the amount of things you wanted to buy.

Yeah, there's a lot to say about Ikea's psychological warfare. They are really good (not to mean their products isn't, you get my drift).


I’ve always been amazed by how IKEA are thought of as this highly ethical, sustainable company. Despite making billions revenue in Australia every year, they pay almost zero $ in tax.


I assume it is because they are like all other huge international companies in that aspect so people ignore that part and focus on other parts.

i.e. Facebook does the same and is, like IKEA, hammer by it in Europe and elsewhere but Facebook also have privacy scandals while IKEA has fewer of those types of scandals.


That is a failing of the Australian government, not Ikea.


Why downvote? It’s a fact.


We obviously both hit a nerve :D.


If you like Blinky toys, check out the magicShifter3000 which is a persistence-of-vision-based pocket computer with its own built-in web editor and other crazy features (lightshow, arpeggiator, etc.):

http://magicshifter.net/

Fully open source, available here:

https://github.com/magicshifter


Looks like the firmware is AGPL but the electronic schematics are under a non-commercial license [1].

[1] http://magicshifter.net/#features


For a much more interesting (but similar) bit of kit, see the Pixoo (http://www.divoom.com/product/pixoo.html)


I am very into this. Did anyone ever come up with an API style interface to control what gets pushed to one of these?


I would love to see this installed above a doorbell.

Blank until someone approaches, then the "Eye" appears with no sound, and follows the persons movement at the door.

Super creepy.


This will probably be the only Teenage Engineering device I can afford.

I just need to find a store that carries them.


These are sold out everwhere. I couldn't find them besides on eBay.


>I just need to find a store that carries them.

What, apart from IKEA?


It's sold out on the online store here.


Isn't IKEA currently closed in most countries?


IKEA's not closed here. And they still have delivery services and now they have an option to pick up your order from the loading dock.


Pocket operators are pretty cheap, but still very powerful.


I’m really annoyed this range isn’t getting a more global release. We won’t be seeing these in Australia.


I think the gamma on that code is off. Pixel values != linear luminance


looks like ikea carries over their minimalism to their PCB design, too.


the firm they collaborated with on this line is no stranger to PCB as art and function: https://teenage.engineering/products/po


Oh these guys have a really cool synth


The use of a standard PCB bonded to the back of an aluminium-core one is a nice combination. Quite possibly they were developed seperately with a view to upgrading the product in the future by changing which back PCB they put on.


Unreadable design on the website, but a cool project.


Yeah, sorry, last time the CSS got updated was 2010... what specifically makes it 'unreadable' for you?


Since you're asking: on Firefox/Android the page rendered in the declared three column layout. Even after I manually zoomed in to make the center column fill the width of my screen, the text was very small.

Usually, I'd just use Firefox Reader View (aka Readability.js), but it's not being offered on the site. I don't know why, the document structure seems straightforward enough (IANA web dev).


Same trouble here, just adding a mobile-friendly meta tag would probably fix the issue.


Any pointers for that?


Sure, adding this verbatim should be enough:

https://css-tricks.com/snippets/html/responsive-meta-tag/


Oooh, I tried that, it does not make the experience better (at least in Fennec on my Android): the main column gets squeezed until it only shows one word at a time. I think I'd have to drag my websites CSS into the 21th century before I can use that.


Ah, that's too bad. You can use two CSS selectors to make the two columns go under then main one on small screens, though it's a bit more involved than I can remember off the top of my head.


The fact that one article is split to N pages, for one thing. I gave up on page 2.


There are only five pages (it shows you in the right pane). I had no problem with clicking "Next" but even if you dislike that I suggest you persist - it's a nice project, a well written article and worth reading.


It's a good point, though, and one I heard earlier. Spritesmods used multi-page articles from the beginning (which is nigh 14 years ago now), initially because, I dunno, more of the web was like that? Later, when I needed the money, it was because I liked header ads more than long articles with interstitial ads. Now I don't quite need the money anymore, maybe I should throw out ads and either default to everything-on-one-page or at least give that as an option.


Yes please. The less ad tech sprawled all over the internet, the better, and it sets a great example!


Worked the same for me. I actually like the css on the site, but I refuse to click through multi-page articles. Especially when I am not even informed about the total number of pages.


FWIW, Safari Reader Mode will automatically stitch together multiple pages


You can use the Tranquility addon [0] on Firefox to make it readable. It worked well for me.

[0]: https://addons.mozilla.org/en-US/firefox/addon/tranquility-1...


I find sprite's content so enjoyable that I would still check on his website monthly even if it had www.tic.com design!


It works fine without JS, which is already far more readable than a lot of other sites.


Having the ad so close to the “Previous” and “Next” buttons is a violation of AdSense terms of service because it strongly encourages accidental clicks, especially on mobile. But I suppose that’s the whole reason they broke their blog post up into multiple pages in the first place.


My excuse is that the design is close to a decade old by now, and that back in the days, there were enough pixels between the two as the resolution was much lower. I don't need ads anymore, so I disabled them site-wide; that's the best way to fix the issue I figure.


So this IKEA thing is a 16x16 LED box. (btw: Ikea is evil)

Related: LEDmePlay 32x32 LED box with some cool games:

http://www.mithotronic.de/ledmeplay.php

The actual 32x32 RGB panel (6mm pitch) is around $19 from AliExpress. There is even a handheld version with 4mm dot pitch.


Out of curiosity, why exactly do you find IKEA evil?


Why is Ikea evil?


I don't know about evil, but they were pretty good at tax evasion, spanning decades: https://medium.com/@jurgeng/ikeas-tax-scheme-a-corporate-str...


In France at least they are under investigation because they were illegally spying on their employees and even some of their customers. I am not sure what is the status of the trial, but this was big in France at the time, and happened for a very long time.

The story in french: https://www.francetvinfo.fr/economie/entreprises/ikea/enquet...


I had some issues with them. They screwed up and their customer support didn't even answer two written letters.


And that means they are evil? Wow, people nowadays.


Depends on the screw up, if it caused actual bodily harm and they didn't respond I would be inclined to call them evil too.

I will conceded to playing devil's advocate here though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: