It's compatible with Settlers of Catan. However, I plan to make my own rulesets, artwork, manuals, etc. It will not be a commercial product, of course you can make your own with the files I provide.
Right now the boards, electronics, and firmware are in good working order. Although the routing is pretty YOLO.
It feels like there's a lot of unpleasantness going on in the world right now. I thought maybe I could put my other projects aside and try to make something that might brighten your day (It certainly has enough of LEDs).
A big TODO is to replace the 0402 SMT components with something larger and easier to work with like 0603. I'll find time within a week or so and push it to the repo. (I am notoriously cheap and only keep 0402 in stock)
If you have any ideas, please share! Design is not my strong suit.
I was thinking maybe some surface features, like craters (in silkscreen) and some "resources" -- tinned exposed copper / copper covered by solder mask.
Or some way to hold the boards together, like a magnetic clasp or even just velcro. It's not really a problem presently, but might be neat.
Yeah, that's a good point. A colleague did offer to help, and then donate the results to some schools. I'm not sure why it didn't occur to me to just say yes!
I think about this sometimes. In the context of AI, but also for other reasons.
One way I like to see things, is that I'm lucky enough to have this intersection between things that I like doing, and things that are considered "productive" in some way by other people. Coding is one example, but most of my interests are like this.
I think a big reason I can have a not-unpleasant job, is because I've gotten reasonably good at the things I like doing. This means that for every employer that wants to pay me to do a thing I hate, there exists an employer that is willing to pay me more to do something I like, because I'm more valuable in that role. Sometimes, I'm bad at efficiently finding that person, but such is life :D
Moreover, I tend to get reasonably good at things I like doing, in highly specific ways. Sometimes these cause me to have unconventional solutions to problems. Generally these are worse (if I'm being honest), but a few times it's been a novel and optimal algorithm that made its way into a product.
I'm very hesitant to change the core process that results in the above: I express whatever natural curiosity I have by trying to build things myself. This is how I stay sharp and able to do interesting things, avoiding atrophy.
I find AI fascinating, and it's neat to see it write code! It's also cool to see some people get a lot done with it. However, mostly I find it about as useful as buying a robot to do weightlifting for me. I guess if AI muscles me out of coding, I'll shrug and learn to do some other fun thing.
I was going to skip this article until I read your post, it got me curious. You're totally right, it does read really weird. It made me laugh a bit, I needed that this morning. Thanks!
I have also "spun up my own SMT". It's a 50 USD hot air rework station and maybe 20$ of consumables in a 4 meter square workshop (I live in Asia). It would be challenging, but possible, for me to assemble the PCBs in their photographs by hand. There are indeed a lot of people like me.
He certainly meant an "SMT line", because phones assembled on a manual station in the USA (outside of shit quality) would cost well in excess of $2000.
They might, if their expectations are as simple as an on ramp to better or more stable things. It would also make sense for those who are using this method for career change.
I have a coworker who "couldn't hack it" as a paralegal and is now working in the line for server assembly. Or another coworker who came from a major daytrading firm to work quality control with me.
That’s not what they do. As Tim Cook said multiple times the engineers are needed as floor and line managers, to coordinate parts of the process, to set up new lines quickly etc… those are not the ones doing the actual soldering.
Here are some good "value for money" tool brands I use (I live in Asia):
1.Yihua combined hot air rework station + soldering station.
2.Pro's Kit multimeter, tweezers, and wire snips.
3.Uni-T hand-held oscillosope (quite optional).
4.Mechanic brand solder paste. Get the one in a plastic syringe. The tubs dry out.
5.TS100 soldering iron as a spare. Heats up so fast at 24V!
I use them mainly for prototyping, but they are equally handy for repair. I don't re-ball BGA though. I've seen vendors do it with a machine that's mostly just a holder for the chip, and the hot air gun. Plus some templates and the solder balls.
> Yihua combined hot air rework station + soldering station.
I personally wouldn't recommend this.
I have one, it cost just short of £100. But I much prefer my T12 based 'KSGER' soldering station that was $30 from banggood and has far better features, plus I don't have to worry about the heating element dying (since with T12 the element is part of the tip).
One day when I need hot air again, I'll probably think hard about finding a stand alone hot air station from banggood or aliexpress. I see they have some for $30.
Since the hot-air has all the critical parts in the hand unit, and the heating and fan often die randomly, having a 2-in-1 is just too much liability.
Btw, I recommend a butane soldering iron as a true 'backup' that doesn't even need a charged powertool battery.
Thanks for the recommendations! I have a Yihua soldering station - such a solid budget option - I’ll shell out on a hot air rework station too, maybe one with a board preheater.
Also out of curiosity, I did some quick math regarding that claim you read somewhere.
Cellphone battery charge: I have a 5000mAh cellphone battery. If we ignore charging losses (pretty low normally, but not sure at 67W fast charging)... That battery stores about 18.5 watt-hours of energy, or about 67 kilojoules.
Generating a single image at 1024x1024 resolution with Stable Diffusion on my PC takes somewhere under a minute at a maximum power draw under 500W. Lets cap that at 500*60 = 30 kilojoules.
So it seems plausible that for cellphones with smaller batteries, and/or using intense image generation settings, there could be overlap! For typical cases, I think that you could get multiple (but low single digit) of AI generated images for the power cost of a cellphone charge, maybe a bit better at scale.
So in other words, maybe "technically incorrect" but not a bad approximation to communicate power use in terms most people would understand. I've heard worse!
Your home setup is much less efficient than production inference in a data center. Open source implementation of SDXL-Lightning runs at 12 images a second on TPU v5e-8, which uses ~2kW at full load. That’s 170J or about 1/400th the phone charge.
These models do not appear from thin air. Add in the training cost in terms of power. Yes it's capex and not opex, but it's not free by any means.
Plus, not all these models run on optimized TPUs, but mostly on nVIDIA cards. None of them are that efficient.
Otherwise I can argue that running these models are essentially free since my camera can do face recognition and tracking at 30fps w/o a noticeable power draw since it uses a dedicated, purpose built DSP for that stuff.
My PC with a 3060 draws 200 W when generating an image and it takes under 30 seconds at that resolution, in some configurations (LCM) way under 10 seconds. That's a low end GPU. High end GPUs can generate at interactive frame rates.
You can generate a lot of images with the energy you would use to play a game instead for two hours; generating an image for 30 seconds uses the same amount of energy as playing a game on the same GPU for 30 seconds.
One point missing from this comparison is that cell phones just don’t take all that much electricity to begin with. A very rough calculation is that it takes around 0.2 cents to fully charge a cell phone. You spend maybe around $1 PER YEAR on cell phone charging per phone. Cell phones are just confusingly not energy intensive.
And for reference, it takes around $10/year to run a single efficient indoor LED lightbulb. So charging a cell phone for a years-worth of usage costs less than 1/10th of running an efficient LED lightbulb bulb for the full year.
Again, cell phones are just confusingly not energy intensive.
How about if you cap the power of the GPU? Modern semiconductors have non-linear performance:efficiency curves. It's often possible to get big energy savings with only small loss in performance.
Why is that "insane?" Drawing the same image in Photoshop, or modeling and rendering it, in the same quality and resolution on the same computer, would require much more time and energy.
> Drawing the same image in Photoshop, or modeling and rendering it, in the same quality and resolution on the same computer, would require much more time and energy.
Right, but there was a point at which we could stop people from doing stupid shit because it's useless and they're bad with money. Now it seems we've embraced irrational and misanthropic spending as a core service.
We honestly just need to take money away from people who obviously have no clue what to do with it. Using AI seems like a perfect signal for people who have lost touch with an understanding of value.
A 1024x1024 image seems like an unrealistically small image size in this day and age. That’s closer to an icon than a useful image size for display purposes.
I think you're being hyperbolic. On a 1080p screen that's almost the entire vertical real estate. You'd upscale it if you're going to actually use this thing for "useful purposes" like marketing material, but that's not an icon.
A bit, I do admit. But given the ubiquity of 2k+ screens I don’t think it’s entirely hyperbolic. Closer to an icon in size, I meant, not necessarily usage.
I just chose this step for calculations, as it's the most energy intensive part of my AI workflow. Upscaling / extending to get a usable result is really fast by comparison, and I only do it for a few images. It sort of rounds down to zero.
Most of the energy cost is how many images I have to generate to get a satisfactory one (say 100 with a decent prompt). Looking at the broader picture, the biggest energy cost of all is hiring a human designer for layout / typography and to produce print-ready files. Then managing the manufacturer, haha.
A bit off topic, but hopefully something that will brighten your day: I make physical products, so they have to be perfect (it also means I deal in DPI, not pixels). AI speeds up the number of concepts I can generate and send to contractors. I don't try to copy anyone's specific style, that would be boring. I'm sure there are less wholesome uses of this AI thing, but I feel like I've stumbled into something I'm comfortable with.
Believe it or not, I use all this to sell antiques. Like, genuine physical artifacts made by humans hundreds of years ago. I like to tell the story of the era they are from, bring it to life a little with printed supplements. No LLMs for the writing though, I do the research and writing myself, I enjoy it too much. I don't make much money with it, but it's fun, and a way to tell my country's history.
An electronic board game similar to Settlers of Catan (https://github.com/seanboyce/Calculus-the-game), just received the much better full sized boards. Will assemble and test over the next few weeks, then document properly. I got the matte black PCBs, they look really cool.
A hardware quantum RNG. Made a mistake in the board power supply, but it still works well with cut trace and a bodge wire. Will probably fix the bug and put the results up in a few weeks. Can push out ~300 bytes of entropy a second, each as an MQTT message.
A hardware device that just does E2E encrypted chat (using Curve 25519). Microcontrollers only, no OS, and nothing ever stored locally. HDMI output (1024x768), Wi-Fi, and USB keyboard support. I originally designed it to use a vanilla MQTT broker, but I'm probably going to move it to HTTP and just write a little self-hosted HTTP service that handles message routing and ephemeral key registration. Right now the encryption, video output, and USB host works -- but it was a tangle of wires to fix the initial bugs, so I ordered new boards. Got to put those through testing, then move on to writing the server.
Iterating on hardware stuff is pretty slow. I try to test more than one bugfix in parallel on the same board. Iteration time is 2-3 weeks and 8$. If I have all the parts in stock. I don't have very much free time right now due to work, so this suits me fine. A rule I live by is that I must always be creating, so I think this is a reasonable compromise.
The zener design works well, but I find the signal it produces is a little too fast to sample conveniently (it works a bit too well). The two-transistor design produces a similar but slower signal. 2N5551 works nicely.
Then one hex inverter configured as a cheap two-stage inverting amplifier, and another that cleans up the signal into nice 5V with sharp transitions. An optoisolator is another option for the second stage, but adds another part to the design.
Then I shove a Von Neumann extractor on an Attiny261A (high bandwidth parallel output) or Attiny10 (if just true/false output), I have a little assembly program for that. It takes the signal in, and outputs 8 bits out in parallel, plus one bit that toggles every time a new output is ready. It's not power efficient, I never use this design on a battery, so I never optimized for sleep modes and so on. Instead I optimized to push a little more bandwidth out and try to sample the signal in a balanced way.
Finally, I just grab that with something like a Pi Pico or ESP32 and push it out MQTT. I get something like 100-300 bytes per second depending on the voltage I'm driving the transistors at (anything over 13V gets a little spicy for the first hex inverter, but add a heatsink to it, and it's fine).
I have some KiCAD files for a finished board for all this, also has space for a boost converter (the transistors need 10-12V usually to generate a nice signal). I just finished it yesterday, if you leave me your contact I'm happy to let you know when I publish it. Otherwise, just check here in like 1-2 weeks and I'll probably have it up by then: https://github.com/seanboyce/
It's a long weekend over here, so I managed to load up the code, BOM, KiCAD files, production files, and assembly instructions. Also some scope trace images of what the signal should look like at different stages:
I didn't specifically design this for other people to easily replicate, but should not be too hard with some solder paste and a hot air rework station.
The assembly code is extensively commented-- I realize AVR assembly is not most people's native dialect, haha.
It's widely known among EEs. It's used for lots of interesting things, such as temperature control, motor control and positioning, and LED lighting. You can do it in hardware old-style with a 555 timer or hex inverter, but most modern systems I've worked with do it with a microcontroller.
An addendum to this that you may find interesting -- I've experimented with turning the LED on for a few microseconds at higher than rated current, then off for tens of milliseconds. The average current stays far below the specifications. This results in very high apparent brightness per unit of power consumption.
Using the IV curve of the LED, this also let me eliminate the typical current-limiting resistor. The power savings are more than the power cost of the MCU that controls it (modern low-power microcontrollers are awesome).
Anyway, the end result is a little LED + CR2032 cell + magnet that you stick to furniture, and it runs for about 3 years. I made it so that elderly people I know who wake up at night to go to the bathroom don't bump into furniture (especially in an unfamiliar place, like while traveling). Without creating a thing they have to think about often. If you're curious, I posted the code here: https://github.com/seanboyce/tinylight
An additional one you might like: I did PWM for LED dimming in the tens of Mhz for some 1 Watt red LEDs. This is for my wife -- when she has a migraine she prefers very dim red light to complete darkness. In the Mhz range, there's no visible flicker by a longshot (although it costs a little more power). Most PWM systems I've seen that flicker, use lower-frequency signals.
It must have been cool to play with LEDs in the 70s. We sort of take them for granted now, but they are so awesome. Truly we live in an age of wonders.
> It's used for lots of interesting things, such as temperature control, motor control and positioning, and LED lighting.
A pretty slow version of this is used in your microwave or airfryer. But they typically use a temperature sense (like a bimetallic strip) to turn the heating parts on for at least a few seconds and then turn it off again; they don't use a timer.
Microwaves never cease to amaze me. If I were in some alternate timeline where they weren't ubiquitous, and you told me such a thing would soon be in everyone's homes, there's no way I would believe you.
I mean, people putting their foods in a Faraday cage and then pointing a cavity magnetron at them to cook them? It sort of sounds far-fetched.
Bimetallic strips are also so awesome. Every time I hear that little 'click' noise, I think about them.
Is there a term for knowing just enough about the technology that underlies daily life, that you feel mildly absurd using it for mundane tasks?
I made a small and light CRUD web thing in FastAPI to organize my personal library. Mostly it focuses on physical books, but handles ebooks too. I published it as FOSS and some people requested features, so I expanded it a little. It's nothing fancy: https://github.com/seanboyce/ubiblio
...absolutely no one requested an RISC V port, but I did that too for laughs. Neat to see the whole thing run on a system the size of a postage stamp.
Not sure what to do with it next. Will probably just let it be what it is, and fix any bugs that people report. Maybe move on to a new little weekend project.
It's compatible with Settlers of Catan. However, I plan to make my own rulesets, artwork, manuals, etc. It will not be a commercial product, of course you can make your own with the files I provide.
Right now the boards, electronics, and firmware are in good working order. Although the routing is pretty YOLO.
It feels like there's a lot of unpleasantness going on in the world right now. I thought maybe I could put my other projects aside and try to make something that might brighten your day (It certainly has enough of LEDs).
A big TODO is to replace the 0402 SMT components with something larger and easier to work with like 0603. I'll find time within a week or so and push it to the repo. (I am notoriously cheap and only keep 0402 in stock)
reply