Posts in Electronics (20 found)
Jeff Geerling 2 days ago

Raspberry Pi Pico Mini Rack GPS Clock

I wanted to have the most accurate timepiece possible mounted in my mini rack. Therefore I built this: This is a GPS-based clock running on a Raspberry Pi Pico in a custom 1U 10" rack faceplate. The clock displays time based on a GPS input, and will not display time until a GPS timing lock has been acquired. For full details on designing and building this clock, see: When you turn on the Pico, the display reads Upon 3D fix, you get a time on the clock, and the colon starts blinking If the 3D fix is lost, the colon goes solid When the 3D fix is regained, the colon starts blinking again

0 views
iDiallo 2 days ago

Boredom is the Gatekeeper

That first Monday of my holiday break, I made a promise to myself. No work emails, no side projects, not even glancing at my blog. This time was for family, for Netflix queues, for rereading dog-eared novels. One thing I was really looking forward to was learning something new, a new skill. Not for utility, but purely for curiosity. I wanted to learn about batteries. They power our world, yet they're a complete mystery to me. I only vaguely remember what I learned in high school decades ago. This would be the perfect subject for me. I went straight to a website I had bookmarked years ago in a fit of intellectual ambition: BatteryUniversity.com. I started with the chemistry of lead acid batteries. I was ready to be enlightened. Twenty minutes later, I was three paragraphs in, my mind adrift. The text was dense, packed with terms like "lead-antimony" and "acid-starved." My finger twitched. Then I read this: the sealed lead acid battery is designed with a low over-voltage potential to prohibit the battery from reaching its gas-generating potential during charge. I thought, wouldn't this be easier to understand as a YouTube video? A nice animation? I clicked away. It seemed like I had just met the gatekeeper, and it had turned me away. I was bored. We talk about boredom as if it's the absence of stimulation. Having nothing to do. But in our hyperconnected world, where information is constantly flowing and distractions are a finger tap away, true emptiness is rare. Modern boredom isn't having nothing to do. I had plenty of material to go over. Instead, it's the friction of deep focus. It's the resistance you feel when you move from consuming information to building those neural connections in your brain. Learning feels slow and hard, and it is ungratifying compared to dopamine-induced YouTube videos. Have you ever watched a pretty good video on YouTube and learned nothing from it? This reaction to learning the hard way, masquerading as boredom, is the gatekeeper. And almost every important skill in life lives on the other side of that gate. When I started working for an AI startup, I was fascinated by what we were able to accomplish with a team of just two engineers. It looked like magic to me at first. You feed the AI some customer's message, and it tells you exactly what this person needs. So, to be an effective employee, I decided to learn profoundly about the subject. Moving from just a consumer of an API to a model creator made the process look un-magical. It started with spreadsheets where we cleaned data. There was a loss function that stubbornly refused to budge for hours. There was staring at a single Python error that said the tensor dimensions don't align. The boring part was the meticulous engineering upon which the magic is built. I find it fascinating now, but it was frustrating at the time, and I had to force myself to learn it. Like most developers, video games inspired me to become a programmer. I wanted to code my own game from scratch. I remember playing Devil May Cry and thinking about how I would program those boss battles. But when I sat with a keyboard and the cursor on my terminal flashed before me, I struggled to move a gray box on the screen using SDL. For some reason, when I pressed arrow keys, the box jittered instead of following a straight line. I would spend the whole day reading OpenGL and SDL documentation only to fix a single bug. Boredom was going through all this documentation, painfully, only to make small incremental progress. When you start a business, the gatekeeper shows its face. It stares back at you when you open that blank document and write a single line of text in it: My idea. For indie developers, it's the feeling you get when you build the entire application and feel compelled to start over rather than ship what you've built. This boredom is the feeling of creation from nothing, which is always harder than passive consumption. We've conflated "interesting" with "easy to consume." The most interesting things in the world, like building software, writing a book, mastering a craft, understanding a concept, are never easy to produce. Their initial stages are pure effort. Gamification tries to trick us past the gatekeeper with points and badges, but that's just putting a costume on it. The real work remains. There is no way around it. You can't eliminate that feeling. Instead, you have to recognize it for what it is and push through. When you feel that itchy tug toward a distracting tab, that's the gatekeeper shaking its keys. It's telling you that what you're doing is really hard, and it would be easier to just passively consume it. You might even enjoy the process without ever learning anything. Instead, whenever you feel it, set a timer for 25 minutes. Agree to wrestle with the battery chemistry, the Python error, or the empty page. Just for that short time span. There is no dopamine hit waiting on the other side of boredom like you get from passive consumption. Instead, the focus, the struggle, the sustained attention, that's the process of learning. The gatekeeper ensures only those willing to engage in the hard, quiet work of thinking get to the good stuff. I did not become a battery expert over the holidays. But at least I learned to recognize the gatekeeper's face. Now, when I feel that familiar, restless boredom descend as I'm trying to learn something hard, I smile a little. I know I'm at the threshold. And instead of turning back, I take a deep breath, set my timer to 25 minutes, and I power through the gate.

