<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: circuitrocks</title>
    <description>The latest articles on DEV Community by circuitrocks (@circuitrocks).</description>
    <link>https://dev.to/circuitrocks</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3945699%2Fe80afa14-a3d3-4e2c-8279-d860e1f5ac93.png</url>
      <title>DEV Community: circuitrocks</title>
      <link>https://dev.to/circuitrocks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/circuitrocks"/>
    <language>en</language>
    <item>
      <title>This ESP32 Reaction Wheel Cube Lands and Balances on One Edge</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Tue, 22 Sep 2026 09:15:24 +0000</pubDate>
      <link>https://dev.to/circuitrocks/this-esp32-reaction-wheel-cube-lands-and-balances-on-one-edge-3h14</link>
      <guid>https://dev.to/circuitrocks/this-esp32-reaction-wheel-cube-lands-and-balances-on-one-edge-3h14</guid>
      <description>&lt;p&gt;How does a five-inch black cube jump off a table, land on a single edge, and stay balanced there?&lt;/p&gt;

&lt;p&gt;That is the effect The Tinkering Techie built, and the point is that your brain refuses to accept it. Toss a D6 on a table and you already know it will tumble and settle flat on a face. This cube goes up, stops rotating mid-flight, comes down on one edge, and holds. It lands on the same edge every time, which is the first clue that something inside is steering it.&lt;/p&gt;

&lt;h3&gt;So what is actually happening?&lt;/h3&gt;

&lt;p&gt;Inside the shell sits a self-balancing robot. A reaction wheel spins up to produce torque on the body without pushing against anything outside it, the same principle that lets satellites reorient in vacuum. Spin the flywheel one direction and the cube rotates the other. While airborne, the wheel corrects the cube's attitude so it arrives edge-down instead of face-down. The moment it touches the table, the controller switches jobs and starts making constant micro-corrections to hold the balance point. The only other moving part is a spring-loaded piston that a second motor winds back between launches.&lt;/p&gt;

&lt;h3&gt;What is on the board&lt;/h3&gt;

&lt;p&gt;The Tinkering Techie laid out a custom PCB around an ESP32, a dual-core chip running at 240 MHz. That headroom matters, because the balance loop and the motor commutation both want CPU time on the same part. An IMU supplies 6 axes of motion data (3 accelerometer, 3 gyro), and a BLDC motor drives the flywheel under SimpleFOC firmware. A lithium pack powers everything. Field-oriented control running at a few kHz is what turns raw tilt readings into a wheel that pushes back against a fall faster than you can see it happen.&lt;/p&gt;

&lt;h3&gt;Try a smaller version first&lt;/h3&gt;

&lt;p&gt;Balancing a cube on one edge is a single-axis problem, so you only need one wheel to replicate it. Skip the launcher, build the balancer: an ESP32, an MPU6050 on I2C, and a gimbal BLDC with a bolted-on brass flywheel. On a standard ESP32 dev board, SDA lands on GPIO21 and SCL on GPIO22, and most MPU6050 breakouts already carry their own 4.7k pull-ups, so adding a second pair is the usual gotcha that kills the bus. Get the IMU streaming clean angles before you ever energize the motor. Read the SimpleFOC setup guide at &lt;a href="https://docs.simplefoc.com/" rel="nofollow noopener noreferrer"&gt;docs.simplefoc.com&lt;/a&gt;, then watch the cube in action on &lt;a href="https://www.hackster.io/news/this-jumping-cube-performs-a-physics-defying-stunt-2fa96af8ef25" rel="nofollow noopener noreferrer"&gt;Hackster&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/this-esp32-reaction-wheel-cube-lands-and-balances-on-one-edge" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  esp32 #esp8266 #iot #wifi #circuitrocks
&lt;/h1&gt;

</description>
      <category>esp32</category>
      <category>reactionwheel</category>
      <category>robotics</category>
      <category>simplefoc</category>
    </item>
    <item>
      <title>Overclocked RP2350 Pushes 1080p DVI Video With No Framebuffer</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Tue, 22 Sep 2026 04:15:16 +0000</pubDate>
      <link>https://dev.to/circuitrocks/overclocked-rp2350-pushes-1080p-dvi-video-with-no-framebuffer-35a5</link>
      <guid>https://dev.to/circuitrocks/overclocked-rp2350-pushes-1080p-dvi-video-with-no-framebuffer-35a5</guid>
      <description>&lt;p&gt;To try this at home you need a Raspberry Pi Pico 2 or any other RP2350 board, a DVI breakout (or a hand-wired resistor ladder across four differential GPIO pairs), a short HDMI cable, and a monitor that will accept 1920x1080 at 60 Hz. No FPGA, no dedicated video chip, no HDMI transmitter IC. The entire video path comes out of the microcontroller's own PIO blocks and a lot of nerve.&lt;/p&gt;

&lt;h3&gt;What Aaron Gayle actually built&lt;/h3&gt;

&lt;p&gt;The 1080p output is not a standalone demo reel. It ships inside TVtop, a board game where the playing surface lives on your TV and every player uses their phone as a controller over Wi-Fi. An ESP32 handles the wireless side of that game; the RP2350 does nothing but paint pixels. Pushing a Pico-class chip to 1920x1080 clears the old ceiling of 720p, which is about where RP2040 DVI builds topped out.&lt;/p&gt;

