7 ms·
I learned PCB design, 3D printing and C just to listen to music
- interfeco 2mo agoHey HN, I've finally finished my dream music streamer featuring a vinyl-sleeve-sized square display, a custom carrier PCB for a compute module and a 3D printed case, running a custom-compiled kernel, Alpine mini rootfs and a small C app driving the display. I did not think that this was doable by a hobbyist at all, let alone using free/open source software only (KiCAD, FreeCAD, VSCode). Turns out I was wrong!
- dgellow 2mo agoCongrats, that looks really neat :) Do you have plans to make the project open source?
- oinoom 2mo agovery clean and well done!
- yenepho 2mo agoThis is super cool! Thanks for sharing :)
- danr4 2mo agodid ai help?
- dnpls 2mo agoThis is an awesome project! I think it would be a great use case for a color e-ink display, I imagine it would consume way less energy.
- mananaysiempre 2mo ago> Once I had the design [of the enclosure], I tried to 3D print it on my brand new 3D printer, which turned out to be a disaster. Took me some time to learn more about designing for manufacturing, especially for 3D printing. Would have been nice to hear how specifically it was made to work in the end. > Turns out, cross-fading two 4MP images at 60 frames per second on a moderately powerful single board computer is not so easy. Yeah, at first it feels stupid that every pretty LCD screen for bus or train stops, ads or whatnot has a full computer behind it, but then you ballpark the memory bandwidth and realize you need a ~ 1 GHz device anyway just to be able to chew through the pixels fast enough. (1920² px × 24 bpp × 60 Hz = 620 MB/s.) You also realize why “fill rate” used to be such a buzzword 20 years ago and why it took a while until true color became ubiquitous. On the flip side of the O(n²), you can easily drive a watch-sized display with pretty good ppi using a 32-bit MCU, which is why the Apple/Google/Samsung battery-guzzling approach to smartwatches seems wrongheaded to me compared to Pebble/Zepp/etc.
- markb139 2mo agoWay back in time (1980s) I worked in the broadcast tv industry. We used to used digital still stores. A single frame of PAL took up 1MB of RAM. The machines had 2MB fitted. The board had a hardware cross fade function implemented in discrete logic chips. They also had a 20 or 40MB scsi drive. It was all controlled by a 6809 cpu. Quite impressive for the time
- skippyfish 2mo agoLarge displays are not driven by a general-purpose CPU that bit-bangs a single serial data line, and never were. They're driven by separate circuitry with direct memory access, often integrated on the die of chips meant for these applications. The actual bus to the display controller may be a parallel dot-clock RGB bus, or an ultra-speed differential multi-lane serial (MIPI DSI, HDMI, etc). And train stop displays certainly don't need 60 fps. The main constraint for high-resolution displays is memory, not CPU clock speed. Your (odd) 1920x1920x24bpp frame buffer takes up more than 10 MB.
- Aurornis 2mo ago> They're driven by separate circuitry with direct memory access, often integrated on the die of chips meant for these applications In embedded SoCs the memory bandwidth is often shared between the CPU and the GPU. There is not a separate pool of memory and bandwidth for the GPU. > The actual bus to the display controller may be a parallel dot-clock RGB bus, or an ultra-speed differential multi-lane serial (MIPI DSI, HDMI, etc). That’s not what the parent comment is talking about. To get the data into the framebuffer you need to write it first. You also need to read the source images. For blending two images and writing the output, the floor is 3X the total image size every single frame. (Two reads, one write). There are tricks that can be played with frame buffers and scan out blending, but you get the idea. > And train stop displays certainly don't need 60 fps. We’re talking about the product in the link, which is trying to blend seamlessly between two images at 60fps. > The main constraint for high-resolution displays is memory, not CPU clock speed. I don’t think you understood the problem space. If you’re doing software blending of 10MB image buffers at 60fps, the CPU can be easily be a bottleneck. You have to ensure the CPU can do enough load operations, math on the loaded data, and store operations to get it done in 16.7ms. Ideally you have a GPU, but if you don’t then you need to pay close attention to optimizations and special instructions to get it done within the frame budget and also allow some cycles for all of the other work the app has to do. > Your (odd) 1920x1920x24bpp frame buffer takes up more than 10 MB. The 1920x1920 size came from the article. Parent commenter wasn’t making up odd sizes, they were responding to the article.
- jdsfijfdsifs 2mo ago[dead]
- kubb 2mo ago> I was able build an out-of-band protocol extension into my audio player app I wonder how that works.
- interfeco 2mo agoEasier than it sounds: the app runs a simple http server that serves cover art by track id. The track id is transferred via iOS's built in "Now Playing" metadata fields, which is then used by the device to construct a query and fetch the full resolution image.
- dsign 2mo agoA bit tangential, and in the topic of nostalgia for old ways, remember when every block had a photo shop? Couldn’t we get a “PCB shop” in our bright near future? I wonder if the density of enthusiasts that need PCBs made is so low that the entire market is captured by only one or two companies based off China subject to the realities of shipping times.
- marcosdumay 2mo ago> I wonder if the density of enthusiasts that need PCBs made is so low that the entire market is captured by only one or two companies based off China The sad answer is that yes, it is that low. The better answer is that as PCB manufacturing gets more hands-off, we can look forward to some "PCB totem" somewhere in your city, like those self-service photo printers that exist now.
- greensoap 2mo agoJCLPCB and who? Having a board made and assembled was both great in speed and effort, and terrible in cost markup when you add tarrifs on a $50 uc at 5 board minimum.
- 15155 2mo agoChina: PCBWay, NextPCB (hqpcb), ALLPCB, pcbx, PCBgogo North America: OSH Park Europe: AISLER
- rebolek 2mo agoOh, Absent Friends by Divine Comedy. What a beautiful record!
- reolbox 2mo agoHow did you learn PCB design? Any books or resources you can recommend? How long did it take you to learn?
- interfeco 2mo agoMostly YouTube and udemy courses. This one was pretty good in particular: https://www.udemy.com/course/high-speed-pcb-design-with-kicad/ https://www.udemy.com/course/high-speed-pcb-design-with-kica... I've spend around a month on the PCB as a hobby, next to a full time job.
- PcChip 2mo agoDid you configure pipewire to allow multiple samplerates, so it can auto-switch the dac and not have to resample?
- interfeco 2mo agoI am not using pipewire, just ALSA. AirPlay is (almost) always 44,100 Hz so there is not much to auto-switch to.
- matheusmoreira 2mo ago> I never did this before so there was plenty to learn, from basic electronics and magnetics to high-speed signal routing. How did you learn this? As a hobbyist I found hardware to be quite impenetrable, given the hard mathematics and physics requirements. My attempts to learn this essentially degenerate to taking an informal engineering course. It quickly becomes clear that I'm years away from making something, and I eventually run out of both free time and executive function. AI's been helping... But I don't have the ability to tell when the output is wrong.
- interfeco 2mo agoJust to be clear, I made a working prototype (and put a hyperbole in the title), I have a lot to learn still. You can learn something practical like "embedded DisplayPort should be impedance controlled to 100 Ohms" without fully understanding the physics behind it. AI can be very convincing. It told me to put the ESD protection as close the Ethernet connector as possible, so I put it between the port and the magnetics. This worked, but resulted in around 1% packet loss. When I moved it after the magnetics, I got 0% packet loss. This cost me a full revision, but I'd say this is the price to pay for not learning everything by the book.
- 15155 2mo ago> so I put it between the port and the magnetics For GP: this is something you would learn from a PHY manufacturer's EVK schematics and layouts. TI (especially), NXP, Microchip show correct magnetics/ESD part numbers and placement - the trickier thing here is finding an EVK that doesn't just use an integrated MagJack. See https://www.ti.com/lit/df/snlr034/snlr034.pdf https://www.ti.com/lit/df/snlr034/snlr034.pdf
- matheusmoreira 2mo agoYeah I'm relying a lot on the TI datasheets for "known good" power supply schematics. I chose an Intel N100 SoM and there's an example carrier board, but the whole point of my project is to customize that board. I wanted to do things like rewire the HSIO lines: turn the GPU PCIe socket into extra USB 3.0 ports and M.2 E sockets. The "known good" designs won't port over cleanly. It's PCIe gen3 over short runs, Claude tells me it's "forgiving" but I'm still nervous about it. I'm placing an Intel I210-IT onto this board too, would definitely appreciate any tips!!
- websap 2mo ago> I use AirPlay in my home exclusively, so I needed this streamer to support that Doesn't Airplay switch you to other media on your device (e.g. Reddit, Youtube, etc) while browsing while streaming?
- jagged-chisel 2mo agoAirPlay doesn’t. Your iPhone might switch what app is streaming over AirPlay, but that’s not an AirPlay problem.
- peteforde 2mo agoThis is really cool. I would love to switch from using the SoM I'm currently using to the Radxa CM3 but I cannot find even a single unit actually available for purchase on any of the "international" distributor options. Can you speak to how you're sourcing these, and from where? (And would you sell me one?)
- interfeco 2mo agoI buy them on AliExpress.
- peteforde 2mo agoEvery variant comes up as not available. This is the listing, right? https://www.aliexpress.com/item/1005007516847708.html https://www.aliexpress.com/item/1005007516847708.html
- interfeco 2mo agoYes, this was it, looks like it is gone now. According to the CM3 datasheet [0] "Radxa CM3 will remain in production until at least Sep 2029", so there should be inventory hopefully. [0]: https://dl.radxa.com/cm3/docs/radxa_cm3_datasheet.pdf https://dl.radxa.com/cm3/docs/radxa_cm3_datasheet.pdf
- peteforde 2mo agoI've been talking to them since before my first comment to you, and they are unable to sell even a single unit to a verified engineering team. They told me that if I am willing to commit to at least 300 of the 4GB/32GB eMMC + BT/Wifi then they could produce them for me on demand. I told them that it was insane to expect anyone to commit to developing a product around a platform that they would have to buy USD$30k worth of to see if it could (for example) support a particular display panel configuration using eDP. Having this kind of chicken-and-egg problem is a quick way to doom a SoC, which is super frustrating because I definitely want to use it.
- boznz 2mo agoNice design. I have done similar projects for myself and my friends, aesthetics is always the key to a make and forget music system you will actually use daily. My last one re-purposed a pioneer amplifier https://rodyne.com/?p=3380 https://rodyne.com/?p=3380
- egypturnash 2mo ago> Turns out, cross-fading two 4MP images at 60 frames per second on a moderately powerful single board computer is not so easy. I needed to use GPU acceleration to make it happen and look smooth. fizzle fade, munching squares, horizontal/vertical/circular/pinwheel/etc wipes - anything that lets you replace a small number of pixels in the display buffer each frame.
- eahm 2mo agoSorry but ...a Mini PC with foobar2000, remote controlled via phone/web and a monitor for the full screen cover and done, that's what I'd do.
- psd1 2mo agoMe too, in the general case, but the square display was a key requirement. And i can see it; op is displaying LP covers; it needs to look good I think i'd just make the bezel for the display and putty an SBC onto the back with an HDMI converter dongle. I'd likely order a custom picture frame with some rococo moulding, for the anachronistic effect, and display nondescript oils when not streaming.
- warpech 2mo agoThat's incredible! I was thinking about such a project but a quick research didn't show any suitable square-shape LCD monitors. I am glad that turned out to me not true. I will be happy to participate in the Kickstarter campaign WDYT about adding something more to the screen than record sleeves, e.g., lyrics display?