2 views
Jason Fried 1 weeks ago

The big regression

My folks are in town visiting us for a couple months so we rented them a house nearby. It’s new construction. No one has lived in it yet. It’s amped up with state of the art systems. You know, the ones with touchscreens of various sizes, IoT appliances, and interfaces that try too hard. And it’s terrible. What a regression. The lights are powered by Control4. And require a demo to understand how to use the switches, understand which ones control what, and to be sure not to hit THAT ONE because it’ll turn off all the lights in the house when you didn’t mean to. Worse. The TV is the latest Samsung which has a baffling UI just to watch CNN. My parents aren’t idiots, but definitely feel like they’re missing something obvious. They aren’t — TVs have simply gotten worse. You don’t turn them on anymore, you boot them up. The Miele dishwasher is hidden flush with the counters. That part is fine, but here’s what isn’t: It wouldn’t even operate the first time without connecting it with an app. This meant another call to the house manager to have them install an app they didn’t know they needed either. An app to clean some peanut butter off a plate? For serious? Worse. Thermostats... Nest would have been an upgrade, but these other propriety ones from some other company trying to be nest-like are baffling. Round touchscreens that take you into a dark labyrinth of options just to be sure it’s set at 68. Or is it 68 now? Or is that what we want it at, but it’s at 72? Wait... What? Which number is this? Worse. The alarm system is essentially a 10” iPad bolted to the wall that has the fucking weather forecast on it. And it’s bright! I’m sure there’s a way to turn that off, but then the screen would be so barren that it would be filled with the news instead. Why can’t the alarm panel just be an alarm panel? Worse. And the lag. Lag everywhere. Everything feels a beat or two behind. Everything. Lag is the giveaway that the system is working too hard for too little. Real-time must be the hardest problem. Now look... I’m no luddite. But this experience is close to conversion therapy. Tech can make things better, but I simply can’t see in these cases. I’ve heard the pitches too — you can set up scenes and one button can change EVERYTHING. Not buying it. It actually feels primitive, like we haven’t figured out how to make things easy yet. That some breakthrough will eventually come when you can simply knock a switch up or down and it’ll all makes sense. But we haven’t evolved to that point yet. It’s really the contrast that makes it alarming. We just got back from a vacation in Montana. Rented a house there. They did have a fancy TV — seems those can’t be avoided these days — but everything else was old school and clear. Physical up/down light switches in the right places. Appliances without the internet. Buttons with depth and physically-confirmed state change rather than surfaces that don’t obviously register your choice. More traditional round rotating Honeywell thermostats that are just clear and obvious. No tours, no instructions, no questions, no fearing you’re going to do something wrong, no wondering how something works. Useful and universally clear. That’s human that’s modern. -Jason

0 views

What to do with a VIC-20?

A family member was nice enough to get me a Commodore VIC-20 for Christmas! I grew up writing BASIC on an Atari 400 (despite being born 12 years after the release), but have always want to get my hands on a Commodore. The system needs a bit of work before I can use it though. First thing is a power supply, which shockingly seem to be $80+. I also need a video cable, but I think my Sega Genesis one will work (it fits at least). The "0" key is missing on the keyboard, so I think I'll need a new stem and keycap. I should probably buy a recap kit as well. Finally, I'll need something to load up software. Kung-Fu Flash or SD2IEC seem like good choices. Eventually I'd also like to get it online and connect to a BBS, but one step at a time! I'd love to find a way to write a blog post from it as well! For the Commodore enthuaists out there, let me know any hardware/software suggestions or thoughts on what I can do once I get the system up and running!

0 views
Stavros' Stuff 2 weeks ago

I made another little bedside clock