&lt;h3&gt;No framebuffer, one scanline at a time&lt;/h3&gt;

&lt;p&gt;A full 1080p framebuffer at 16 bits per pixel wants roughly 4 MB. The RP2350 has 520 KB of SRAM. So Gayle simply doesn't keep one. Each scanline is generated on the fly, handed to PIO, and thrown away, which is the same trick 8-bit machines used in the 1980s, dragged forward forty years. Even that isn't enough on its own: the stock 150 MHz system clock can't feed the TMDS bit rate, so the chip runs overclocked to 372 MHz. Two gotchas if you clone this. Check your board's flash timing at that clock before you blame the video code. And keep the differential pairs short and length-matched, because 1080p TMDS is fast enough that loose jumper wires on a breadboard will show up as sparkle across the screen.&lt;/p&gt;

&lt;h3&gt;Where to start&lt;/h3&gt;

&lt;p&gt;If you already have a Pico 2 on the bench, the cheapest first step is a 720p port on RP2040 to get the PIO and pinout right, then move up. The full write-up, including how the scanline generator is structured, is at &lt;a href="https://hackaday.com/2026/09/21/the-rp2350-does-1080p/" rel="noopener noreferrer"&gt;Hackaday&lt;/a&gt;. Gayle says the whole thing started because an earlier Hackaday post asked whether 1080p from a Pico was even possible.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/overclocked-rp2350-pushes-1080p-dvi-video-with-no-framebuffer" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  maker #electronics #diy #engineering #circuitrocks
&lt;/h1&gt;

</description>
      <category>rp2350</category>
      <category>raspberrypipico</category>
      <category>microcontrollers</category>
      <category>hdmi</category>
    </item>
    <item>
      <title>Sudo-Pi Zer0: A Raspberry Pi Zero 2 W Handheld Linux Terminal</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Mon, 21 Sep 2026 22:15:02 +0000</pubDate>
      <link>https://dev.to/circuitrocks/sudo-pi-zer0-a-raspberry-pi-zero-2-w-handheld-linux-terminal-o3h</link>
      <guid>https://dev.to/circuitrocks/sudo-pi-zer0-a-raspberry-pi-zero-2-w-handheld-linux-terminal-o3h</guid>
      <description>&lt;p&gt;A Raspberry Pi Zero 2 W costs less than a decent mechanical keyboard, but the moment you want to use one away from a desk you need a monitor, a USB keyboard, and a wall outlet. That gap is what makes the Sudo-Pi Zer0 from maker Signals Circuits worth a look. It folds the screen, keyboard, battery, and port expansion into a single handheld body, which turns the Pi into something you can carry to a robotics lab or a hallway debugging session.&lt;/p&gt;

&lt;h3&gt;What Signals Circuits built&lt;/h3&gt;

&lt;p&gt;The Sudo-Pi Zer0 is a portrait-format handheld: a 5-inch display sitting above an ortholinear keyboard, with a thumbstick standing in for a mouse. The maker designed the entire stack from scratch rather than bolting together off-the-shelf HATs. That means a custom carrier PCB, a separate keyboard PCB, the power system, a USB hub, the audio circuit, the display interface, and the enclosure. Carrier and keyboard schematics are already published, an open source license is promised, and kits are planned for people who would rather not source sixty-odd parts one at a time.&lt;/p&gt;

&lt;h3&gt;What is actually inside&lt;/h3&gt;

&lt;p&gt;The Zero 2 W brings a quad-core Arm Cortex-A53 clocked to 1GHz and 512MB of SDRAM, which is enough for a terminal, Python, and light desktop work. Its weakness is connectivity: one micro-USB OTG port, one mini-HDMI output, one CSI-2 camera connector. The carrier board patches around that with an onboard USB hub feeding two external USB ports, an amplified speaker with a headphone output, and a STEMMA QT / Qwiic connector so you can hang I2C sensors off SDA and SCL with no soldering. The full 40-pin GPIO header stays exposed. An internal battery charges over USB Type-C and drives both the Pi and the display through a custom power management circuit. A teased expansion module adds GNSS, cellular, and LoRa radios.&lt;/p&gt;

&lt;h3&gt;Build your own version&lt;/h3&gt;

&lt;p&gt;Start smaller than the finished handheld. Wire a Zero 2 W to a 5-inch DSI or HDMI panel, plug in a USB keyboard, and get the software stable first. A read-only root filesystem and a lightweight window manager will save you a corrupted microSD card three weekends from now. Then move power onto a TP4056 charger and a 5V boost module, and measure real current draw with a USB meter before you pick a cell. A Zero 2 W idles near 150mA and can spike past 400mA when all four cores wake up, and that number sizes your battery. The keyboard PCB is the trickiest piece, so study a published one before routing your own. Full build details and links to the schematics are on the &lt;a href="https://www.hackster.io/news/signals-circuits-sudo-pi-zer0-turns-a-raspberry-pi-zero-2-w-into-a-compact-handheld-linux-terminal-e55b06082ebc" rel="nofollow noopener noreferrer"&gt;Hackster writeup&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/sudo-pi-zer0-a-raspberry-pi-zero-2-w-handheld-linux-terminal" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  raspberrypi #rpi #singleboardcomputer #linux #circuitrocks
&lt;/h1&gt;