The other day I saw a video by someone who bought a $16 electronic clock , and it looked interesting, because that little clock had been taunting me for months by showing up constantly in my AliExpress recommendations. I held off on buying it because what am I going to do with yet another clock , but the video said that it has an ESP8266 inside, and that, with a little soldering and programming, you could run ESPhome on it! Obviously, I didn’t need any more convincing, though I remembered this clock being listed for $6 for a while, and balked at the $16 the video mentioned. I ordered a different listing, which I found for $12 , hoping it would be the same as the one from the video. Fairly serendipitously for this purchase, the last bedside clock I made was showing its age a bit. Mainly, the dimmest setting on its screen was bright enough to be annoying when I’m in bed, and the screen has been burned-in quite a bit. A new monochrome OLED screen is an easy fix, but I’d prefer a color one (especially if it can be dimmed more), so hopefully I’d be able to replace the Do Not Be Alarmed clock with this new one. The new clock arrived promptly, and I got to work. The first thing I did was what any good engineer would do, I eschewed the company of my friends and shut myself in a room where I could work on my clock in peace. The second thing I did was to open the clock up, as the video mentioned, in no uncertain terms , that I would need to solder some headers if I were to ever program this clock. Imagine my surprise and dismay when, upon opening up the device, I saw no headers or any accessible points to connect anything to program it with! It turned out that what I had ordered wasn’t the same as the one in the video, after all. I wasn’t too sad about it, as I’ve programmed ESP8266 modules often by just touching the pins to the microcontroller board, and the clock has an ESP-12F package soldered on it, so the pins are large enough to connect things to, so I got ready for the agony of trying to hold five wires firmly to the board while I press the Enter key on the keyboard with my nose. At this point I was obviously cursing myself for trying to save $4 and not getting the “good” version, but it was what it was. While examining the (very simple) board, though, I flipped it over and saw what looked like a USB-TTL chip. That chip turned out to be a USB-TTL chip indeed, which took me by surprise, because it meant I didn’t even have to open the thing up! Sure enough, connecting the USB-C port to the computer showed the clock as a USB device, and flashing ESPhome worked perfectly. Next step: The configuration. I used the configuration from the video as a starting point, as it already contained the pinout for the screen, the screen type and dimensions, and various other niceties. The original configuration used Home Assistant, which I don’t use, so I took those things out. I’m terrible at any sort of visual design, so I can’t really say that I designed things with any intent, I mostly stumbled onto a design that didn’t seem terrible, and used that. I went through a few iterations, with the time first being centered and the date below it, then with the time being shown diagonally (as in the photo on the right), and finally copying the face of my Xiaomi watch and arriving at the final design. Usually I’ll open Inkscape and try to mock up something to see how the colors, layout, separators, and other visual elements fit together, but here I didn’t really do any of that, and just iterated on the display directly. It took a bit of positioning elements around, but I think the end result is pretty good. One serendipitous thing that I did was add a synthwavy-ground-grid type of thing, which gave the face a really nice touch. I initially added it as somewhat of a test, but I liked it so much I ended up keeping it in the final version. The time and date were very easy to add. ESPhome supports NTP natively, so getting the correct time over the network was just a matter of adding the appropriate NTP servers in a small stanza. This way, the time keeps updating with daylight savings time as well, following the timezone properly. This is actually a lot of work to do manually, as I found out when I made the Do Not Be Alarmed clock, and the fact that ESPhome does it for me is fantastic and saves a ton of work. It basically just worked. The last thing to add was to show various sensor values that are relevant to a bedside clock. My house is instrumented to use Zigbee (with Zigbee2MQTT), and some WiFi sensors that publish to MQTT on specific topics. ESPhome supports MQTT natively, and it can subscribe to topics, listen for updates, and update the screen whenever a topic gets published to. Usually, when I wake up, I want to know what time it is, what date, what the temperature outside is, in case I need to go out, and maybe what the humidity inside the flat is. I use Zigbee Sonoff or Aqara temperature/humidity sensors, so I wanted the values read from those. I also have a makeshift CO2 sensor in the bedroom (I made that using an ESP8266 with ESPhome and an SCD41 CO2 sensor), and I wanted to see the CO2 value so I know whether I should open a door a bit wider when it gets too high. These were the values I mainly wanted to display, so I added subscriptions in the MQTT integration to these sensors’ topics, and instructed ESPhome to parse the values they sent. Then, I positioned the elements that I wanted to show the values around the screen. At this point, there was a small issue: When the clock is restarted (which is, admittedly, rarely), the sensor values show 0, or NA, until the sensor wakes up and sends a reading, which might happen every ten minutes or so. I wanted the clock to show the last value quickly, so I enabled “retain message” in the Zigbee2MQTT options for the sensors I was interested in. “Retain” is an MQTT flag that tells the server to remember the latest message in that specific topic, and send it to you when you subscribe, no matter how long ago it was actually sent. This fixed the issue, and now the clock shows the last values on bootup, which is perfect. And now we get to the most important part of the whole project: The dimming! This clock is, indeed, much better at dimming. You can dim it very very low before turning the backlight off altogether, but it does get hard to read at very low brightnesses. I ended up using a brightness of about 6%, and a max brightness of 60%, and it’s perfect. The way min/max works is that the clock starts dimming from 60% to 6% for about an hour before the time when I usually go to bed. Then, it stays dim throughout the entire night, and starts brightening again around the time I wake up, and takes an hour to go back to 60% brightness. This way, the clock is dim throughout the night when I’m asleep, but bright in the day, when I might need to look at it in well-lit conditions. This works really well and is a massive improvement on my last clock, and the nice, colorful screen doesn’t hurt, either. With that, the clock was complete! This was a very simple build, and it only took an hour or two, but it was lots of fun and I absolutely love the final result. I also really like the fact that I get a lot of use out of something like this. I look at my bedside clock a lot, and having a better clock is a massive quality of life upgrade. I’ve been looking for a better clock for ages, but never found one that ticked all the boxes, until this one came along. I heavily recommend buying one, you can use my config to program it with, and customize it to your liking: https://github.com/skorokithakis/esphome-configs There’s also a version with an ESP32, which is much more powerful, but I don’t know if the pinouts have been figured out yet, so I don’t know how easy it would be to program. However, if you do get one of these clocks, I’ll be looking forward to anything you make with it, if you want to share! As always, if you have any questions or feedback, please let me know! You can find me on X or BlueSky , or email me directly.

0 views
Alex White's Blog 1 months ago

Palm Tungsten C

Mail day and an early birthday present to myself! My new-to-me Tungsten C arrived today, and let me say, it is an absolute joy to use! The C has a smaller screen than my T3, WiFi instead of Bluetooth and is a bit heavier. The build quality is solid, par for the course when it comes to Tungsten devices. The CPU is similar to the T3, but seems noticeably faster (especially in Acid Freecell). Without a doubt, the keyboard is the killer feature. I had forgotten how much I prefer a chicklet, physical keyboard to poking at a touchscreen. It's fast, easy to hit keys, and has a great clicky feeling to it. On the Wi-Fi front, I have yet to successfully connect to a network. My guess is my UniFi APs and Pixel Phone Hotspot use newer bands than the C supports. I might have an older router somewhere to give a shot later on. All in all, this is a great little device that will replace my T3 as my pocket carry. The keyboard just makes it such a productivity beast, even when compared to a modern cell phone! This post was, of course, written on my Tungsten C. Update on Wi-Fi Seems my Wi-Fi chip might be shot. Trying to do a system update errors saying that the radio ROM is corrupt. I have a new battery coming in the mail, so I'll see if there's anything obvious that needs soldering while I'm in there.

0 views
Maurycy 1 months ago

More uranium ore:

In many places, natural minerals aren’t even regulated as radioactive material (10 CFR § 40.13 b) … but you should check your local laws before collecting any. Radiacode 102: 180 CPS [4 uSv/h]. Ludlum 44-9: 20 kCPM. Carnonite from the Mc Cormic mine near Mi Vida in Utah, USA. It’s quite dusty, I’ll have to put this one in a display case. The biggest hazard isn’t the radiation, but uranium’s chemical toxicity. (similar to lead) Radiacode 102: 1700 CPS [40 uSv/h]. Ludlum 44-9: 70 kCPM. Uraninite in sandstone from around the Mi Vida mine in Utah, USA. This one is quite spicy, the Radiacode measures 50 CPS [1 uSv/h] at 15 cm distance. My prospecting detector detects it from a meter away. Based on gamma dose constants, I estimate a uranium content of 10-20 grams, but take that number with a (large) grain of salt. Radiacode 102: 2 CPS [0.1 uSv/h]. Ludlum 44-9: 350 CPM. Unknown U(IV) mineral (perhaps natrozippeite?) from Yellow Cat (Parco claims) Unlike the Carnonite, these glow the classic “nuclear waste” green under 365 nm: For the record: spent fuel doesn’t glow this color outside of Hollywood. However, many uranium minerals and uranium containing glass will glow green under ultraviolet light. Radiacode 102: background. Ludlum 44-9: background. Jasper from Yellow Cat . Not radioactive, but it looks cool: it’s what most people go to the area for. Radiacode 102: background. Ludlum 44-9: background. Petrified wood from near the McCormic mines. (close to Mi Vida ) Not significantly radioactive despite being close to the uranium deposit.

0 views
Jeff Geerling 1 months ago

CM0 - a new Raspberry Pi you can't buy

This little postage stamp is actually a full Raspberry Pi Zero 2, complete with eMMC storage and WiFi. But you can't get one. Well, not unless you buy the CM0NANO development board from EDAtec , or you live in China. This little guy doesn't have an HDMI port, Ethernet, or even USB. It's a special version of the 'Compute Module' line of boards. Little Raspberry Pi 'System on Modules' (SoMs), they're called. Compute Modules are entire Linux computers about the size of a regular desktop CPU that you 'plug in' to another board, to give it life.

1 views
Stratechery 1 months ago

Trump Allows H200 Sales to China, The Sliding Scale, A Good Decision

The Trump administration has effectively unwound the Biden era chip controls by selling the H200 to China; I agree with the decision, which is a return to longstanding U.S. policy.

3 views
HeyDingus 1 months ago

I’m not a ring guy, but…