</description>
      <category>raspberrypi</category>
      <category>pizero2w</category>
      <category>handheld</category>
      <category>pcbdesign</category>
    </item>
    <item>
      <title>Nordic nRF54LC10A: One Chip for BLE, Thread, Zigbee and Matter</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Mon, 21 Sep 2026 09:06:55 +0000</pubDate>
      <link>https://dev.to/circuitrocks/nordic-nrf54lc10a-one-chip-for-ble-thread-zigbee-and-matter-43np</link>
      <guid>https://dev.to/circuitrocks/nordic-nrf54lc10a-one-chip-for-ble-thread-zigbee-and-matter-43np</guid>
      <description>&lt;p&gt;Want a Matter sensor that runs for months on a coin cell? Your shopping list today is an nRF54L15 development kit, a breadboard, a couple of I2C sensors and the free nRF Connect SDK. Nordic's newest entry-level part, the nRF54LC10A, is sampling now, but its own dev kits do not land until Q1 2027 and the chips reach mass production in Q2. Code you write against the L15 this semester ports across, so there is no reason to sit on your hands until then.&lt;/p&gt;

&lt;h3&gt;What Nordic actually announced&lt;/h3&gt;

&lt;p&gt;The nRF54LC10A is the budget end of the nRF54L family, and the pitch is that it drops the price without dropping protocols. One radio block covers Bluetooth Low Energy, IEEE 802.15.4-2020, and the proprietary 2.4GHz mode Nordic uses for low-latency links. That 802.15.4 support is what gets you Thread, Zigbee and Matter off a single part instead of bolting a second radio onto your board. Nordic is aiming it at asset trackers and simple smart-home sensors, plus hub designs where it sits next to a bigger processor and handles Thread traffic as a coprocessor.&lt;/p&gt;

&lt;h3&gt;The numbers that matter at the bench&lt;/h3&gt;

&lt;p&gt;Inside is an Arm Cortex-M33 at 128MHz with a RISC-V coprocessor clocked to match, 192kB of SRAM, and 1,012kB of RRAM standing in for the flash you would normally expect. RRAM writes faster and cheaper in energy terms than flash, which matters when your logger wakes up, scribbles a reading and goes back to sleep. You get up to 31 GPIO pins, I2C, SPI and UART, and an eight-channel ADC you can switch between 10-bit and 14-bit precision. The detail worth circling: a real-time clock that keeps ticking while the chip sits in OFF mode. That is the whole battery-life trick in one line, since your sensor spends most of its life asleep at microamp draw, wakes on the RTC, transmits, and drops back down.&lt;/p&gt;

&lt;h3&gt;Where to point it&lt;/h3&gt;

&lt;p&gt;For a capstone or thesis build, Matter is the angle with the most road ahead of it. A classroom air-quality node or a campus asset tracker that joins a Thread network and pairs with commercial hubs is a far stronger defense than another Wi-Fi sensor posting to a dashboard nobody else can reach. Start by reading the full &lt;a href="https://www.hackster.io/news/nordic-s-latest-entry-level-nrf54l-packs-bluetooth-le-thread-zigbee-and-matter-support-27eceecce28d" rel="noopener noreferrer"&gt;Hackster write-up on the nRF54LC10A&lt;/a&gt;, then flash the Matter light-bulb sample from nRF Connect SDK onto an L15 board and watch it pair. If your sensor reads garbage on the ADC, check your pull-ups before you blame the chip.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/nordic-nrf54lc10a-one-chip-for-ble-thread-zigbee-and-matter" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  iot #smarthome #homeautomation #connecteddevices #circuitrocks
&lt;/h1&gt;

</description>
      <category>nordicsemiconductor</category>
      <category>nrf54l</category>
      <category>bluetoothle</category>
      <category>matter</category>
    </item>
    <item>
      <title>Prop-Maker FeatherWing: Add Lights, Sound and Motion to Props</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Mon, 21 Sep 2026 04:07:50 +0000</pubDate>
      <link>https://dev.to/circuitrocks/prop-maker-featherwing-add-lights-sound-and-motion-to-props-2733</link>
      <guid>https://dev.to/circuitrocks/prop-maker-featherwing-add-lights-sound-and-motion-to-props-2733</guid>
      <description>&lt;p&gt;Halloween props live or die on timing. A staff that lights up two seconds after you swing it is a toy; one that flashes and roars on the same beat as your arm is a performance. Closing that gap is the reason the Adafruit Prop-Maker FeatherWing exists — it puts audio, lighting and motion sensing on a single board instead of leaving your microcontroller to juggle three breakout modules over a nest of jumper wires.&lt;/p&gt;

&lt;h3&gt;What the wing actually does&lt;/h3&gt;

&lt;p&gt;The FeatherWing stacks onto a Feather board and hands you four things at once: a class-D audio amplifier, a NeoPixel port, a driver for a high-power RGB LED, and an accelerometer for motion triggers. Adafruit's project list shows the range — a motion-sensitive wizard staff, a Zelda master sword with a retracting blade, a TRON-style identity disc, a pruning baton from Loki. Every one of them runs the same loop: read the accelerometer, fire a sound clip, push a color down the LED strip.&lt;/p&gt;

&lt;h3&gt;The parts on the board&lt;/h3&gt;