I’m not a ring guy. My parents had to cajole me into getting a class ring back in high school, telling me that it would be something that I would later regret if I didn’t get one. So I got one, tried wearing it, and ended up hating the feeling of it always spinning ’ round my finger. And then I lost it in my bowling ball bag for like a year. I’ve got no idea where it is today. My next ring was my wedding band. Again, following customary traditions, I spent so much of my savings on an engagement and wedding ring combo for my wife. But for my own ring, I wasn’t particular. I looked around online for design ideas, liked the look of a tungsten one, found one for like $15 on Amazon, and clicked ‘ Buy Now’. It still looks good as new over seven years later. And while I liked the feel of it better than my old class ring since it was symmetrical and didn’t tend to fall to one side of my finger or the other, I still prefer my fingers unornamented. In fact, since becoming a mountain guide, I’ve worn my wedding band on a piece of cord around my neck, lest it get wedged in a rock somewhere while I’m climbing, which could be disastrous. I’d like to get a tattooed ring on my finger someday. 1 Likewise, I’ve tended to be skeptical of the fitness rings, such as the Oura , partly because I figure I’d dislike wearing it at least as much as any other ring. But also because my Apple Watch already handles all my fitness tracking, and I wouldn’t want another thing to remember to charge. All that being said, I’m as surprised as anyone that the Index 01 , Pebble’s latest gadget, caught my interest. It’s a ring, but instead of packing in more features than its competition, the Index is designed to do less . Its primary role is to be an ever-present way to record short notes-to-self. It’s got a tiny LED and a little microphone that’s activated by pressing a physical button. That’s it. Eric Migicovsky, Pebble’s founder, is selling the Index as “ external memory for your brain”. It doesn’t have any fitness tracking sensors. It doesn’t record everything around you, 24/7, like other AI gadgets , to make a perfect transcript of your life. It’s basically a dedicated personal note taker, and that’s what makes it so interesting to me. In fact, I’ve been trying to solve this ‘ take a quick note’ problem on my own for years. My brain comes up with its best ideas when I’m out for a hike, but that’s also when I least want to pull out my phone to type it out. So, I rigged up a solution with Apple Shortcuts to trigger voice-to-text with my iPhone’s Action button so that I can easily save my ideas and to-dos to Drafts without breaking stride. But it’s an imperfect solution as I look a little goofy in front of my clients when I mutter into my phone in the backcountry. Plus, I have to have my phone with me, and the audio isn’t saved, just the transcript. The Index remedies a lot of that rigmarole by virtue of being a dedicated device that’s always with you, that saves the audio recording, and that’s less intrusive and distracting than pulling out a smartphone. The physical button. You have to hold it down to make a recording. No wondering if it’s working. Migicovsky insists it has a great click-feel, and I’m inclined to believe him. It’s designed to be worn on your index finger, putting the button always in reach of your thumb to start a recording. That’s so smart, as it means it can be used discreetly with one hand. My Apple Watch often needs to be operated with the other hand, and its raise-to-speak to Siri feature is somewhat unreliable. Adding the button was a great idea. You can’t charge it. This one’s a bit controversial, I know. Just read the comments on the announcement video — it’s basically the only thing people are talking about. The non-replaceable battery is a bummer, but I get it. I’d want a ring to be as unobtrusive as possible, and leaving out the charging bits and accessible battery cuts down on a lot of bulk. It’s definitely more svelte than an Oura. Furthermore, I have enough gadgets that I need to remember to charge every day. If it can just stay on my finger, it has a way higher chance of becoming an ingrained workflow. While I don’t want to contribute to e-waste, Pebble says they’ll recycle it when the battery dies, supposedly in two or so years with typical use. The price. If this thing cost $300+, like most smart rings , I certainly wouldn’t be psyched to replace it every two years. But at $99 ($75 for pre-orders), I think they priced it well to be a reasonable curiosity purchase. And it’s a one-time payment — there’s no ongoing subscription cost! Additional actions. While its primary purpose — and my main interest in it — rests with its always-ready note-taking, it sounds like the Index can do a little processing and take action on some commands. From the announcement post : Actions: While the primary task is remembering things for you, you can also ask it to do things like ‘ Send a Beeper message to my wife - running late’ or answer simple questions that could be answered by searching the web. You can configure button clicks to control your music - I love using this to play/pause or skip tracks. You can also configure where to save your notes and reminders (I have it set to add to Notion). Customizable and hackable: Configure single/double button clicks to control whatever you want (take a photo, turn on lights, Tasker, etc). Add your own voice actions via MCP . Or route the audio recordings directly to your own app or server! Supposedly, you’ll be able to hook it up to MCP to do more AI stuff with the recordings. I don’t know enough about MCP , so that’s not of huge interest to me. But if it can send quick messages, make reminders and calendar events, and control audio playback — and do so reliably — that’d be pretty great. Works offline. It doesn’t have or need an internet connection to work. Transferring the audio file goes directly to your phone, and the transcription is done there, on-device. If you set those additional actions that need the internet, that’s another story, but the Index will serve its primary purpose offline, without sending your (potentially very personal) recordings to anyone’s servers. Less-than-stellar water-resistance. Pebble’s billed the Index as something that you never have to take off, but then notes it’s water-resistant only to 1 meter. They note, “ You can wash your hands, do dishes, and shower with it on, but we don’t recommend swimming with it.” That’s not a deal-breaker, but I’ve grown so used to not worrying about swimming with my watch that I’d be a little grumpy about having to remember to take off my ring before jumping in a pool or lake. Short answer, yes. I’m intrigued enough that I placed a pre-order this morning. But I’m still a little iffy on whether I’ll keep it. As I mentioned, I wear my wedding band as a necklace so that it doesn’t put my finger at risk when I’m climbing. That would still be a factor with the Index. But I’m willing to give it a shot. My wife insists that I put my wedding ring back on my finger for date night, or culturally significant events like weddings and such. I don’t mind. ↩︎ HeyDingus is a blog by Jarrod Blundy about technology, the great outdoors, and other musings. If you like what you see — the blog posts , shortcuts , wallpapers , scripts , or anything — please consider leaving a tip , checking out my store , or just sharing my work. Your support is much appreciated! I’m always happy to hear from you on social , or by good ol' email . Actions: While the primary task is remembering things for you, you can also ask it to do things like ‘ Send a Beeper message to my wife - running late’ or answer simple questions that could be answered by searching the web. You can configure button clicks to control your music - I love using this to play/pause or skip tracks. You can also configure where to save your notes and reminders (I have it set to add to Notion). Customizable and hackable: Configure single/double button clicks to control whatever you want (take a photo, turn on lights, Tasker, etc). Add your own voice actions via MCP . Or route the audio recordings directly to your own app or server! My wife insists that I put my wedding ring back on my finger for date night, or culturally significant events like weddings and such. I don’t mind. ↩︎