&lt;p&gt;Audio comes from a MAX98357 I2S class-D amp that drives a 4Ω to 8Ω speaker at up to 3W, which is loud enough to carry across a school gym. Motion sensing is an LIS3DH triple-axis accelerometer sitting on the I2C bus, so tilt, taps and swing detection arrive as events rather than raw math you have to write. Lighting splits two ways: a 3-pin JST port with a level shifter for NeoPixel strips, and three high-current MOSFETs for a separate 3W RGB LED. One power-enable pin cuts all three loads at once and drops the wing's idle draw below 1mA, which is the difference between a prop that survives a full night of trick-or-treating and one that dies by 9 PM.&lt;/p&gt;

&lt;h3&gt;Starting your own build&lt;/h3&gt;

&lt;p&gt;Pick the Feather carefully. Several of the onboard functions need PWM and analog output, so Adafruit steers builders toward the Feather M0 Express, the Feather M4, or an ESP32 Feather rather than a basic 32u4. Order the assembled version if you would rather skip soldering headers. The code stays short after that: install the LIS3DH and NeoPixel libraries, set the power-enable pin high, and hang your first sound effect on a tap event. Run the speaker through the terminal block, not the JST port — swapping those two is the usual first-build gotcha. Pinouts and working CircuitPython examples live at &lt;a href="https://learn.adafruit.com/adafruit-prop-maker-featherwing" rel="noopener noreferrer"&gt;learn.adafruit.com/adafruit-prop-maker-featherwing&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/prop-maker-featherwing-add-lights-sound-and-motion-to-props" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  maker #electronics #diy #engineering #circuitrocks
&lt;/h1&gt;

</description>
      <category>adafruit</category>
      <category>featherwing</category>
      <category>neopixel</category>
      <category>circuitpython</category>
    </item>
    <item>
      <title>Robot Poker Chips and Heated Dice: Engineering a Casino Cheat</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Sun, 20 Sep 2026 22:07:00 +0000</pubDate>
      <link>https://dev.to/circuitrocks/robot-poker-chips-and-heated-dice-engineering-a-casino-cheat-4ok6</link>
      <guid>https://dev.to/circuitrocks/robot-poker-chips-and-heated-dice-engineering-a-casino-cheat-4ok6</guid>
      <description>&lt;p&gt;A poker chip that drives itself across a roulette table sounds like a prop from a heist film. Kevin Coda actually built one. He hollowed out a standard chip, packed in four miniature vibration motors fitted with rubber wheels, a custom PCB, an RF receiver and a coin cell, then walked it to a better number after the wheel had already stopped.&lt;/p&gt;

&lt;p&gt;The chip was one entry in Mark Rober's CrunchLabs Casino challenge, where makers were invited to beat classic casino games with hardware. Cheating was allowed. Getting caught was not. The result shows how much you can hide inside an everyday object with a soldering iron and a free weekend.&lt;/p&gt;

&lt;h3&gt;The builds worth studying&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dice that change their minds.&lt;/strong&gt; Dora from StrelkoMania suspended a steel ball bearing in low-melting-point wax inside each die. Silicone heating pads rated at 10 watts, sewn into her gloves, softened the wax long enough for the bearing to slide, then it cooled and locked the bias somewhere new.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A wearable card counter.&lt;/strong&gt; Christina Ernst hid the whole circuit in a garter. Concealed switches fed each dealt card to a microcontroller, which held the running count and blinked hidden LEDs with the statistically correct move.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Computer vision up a sleeve.&lt;/strong&gt; Tom from Tom Builds Stuff tucked a pinhole camera into his cuff, filmed the edge of the deck during the cut, and let software rebuild the card order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero electronics.&lt;/strong&gt; Nate Scovill renumbered two dice, one carrying 1, 2 and 3 twice over, the other 4, 5 and 6, deleting every extreme total from the odds table.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;What is actually going on in there&lt;/h3&gt;

&lt;p&gt;Strip the theme away and these are ordinary embedded problems. The robot poker chip is a differential drive with no room for a proper motor driver IC, so small vibration motors switched through MOSFETs do the job, and a 2.4 GHz link of the sort you get from an nRF24L01+ paired with an ATtiny or an ESP32-C3 covers the remote control. The loaded dice are a thermal control loop: hobby wax softens around 55 to 60 °C, a pad pulling roughly 1 A at 5 V gets there in seconds, and the bearing must set before the next roll. The card counter is the gentlest of the three, since a Hi-Lo running count is a few additions and a handful of GPIO pins for switches and indicator LEDs.&lt;/p&gt;

&lt;h3&gt;Build it yourself&lt;/h3&gt;

&lt;p&gt;Start with the card counter if you want something working this week. A Seeed XIAO or a Pro Micro, five tactile switches on separate GPIO pins with the internal pull-ups turned on, and three LEDs for hit, stand and double give you a complete circuit on a breadboard. The gotcha is debounce: hand-wired switches will register two or three presses per tap and wreck the count, so either drop a 100 nF capacitor across each switch or hold a 20 ms software lockout after every edge. Watch the original write-up at &lt;a href="https://www.hackster.io/news/mark-rober-built-a-casino-just-to-see-if-engineers-could-cheat-it-fd5fe1f66b08" rel="noopener noreferrer"&gt;Hackster&lt;/a&gt; and pick one technique to steal for your own build.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/robot-poker-chips-and-heated-dice-engineering-a-casino-cheat" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  robotics #robots #engineering #stem #circuitrocks
&lt;/h1&gt;

</description>
      <category>microcontroller</category>
      <category>pcb</category>
      <category>wearables</category>
      <category>robotics</category>
    </item>
    <item>
      <title>Arduino UNO Q Smart Doorbell Runs Its Vision Model On-Device</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Sun, 20 Sep 2026 09:08:31 +0000</pubDate>
      <link>https://dev.to/circuitrocks/arduino-uno-q-smart-doorbell-runs-its-vision-model-on-device-3pfk</link>
      <guid>https://dev.to/circuitrocks/arduino-uno-q-smart-doorbell-runs-its-vision-model-on-device-3pfk</guid>
      <description>&lt;p&gt;Every video doorbell you can buy off a shelf makes the same trade: it watches your front door, and a company you have never met keeps the footage. Arduino's answer is a doorbell that does its recognition on the board itself, and the team is building one on camera so you can copy the wiring.&lt;/p&gt;

&lt;p&gt;Massimo Banzi and Andrea Richetta stream the build on September 22 at 3pm CET (9am ET). The project pairs an Arduino UNO Q with a camera and runs a small computer vision model locally, so the board works out whether it is looking at a neighbour, a courier or a stray cat without a round trip to anyone's server. Banzi first showed the design on the SuperModerno YouTube channel; the stream turns that demo into a step-by-step build.&lt;/p&gt;

&lt;h3&gt;The dual-brain board doing the work&lt;/h3&gt;

&lt;p&gt;The UNO Q breaks the UNO pattern. Instead of one microcontroller it carries two processors: a 2GHz quad-core Arm Cortex-A53 inside a Qualcomm Dragonwing QRB2210 running Linux, and an STMicroelectronics STM32U585 Cortex-M33 clocked to 160MHz handling the real-time work. The Linux half runs the vision model. The M33 handles the chime, the button debounce and anything that cannot wait on a scheduler. Arduino's IDE passes messages between the two, which is the part worth watching on the stream, because splitting a project across two cores is the tricky bit, not the inference.&lt;/p&gt;

&lt;h3&gt;What you need to build one&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An UNO Q and a compatible camera module. Get frames landing reliably before you touch the model.&lt;/li&gt;
&lt;li&gt;A 5V supply with headroom. An A53 under inference load pulls far more current than an UNO R3 ever did, and a weak USB brick will brown it out mid-frame.&lt;/li&gt;
&lt;li&gt;A momentary switch on a GPIO pin with a pull-up resistor for the button, plus a small speaker or piezo buzzer for the chime.&lt;/li&gt;
&lt;li&gt;An enclosure, if the thing is going to sit outside through a rainy season.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Build it in stages if the whole thing looks steep: camera streaming first, then recognition on saved frames, then the doorbell hardware. Registration for the September 22 stream goes through Arduino's YouTube notification, and the full write-up is at &lt;a href="https://www.hackster.io/news/massimo-banzi-andrea-richetta-promise-to-showcase-the-arduino-uno-q-s-smarts-in-a-live-build-d02f29ff41c1" rel="noopener noreferrer"&gt;Hackster&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/arduino-uno-q-smart-doorbell-runs-its-vision-model-on-device" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  arduino #arduinoprojects #electronics #embedded #circuitrocks
&lt;/h1&gt;

</description>
      <category>arduino</category>
      <category>unoq</category>
      <category>computervision</category>
      <category>smarthome</category>
    </item>
    <item>
      <title>Build a Private Second Brain on Raspberry Pi With Logseq</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Sun, 20 Sep 2026 07:15:13 +0000</pubDate>
      <link>https://dev.to/circuitrocks/build-a-private-second-brain-on-raspberry-pi-with-logseq-2b50</link>
      <guid>https://dev.to/circuitrocks/build-a-private-second-brain-on-raspberry-pi-with-logseq-2b50</guid>
      <description>&lt;p&gt;Your thesis notes are spread across three chat apps, a notebook you left in the jeepney, and a cloud account that just changed its free tier. The Raspberry Pi Official Magazine's latest tutorial fixes that with hardware you probably already own: a personal knowledge base that lives entirely on your own Raspberry Pi and never touches someone else's server.&lt;/p&gt;

&lt;h3&gt;What the build actually is&lt;/h3&gt;

&lt;p&gt;The setup pairs two open source tools. Logseq handles the notes: every page is a plain Markdown file in a folder you choose, with tags that link pages into a graph you can visually browse. Syncthing handles the copies, moving that folder between machines peer-to-peer and encrypting it in transit, so no company sits in the middle holding your lab logs and capstone references. The magazine team ran it on a Raspberry Pi 500, a Pi Zero, and a uConsole built around the Compute Module 4, so board choice is genuinely flexible.&lt;/p&gt;

&lt;h3&gt;The technical bits&lt;/h3&gt;

&lt;p&gt;Logseq currently ships for Raspberry Pi OS only as a Snap, which is the first gotcha on a fresh install. You update the package index, install &lt;code&gt;snapd&lt;/code&gt;, reboot, then install Logseq from the &lt;code&gt;og&lt;/code&gt; channel. On first launch you point it at a folder, click "add a graph", and that folder becomes the whole database: Markdown files at the top level, an &lt;code&gt;assets&lt;/code&gt; subfolder for PDFs, images, and audio. Copy the folder to another Pi and it opens as the same brain, which is why Syncthing works so cleanly here. Syncthing's web dashboard sits on port 8384 and the sync traffic itself runs over port 22000, useful to know if your school network firewalls anything unusual.&lt;/p&gt;