0 views
Jeff Geerling 1 months ago

The DC-ROMA II is the fastest RISC-V laptop and is odd

Inside this Framework 13 laptop is a special mainboard developed by DeepComputing in collaboration with Framework. It has an 8-core RISC-V processor, the ESWIN 7702X—not your typical AMD, Intel, or even Arm SoC. The full laptop version I tested costs $1119 and gets you about the performance of a Raspberry Pi. A Pi 4—the one that came out in 2019.

0 views
Circus Scientist 1 months ago

Breadboards that are set up on my desk right now

I don’t always post about the things I’m working on – sometimes it’s just personal projects, or often things that just don’t work. Today’s post is about the breadboards that are set up on my desk. OK I’m sure I did mention this before, possibly on my Patreon ? Still not finished, but it works! So far I can spin this around and the LED will light up if it stops spinning only. The plan is to have this as an optional connected accessory for SmartPoi which can help with controls, or stabilize the image vertically (yes I know some other poi have this already). Still a lot of work to do. Accelerometers/gyroscopes are difficult! I set up 2 Arduino Nano’s, each with IR Transmitter and IR Receiver. The idea was to get the two to “talk” to one-another without needing WiFi. IR is so cheap I thought we could add it to poi that don’t have WiFi and still sync their LED’s. I won’t lie I am a bit stuck with this project’s software so far… These cheap 32 bit chips come in different sizes but are all so cheap! I paid R3.85 for the one on the top and R8.00 for the one on the bottom. That is the kind of money I don’t mind spending on throw-away projects. So far I got both new boards to blink , but I have big plans for these next year! It’s still set up on my desk, waiting for the right time.. This is a screen which runs a fun Arduino game with 3 buttons . I just have to solder it together inside a box.. I also got this joystick for more fun game builds.. OK, this one is finished ! I made this after finding the “ Cheapest IR LED Club ” electronics on Aliexpress. This is how I like to figure things out, copy the electronics (just a micro-controller and some transistors) to see if I can improve it. Next year I will look at ways to improve this with the new CH32 chips to be even cheaper (and better)! The post Breadboards that are set up on my desk right now appeared first on Circus Scientist .

0 views
Tara's Website 1 months ago

(very) late autumn 2025 update

(very) late autumn 2025 update Servus from Tara’s offline outpost! We reached -6°C in the past days here and a dash of snow appeared. Nothing compared to the -12°C and the amount of snow I witnessed a few days ago in the Garmisch-Partenkirchen area. Beautiful… but… better experienced from the car! Even the UI of the car wasn’t able to display that temperature properly: the minus sign overlapped with another widget on the display.

0 views
Jeff Geerling 1 months ago

Why doesn't Apple make a standalone Touch ID?

I finally upgraded to a mechanical keyboard. But because Apple's so protective of their Touch ID hardware, there aren't any mechanical keyboards with that feature built in. But there is a way to hack it. It's incredibly wasteful, and takes a bit more patience than I think most people have, but you basically take an Apple Magic Keyboard with Touch ID, rip out the Touch ID, and install it in a 3D printed box, along with the keyboard's logic board.

0 views
Dangling Pointers 1 months ago

The Decomposition of Switching Functions

The Decomposition of Switching Functions Robert Ashenhurst International Symposium on the Theory of Switching Functions'59 Say you are given a logic formula such as: and you want to rewrite it in a more structured form. One way to impose structure is to express as the composition of simpler functions. You can perform such a rewrite with the Ashenhurst-Curtis decomposition , and the result will look like this: This transformation is useful in logic synthesis. The task of synthesizing a circuit to implement the 4-input function can be broken down into synthesizing circuits to implement: The 2-input function The 3-input function The goal of the Ashenhurst-Curtis decomposition is to partition the inputs of a logic formula ( are the inputs in the running example) into two disjoint sets ( , ). The partitioning depends on the logic formula being decomposed. The idea is to decompose the formula into two simpler formulas: Formula 1 accepts as inputs Formula 2 accepts as inputs, along with the output of #1 A way to do this is to search through all possible partition matrices . Fig. 4 shows the partition matrix for the decomposition in the running example: Source: https://people.eecs.berkeley.edu/~alanmi/publications/other/ashenhurst1959.pdf Think of a partition matrix as a two-dimensional truth table. Here is the original logic formula, along with the above partition matrix containing explicit values for : In other words, f is non-zero only when given the following inputs (which correspond to the 4 entries in the partition matrix with the value ). For a given logic formula, there exist many partition matrices. Only some are suitable for decomposing the logic formula. The key property to look for is the column multiplicity of the partition matrix. This column multiplicity is the number of unique column vectors in the partition matrix. The partition matrix above has a column multiplicity of 2 (i.e., there are two unique column vectors in the matrix, and ). If you can find a partition matrix with a column multiplicity less than or equal to two, then you can decompose the logic formula. Note that a partition matrix is defined not only by the values in the matrix, but also the partitioning of the input variables. If you have located a partition matrix with a column multiplicity no greater than two, then the row multiplicity must be no greater than 4. In particular, there are 4 kinds of row vectors that you will see in the partition matrix: Vectors of all 0s Vectors of all 1s A particular vector The inverse of In the running example, the row vectors are: [1,0,0,1] (we call this ) [0,1,1,0] (note how this is the inverse of ) To decompose f, first generate a function ϕ. The inputs to the function are the variables written at the top of the partition matrix ( and in this example). The truth table for ϕ is simply the first non-trivial row vector in the partition matrix ([1,0,0,1] in the example). Next, generate a function . The inputs to F are the variables written at the left of the partition matrix ( and in this example), and the output of . In this example, has 3 inputs, so the truth table defining has 8 entries. A simple algorithm is used to generate the entries in that truth table. The algorithm iterates over the row vectors in the partition matrix, and each row vector defines 2 elements in the truth table of . If row vector is all zeros, then the truth table elements at indices and are 0 If row vector is all ones, then the truth table elements at indices and are 1 If row vector is , then the truth table element at index is 0, and the element at index is 1 If row vector is the inverse of , then the truth table element at index is 1, and the element at index is 0 These rules are described in Table 1: Source: https://people.eecs.berkeley.edu/~alanmi/publications/other/ashenhurst1959.pdf The final decomposed function is: Until now, we’ve assumed that someone has handed us a partition matrix with column multiplicity no greater than two. But how does one find such a matrix. The paper proposes iterating through all partition matrices in the partition chart of the input formula. A partition chart contains many partition matrices, each one corresponding to a different partitioning of the input variables. A circled element in the partition chart corresponds to a in the truth table of the input logic formula. Fig. 5 shows partition charts for the running example. The one in the lower right corner is the partition matrix in the running example. Astute readers will notice that it is actually the transpose of the partition matrix (i.e., and are on the left, and are on the top), but that is no big deal, they can be transposed as long as the variable names are transposed along with the matrix entries. Source: https://people.eecs.berkeley.edu/~alanmi/publications/other/ashenhurst1959.pdf Once you have generated a partition chart, it is straightforward to search for partition matrices which have column (or row) multiplicity no greater than two. These are the ones that can be used to generate the decomposed function. Thanks for reading Dangling Pointers! Subscribe for free to receive new posts and support my work. The 2-input function The 3-input function Formula 1 accepts as inputs Formula 2 accepts as inputs, along with the output of #1 Source: https://people.eecs.berkeley.edu/~alanmi/publications/other/ashenhurst1959.pdf Think of a partition matrix as a two-dimensional truth table. Here is the original logic formula, along with the above partition matrix containing explicit values for : In other words, f is non-zero only when given the following inputs (which correspond to the 4 entries in the partition matrix with the value ). Vectors of all 0s Vectors of all 1s A particular vector The inverse of [1,0,0,1] (we call this ) [0,1,1,0] (note how this is the inverse of ) If row vector is all zeros, then the truth table elements at indices and are 0 If row vector is all ones, then the truth table elements at indices and are 1 If row vector is , then the truth table element at index is 0, and the element at index is 1 If row vector is the inverse of , then the truth table element at index is 1, and the element at index is 0

0 views
Kix Panganiban 1 months ago

Great device, wrong problem: Two months with the Ultrahuman Air