&lt;h3&gt;Build it yourself&lt;/h3&gt;

&lt;p&gt;You need a Raspberry Pi with a desktop (a Pi 500, Pi 5, or Pi 4 with 4GB is comfortable; a Zero works but expect slower graph redraws), a microSD card with Raspberry Pi OS, and about 40 minutes. Start with one machine, get a week of journal entries in, and only add Syncthing once you actually want a second device in the loop. The tricky part is discipline, not installation: a second brain is only useful if you dump things into it daily. Full step-by-step, including the Syncthing pairing, is in the original write-up at &lt;a href="https://www.raspberrypi.com/news/build-a-digitally-sovereign-second-brain/" rel="noopener noreferrer"&gt;raspberrypi.com&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/build-a-private-second-brain-on-raspberry-pi-with-logseq" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  raspberrypi #rpi #singleboardcomputer #linux #circuitrocks
&lt;/h1&gt;

</description>
      <category>raspberrypi</category>
      <category>logseq</category>
      <category>syncthing</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>A Raspberry Pi 5 E Ink Frame That Paints the Birds It Hears</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Wed, 09 Sep 2026 09:07:02 +0000</pubDate>
      <link>https://dev.to/circuitrocks/a-raspberry-pi-5-e-ink-frame-that-paints-the-birds-it-hears-4ld0</link>
      <guid>https://dev.to/circuitrocks/a-raspberry-pi-5-e-ink-frame-that-paints-the-birds-it-hears-4ld0</guid>
      <description>&lt;p&gt;A thin lavalier microphone pokes out from under the eaves of a house in Bergen, Norway, its cable running back through a closed window. Somewhere inside, a picture frame on the wall quietly redraws itself: a chaffinch fades in beside a blackbird, because both of them were singing in the garden ten minutes ago.&lt;/p&gt;

&lt;p&gt;That frame is Fugleramme, built by Arne Giacomo Munthe-Kaas. Instead of showing bird detections as a list of species names on a dashboard, it turns them into a collage of natural-history illustrations that changes as the garden changes. His installation has logged roughly 2,600 detections across 37 species so far. When nothing is calling outside, the frame falls back to a drawing of an empty perch.&lt;/p&gt;

&lt;h3&gt;What is actually behind the glass&lt;/h3&gt;

&lt;p&gt;The recommended build is a Raspberry Pi 5 with 2 GB of RAM, a Pimoroni Inky Impression 13.3-inch Spectra 6 E Ink panel, and a USB microphone (he uses a Boya BY-M3). The Inky drives over SPI on the Pi's 40-pin GPIO header, and Pimoroni's Python library handles the refresh, so there is no soldering in this build at all. The panel is 1600 x 1200 and physically A4, which is why it drops straight into a standard IKEA RODALM frame with the Pi mounted behind it. One detail worth copying: he left the back open and fitted an active cooler, because BirdNET inference runs continuously and keeps the Pi warm all day.&lt;/p&gt;

&lt;h3&gt;How the software stack fits together&lt;/h3&gt;

&lt;p&gt;BirdNET-Go (https://github.com/tphakala/birdnet-go) does the listening and classification, and it all runs on the Pi with no cloud round trip. Fugleramme sits on top of it and polls the BirdNET-Go API for recent detections, matches each species to artwork, lays out the collage, and pushes a new frame to the display only when the lineup changes. That last part is the gotcha of any E Ink project: a full refresh takes seconds and flashes the panel, so you redraw on change, not on a timer. The art took the real patience: public-domain plates from the 1800s, each bird cut out by hand, given a transparent background, and dropped onto a paper texture. Larger birds get pulled toward the middle by body mass. Coverage is strongest for Northern Europe, with North American species listed as next up.&lt;/p&gt;

&lt;h3&gt;Worth stealing for a thesis build&lt;/h3&gt;

&lt;p&gt;The E Ink panel is optional. Fugleramme serves the same view over HTTP, so you can prototype on an HDMI monitor or a phone before spending on a Spectra 6 panel. That makes it a sensible capstone shape: get BirdNET-Go classifying from a USB mic first, confirm your species list looks sane over a week, then add the display. Full write-up is at &lt;a href="https://www.hackster.io/news/this-smart-picture-frame-shows-you-which-birds-are-outside-92a9b10bfddb" rel="nofollow noopener noreferrer"&gt;Hackster&lt;/a&gt;. If detections stop the moment you plug the display in, check your USB port allocation before you blame the classifier.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/a-raspberry-pi-5-e-ink-frame-that-paints-the-birds-it-hears" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  raspberrypi #rpi #singleboardcomputer #linux #circuitrocks
&lt;/h1&gt;

</description>
      <category>raspberrypi</category>
      <category>eink</category>
      <category>birdnet</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Tiny Contacts Fits Four Relays Onto a 42 x 38 mm ESP32 Board</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Wed, 09 Sep 2026 04:06:20 +0000</pubDate>
      <link>https://dev.to/circuitrocks/tiny-contacts-fits-four-relays-onto-a-42-x-38-mm-esp32-board-7n2</link>
      <guid>https://dev.to/circuitrocks/tiny-contacts-fits-four-relays-onto-a-42-x-38-mm-esp32-board-7n2</guid>
      <description>&lt;p&gt;Your ESP32 home automation controller needs four switched outputs, but the enclosure only has room for one of those blue hobby relay modules. Now what?&lt;/p&gt;

&lt;p&gt;Sergio Ghirardelli's answer is Tiny Contacts, a four-channel relay board that measures 42 x 38 mm. That is barely larger than the single-channel modules sitting in most parts drawers, except it carries four independent channels. Anyone who has tried to fit a switching board, a 5 V supply, and a dev board into one project box knows why that footprint matters more than any spec on the datasheet.&lt;/p&gt;

&lt;h3&gt;How does it get that small?&lt;/h3&gt;

&lt;p&gt;The size comes down to relay choice. Instead of the tall through-hole relays found on inexpensive modules, Tiny Contacts uses four Omron G6K-2F-Y surface-mount relays. Those are signal-grade parts that claim far less PCB area, which is what frees up room for four channels on a board this size. Read the G6K contact rating against your load before you wire anything to a wall outlet, because a signal relay is not a mains appliance switch. The board itself runs from 5 VDC and accepts 3.3 V to 5 V on its control inputs, so ESP32, ESP8266, Arduino, ATtiny, and STM32 boards all drive it without a level shifter.&lt;/p&gt;

&lt;h3&gt;Why not just drive the coils from a GPIO pin?&lt;/h3&gt;

&lt;p&gt;Because a relay coil pulls far more current than a GPIO pin should ever source. Tiny Contacts puts a ULN2003A between your microcontroller and the coils. The ULN2003A is a seven-channel Darlington array, and four of those channels supply the coil current here while your GPIO pins only see a logic-level signal. The chip also carries the flyback suppression diodes that absorb the inductive spike when a coil de-energizes. Leave that diode out of a hand-wired relay circuit and you get random resets first, then a dead microcontroller. Onboard LEDs show board power plus per-channel state, which turns "is that output actually closed?" into a glance instead of a multimeter probe.&lt;/p&gt;

&lt;h3&gt;Try this on your own bench&lt;/h3&gt;

&lt;p&gt;You do not need the board to learn the circuit. Drop a ULN2003A on a breadboard, tie pin 8 to ground and pin 9 to your 5 V rail so the internal clamp diodes are connected, then run one relay coil from an output pin. Toggle it from GPIO 4 on an ESP32 and watch what happens to your serial output if you disconnect pin 9. That single experiment explains flyback protection better than any diagram. Ghirardelli's write-up on the board is at &lt;a href="https://www.hackster.io/news/a-compact-relay-board-for-space-constrained-iot-builds-90c72a46f1ab" rel="nofollow noopener noreferrer"&gt;Hackster&lt;/a&gt;, and the Omron G6K and TI ULN2003A datasheets are both worth a read before your next switching build.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/tiny-contacts-fits-four-relays-onto-a-42-x-38-mm-esp32-board" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  esp32 #esp8266 #iot #wifi #circuitrocks
&lt;/h1&gt;

</description>
      <category>relay</category>
      <category>esp32</category>
      <category>iot</category>
      <category>homeautomation</category>
    </item>
    <item>
      <title>Build a Pocket Signal Generator With the AVR16EB28 and an OLED</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:07:01 +0000</pubDate>
      <link>https://dev.to/circuitrocks/build-a-pocket-signal-generator-with-the-avr16eb28-and-an-oled-2g6f</link>
      <guid>https://dev.to/circuitrocks/build-a-pocket-signal-generator-with-the-avr16eb28-and-an-oled-2g6f</guid>
      <description>&lt;p&gt;Your parts list here is short: an AVR16EB28 in an SSOP package, a 4.194304 MHz crystal, a small OLED, a keypad, a rotary encoder, a 3.3 V regulator, and a 150 mAh LiPo if you want it running away from a wall socket. David Johnson-Davies fit all of that onto one PCB and got back a square-wave source that covers 2 Hz to 33,554,430 Hz in exact 2 Hz steps.&lt;/p&gt;

&lt;h3&gt;What the thing actually does&lt;/h3&gt;

&lt;p&gt;You key a frequency straight in, up to eight digits in hertz, and the display answers with the closest frequency the chip can really produce. The rotary encoder handles fine adjustment at 2 Hz per detent. Push the encoder shaft and the step size jumps to 1,000 Hz, which saves a few hundred clicks when you are travelling from audio range up toward RF. An earlier version of this generator lived on a breadboard around an AVR32EB28. This one has its own board with a power switch, so it goes in a bag instead of staying pinned to the bench.&lt;/p&gt;

&lt;h3&gt;The crystal trick worth stealing&lt;/h3&gt;

&lt;p&gt;Newer AVR parts dropped the external high-frequency crystal support that the older chips had, which is awkward when your whole selling point is 20 ppm accuracy. Rather than adding a separate oscillator IC, Johnson-Davies made the microcontroller build its own oscillator out of two spare pins. PC3 is set up as an inverted input, PC2 as an event output, and an internal Event System channel links them. The crystal is wired externally between the two pins, and PC2 loops back into the EXTCLK input.&lt;/p&gt;

&lt;p&gt;Getting it stable took some bench time. He compared Schmitt trigger against TTL input modes and tried several feedback resistor and load capacitor pairings before settling on TTL mode with a 1 megohm feedback resistor and two 18 pF load capacitors. The firmware is nearly the same as the breadboard version, with new code only for the encoder push switch. It compiles under Spence Konde's DxCore Arduino core and flashes to the AVR16EB28 over UPDI.&lt;/p&gt;

&lt;h3&gt;Worth a slot on a student bench&lt;/h3&gt;

&lt;p&gt;Most school labs own one function generator and have twenty students queueing behind it. A square-wave source you soldered yourself covers a lot of what a digital design or embedded class actually asks for: clocking a shift register, feeding a timer capture input, sweeping an RC filter to find its corner frequency. Build notes, schematic and firmware are all in the write-up at &lt;a href="https://www.hackster.io/news/build-a-digital-signal-generator-with-an-avr-microcontroller-9b3eace51d64" rel="nofollow noopener noreferrer"&gt;Hackster&lt;/a&gt;. If you want to prototype before committing to a PCB, an AVR32EB28 on a breadboard runs the same code, and any 128x64 I2C OLED on SDA and SCL will stand in for the display.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/build-a-pocket-signal-generator-with-the-avr16eb28-and-an-oled" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  maker #electronics #diy #engineering #circuitrocks
&lt;/h1&gt;

</description>
      <category>avr</category>
      <category>microcontrollers</category>
      <category>signalgenerator</category>
      <category>testequipment</category>
    </item>
    <item>
      <title>Brass Tubing Is the Frame and the Ground in This ESP32 Handheld</title>
      <dc:creator>circuitrocks</dc:creator>
      <pubDate>Tue, 08 Sep 2026 09:06:26 +0000</pubDate>
      <link>https://dev.to/circuitrocks/brass-tubing-is-the-frame-and-the-ground-in-this-esp32-handheld-4anf</link>
      <guid>https://dev.to/circuitrocks/brass-tubing-is-the-frame-and-the-ground-in-this-esp32-handheld-4anf</guid>
      <description>&lt;p&gt;What holds a handheld console together once you skip both the PCB and the printed enclosure?&lt;/p&gt;

&lt;p&gt;Huy Vector's answer was 2 mm hollow brass tubing. He traced the outline of a 2.4-inch IPS display onto paper, bent tubing into matching front and back rectangles, then joined the two with four 8 cm corner posts. The skeleton that came out of it carries a display, a speaker, a battery pack and a dev board with almost nothing hidden. Every solder joint is on show, and that is the point.&lt;/p&gt;

&lt;h3&gt;The frame is part of the circuit&lt;/h3&gt;

&lt;p&gt;Brass conducts, so Vector let the tubing double as the common ground for everything bolted to it. That removes a fistful of return wires and gives him a ground reference he can tap anywhere on the chassis. The rest of the wiring is stiff 1 mm brass wire run point to point, which is stiff enough to hold its shape and act as structure in its own right. A thin speaker tucks directly under the display inside the front frame.&lt;/p&gt;

&lt;h3&gt;What is actually running the games&lt;/h3&gt;

&lt;p&gt;The brains are an ESP32-S3 N16R8 CAM development board, picked less for its camera (unused here) than for the 16 MB of flash, 8 MB of PSRAM and the onboard microSD slot that holds the ROMs on a FAT-formatted card. There was no room for an off-the-shelf gamepad, so the controls are eight 4 mm tactile switches mounted to a 2 mm acrylic sheet: D-pad, two action buttons, Start and Select. Each switch shares the chassis ground, with its second terminal running to its own GPIO pin. A small amplifier drives the speaker, and three 3.7 V AAA-sized rechargeable cells sit in the open frame next to a USB-C charging module and a slide power switch.&lt;/p&gt;

&lt;p&gt;On the firmware side it emulates the NES, Game Boy, Game Boy Color, Sega Master System and Game Gear. A menu behind Start and Select exposes volume, visual filters, save states and ESP32 overclocking, and the S3's Wi-Fi means new ROMs can be pushed across without pulling the card.&lt;/p&gt;

&lt;h3&gt;Try it&lt;/h3&gt;

&lt;p&gt;The brass is the hard part; the electronics are not. An ESP32-S3 board, a 2.4-inch SPI display, a handful of tactile switches and a mono amp will get you a working emulator on a breadboard in an afternoon, and you can decide on a body later. One gotcha if you go the metal-chassis route: a conductive frame is a great ground, but it will also short anything you let touch it, so sleeve or standoff every exposed pad before you power up. Full build photos and the video are on &lt;a href="https://www.hackster.io/news/esp32-meets-brass-frame-in-this-one-of-a-kind-handheld-fba87af0be2a" rel="noopener noreferrer"&gt;Hackster&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://blog.circuit.rocks/brass-tubing-is-the-frame-and-the-ground-in-this-esp32-handheld" rel="noopener noreferrer"&gt;blog.circuit.rocks&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  esp32 #esp8266 #iot #wifi #circuitrocks
&lt;/h1&gt;

</description>
      <category>esp32</category>
      <category>esp32s3</category>
      <category>retrogaming</category>
      <category>handheld</category>
    </item>
  </channel>
</rss>