I've been wearing an Apple Watch daily for the last 7-ish years now. It's kinda become part of my personality -- like, something feels off when I'm not wearing it. But lately, I thought I wanted a change. Maybe it’d be nice to wear a proper watch every now and then, or even go bare-wristed for a bit. So, a couple of months ago, I started hunting for an alternative device that could keep track of my health and stats -- which I figured was the main reason I wore my watch. After tons of research, I settled on the Ultrahuman Air. Some reviews mentioned that the Oura Ring seems generally more accurate, but the Ultrahuman does not require a subscription to fully utilize -- a total dealbreaker for me with the Oura Ring. I was stoked to try something new. It’s a fantastic device, no question. I was impressed. But as the weeks went on, I started to notice what it couldn’t do -- and that’s when I realized it's not replacing my watch. So I’ve come to realize that health tracking isn’t even the main thing I use my Apple Watch for -- it’s the alarms and notifications that keep my life together. This all means that while the Ultrahuman Air can definitely handle the health-tracking side of things, it can’t touch everything else I rely on the Apple Watch for. And now that both devices do a solid job at tracking stats, wearing two smart gadgets -- both needing charging and occasionally shining bright green lights at night -- feels redundant. I really love the Ultrahuman Air. It’s sleek, it’s smart, and it taught me a lot about my body. But it’s not the change I needed. So, it’ll probably be up on Facebook Marketplace soon. Maybe I’ll stick with my Apple Watch for now -- or who knows, maybe I’ll finally try going watch-free for a bit. We’ll see. Its app is fantastic. I love the design language they chose and how the stats are presented. Honestly, I didn’t know much about Heart Rate Variability (HRV) or VO2max until I wore the Ultrahuman Air, and now those are two stats I keep a close eye on. Handy features like Stress Rhythm and Caffeine Window feel a bit gimmicky, but they’ve got a ton of utility when you actually use them. The ring itself is super lightweight -- even lighter than a couple of carbide rings I like to wear. I barely notice it’s on, and its texturing makes it really scratch- and grime-resistant. Its reported stats are pretty close to what my Apple Watch shows, so without proper scientific gear to test it, I’m inclined to think they’re accurate enough. Its battery life is killer. I get about 4 and a half days on average -- compared to my Apple Watch, which I routinely charge before bed at night (thanks, low-battery anxiety issues). I wear my watch to bed so I can wake up at 5 AM without risking disturbing my wife and kid (who co-sleep with us). A phone alarm is a no-go since they’re both fairly light sleepers. I rely on reminders and message notifications to function. Seriously. With the amount of stuff I forget unless I write it down and set a reminder, the entire system I’ve built to manage my ADHD just breaks down without them. I use random Apple Watch features more than I realized: the handy flashlight that helps me navigate to the bathroom at midnight, the camera app that lets me take better group pics, and even the walkie-talkie that lets my wife and me ping each other quickly and directly.

1 views
Jeff Geerling 1 months ago

Air Lab is the Flipper Zero of air quality monitors

This air quality monitor costs $250. It's called the Air Lab , and I've been using it to measure the air in my car, home, studio, and a few events over the past few months. And in using it over the course of a road trip I learned to not run recirculate in my car quite as often—more on that later. Networked Artifacts built in some personality:

0 views
@hannahilea 1 months ago

Learning to learn how to play with electronics

A journey of a thousand doofy hardware projects starts with a single Adafruit blink

0 views
Circus Scientist 1 months ago

Building the One Button Remote

I did not do a full build video or photo’s today but here is what I have! This project was built with support from my Patreon supporters. Join for free updates! (links are examples from AliExpress) ESP32 C3 Super Mini Latching switch (power) Momenary switch Battery USB charging board (choose overvoltage cutoff protection – important!) Project Box Battery (Buy Locally – too expensive to ship!) When you toggle the latching switch it switches the circuit on/off – when off we can plug USB into the charger board to charge the battery. See this post over here for PlatformIO Firmware and Android App download links. One Button Remote is a simple Bluetooth Foot Switch. It sends Play/Pause media events to any connected device and as such can Play and Pause any media player. When connected to the One Button Player Android App it turns into a full background music controller – add number of music tracks and configure what you want each successive button press to do. I am using this for my Fire Show in particular. I mostly talk but there are two music tracks which I like to spin poi to. Before I made this I would have to press play on my phone with my hands (or trust the DJ if there was one to press play and stop at the right time). This is not practical if you are holding flaming fire torches!! Now I can pair my foot switch, start the app and stomp on the switch at the right time. This project is pretty much done. But I plan to go further. The post Building the One Button Remote appeared first on Circus Scientist . 3D print – fitting the electronics into the box was fine but everything is stuck on with double sided tape, except for the switch which actually is screwed into an L bracket I had (originally for a PIR sensor). This is not the easiest thing to put together securely and in future I plan on doing a nice 3D printed housing. A week ago my Samsung phone finally got upgraded from Android 14 to Android 15. Now the app does not receive media events (button presses) while running in the background – for example if the screen is off. Luckily my media player phone is on Android 7.1 but in future I will have to find out what Google changed and update the app to work on Android 15+ properly. 3.7v battery on 5v input pin is probably not the most efficient way to power this. Needs a boost module – or just a bigger battery ;b

0 views