RSSAmplifier

Blog

Title

flaviutamas.comRSS feed ↗42 posts

Latest posts

42 in Harbor Freight toolbox dimensions

There are 10 drawers on the toolbox. The interior width and depth given below are measured from the included rubber mat. The height measurement is from the bottom of the drawer to the top of the handle, and does not include the rubber mat, which is 2 mm uncompressed and 0.8 mm fully compressed. Count Width (mm) Depth (mm) Height (mm) 1 942 492 133 1 942 492 67 2 564 492 67 2 564 492 145 2 308 492…

Qidi Q1 Pro modifications

I recently got a Qidi Q1 Pro printer & am extremely happy with it. It works and prints perfectly right out of the box, but I don’t have anything useful to print right now and I want to play with my new toy. So it’s time to modify it! There’s a few tiny issues that I have with it: the camera picture is not perfectly evenly lit the camera sets the exposure based on the white print head, not on the…

Automatic fan controller (5-24V, 300mA)

I hate loud fans, especially when there’s no good reason for them to be loud. Unfortunately, lots of equipment, especially that designed for industrial rather than household use, has permanently loud fans. I’ve developed a tiny board that can be spliced into any fan wire to allow for control. It doesn’t require the fan to support PWM, and can be used with fans from 5 to 24V. The control algorithm…

Low cost digital spot welder teardown & review

Despite the very good internet advice to not short a lithium ion battery, I decided to buy a cheap spot welders that does exactly that. Circuit board It has a 2-layer board, and it’s obvious it’s been through quite a few testing and optimization iterations. The front of the main circuit board The back of the main circuit board Selected part numbers: D7, D8, D10, D11, D12 - S4 Q10 - Alpha&Omega…

Connecting to ROCKSEED RS310P programmable power supply over WiFi

Other articles in this series: Reversing the ROCKSEED RS310P programmable power supply This device is a rebadge of the ETommens eTM-xxxxP series of programmable power supplies, and this power supply specifically looks the closest . This teardown should be fairly applicable to the: Hanmatek HM305P, Rockseed RS305P, Hanmatek HM310P, RockSeed RS310P, Rockseed RS605P, eTommens eTM305P, eTommens…

ROCKSEED RS310P programmable power supply reversing

Other articles in this series: Connecting to ROCKSEED RS310P programmable power supply over WiFi This device is a rebadge of the ETommens eTM-xxxxP series of programmable power supplies, and this power supply specifically looks the closest . This teardown should be fairly applicable to the: Hanmatek HM305P, Rockseed RS305P, Hanmatek HM310P, RockSeed RS310P, Rockseed RS605P, eTommens eTM305P,…

Hacking the LG ThinQ App for use with trackers blocked

When I try to use the LG ThinQ app 1 , I get an error saying that “There are problems with the security certificate for this server”. Probably because I’m blocking the millions of tracking services that the app tries to connect to at the DNS level. I’ve been able to patch the app to get past this error: Downloading the APK I grabbed the APK by installing apk.sh , and then running ./apk.sh pull…

Designing a fan for a coffee roaster

I’m trying to improve the airflow through my repurposed popcorn popper coffee roaster. At the moment, I need to continuously shake the roaster to get even roasts, but I’d like to just set it and let it run. The popcorn popper’s fan is a small impeller on a 12V DC motor. The heating element is used as a voltage divider to supply the motor. The original impeller and (damaged) fan housing My first…

Progressive Automations PA-07 teardown

I was having trouble driving a Progressive Automations Micro Linear Actuator, part number PA-07-2-5 with PWM. the actuator disassembled It’s much simpler than I expected. Some circuitry, a small gearbox, and the piston, which is just an Acetal or UHMW bushing around a lead screw. front side of the control board Turns out that this thing isn’t just a couple limit switches and a motor, like they…

ATorch DL24 electronic load reversing

This page contains essentially my notes on reverse engineering the ATorch DL24 electronic load. Results here are very rough and this document has not been proofread. Prior work a very good description of the BLE protocol, but I only ran into this after I’d written this document python code to decode the serial protocol. Also points out that the BLE data is exactly the same as what can be found by…

ATorch DL24 electronic load method of operation

This is a follow-on to my previous post on this device. Unfortunately, the BLE protocol isn’t good enough for configuring the device, although it is fine for data logging. Because of that, I’ve dug into the circuit. The control happens on the display board. The connection is by a 8-pin JST-PH cable. Pin Signal Description 1 On/off Indicates whether the load is on or off 2 RX1 UART receive from…

Sony A7 camera power consumption

A friend recently suggested that putting their Sony A7ii camera in airplane mode improved their battery life. I don’t have a Sony A7ii camera, but I do have an earlier model, the Sony A7, and the right gear to test this. The setup: A photo of the test setup 2 multimeters, one measuring current, one measuring voltage External battery pack, 2x LG INR18650HG2 in series Sony A7 camera Results…

Improving Klipper startup time

I’m running Klipper & Octoprint on my Orange Pi Zero to control my 3d printer. Sometimes Klipper breaks, and power needs to be cycled to fix things. One big problem is that Klipper needs to be running all the time to control the hotend fan, since leaving it off for too long when the hotend is hot can cause clogs. At the moment, klipper only starts up 23s after the power is applied, as shown by…

Minimal ESP8266 schematic

I had a lot of trouble finding a correct & minimal ESP8266 schematic, so here’s what I’ve ended up with: ESP-WROOM-02 To program, hold SW1 while connecting the power pin. RST is not connected. It is possible to use IO0 and IO15 for other things, but to figure out how to do that, you’ll need to dig deeper into the manual . There’s an RC filter on EN to ensure the power supply is fully up before…

Making a power supply fan temperature-sensing

The Ender 5 contains a Landy LRS-350-24. This PSU is clearly a poorly-made and unlisted clone of the MEAN WELL LRS-350-24. It is a flyback power converter, using SMF18N50 s as the mains-side switches, and MBR20200 diodes as the output-side switches. The output-side diodes are marked DS1 and DS2. For the MBR20200, the relevant characteristics are: Characteristic Typ Vf, forward voltage drop 0.9V…

Reverse-engineering the Emporia Vue 2

Update We have a working ESPHome component for the Emporia Vue 2, thanks to the hard work of Alexandre-Jacques St-Jacques and Kodey Converse ! You can find instructions on setting it up here . If you run into any issues or need help, there’s also a discussion area . I grabbed a Emporia Vue 2 to keep track of my home’s energy usage, since it is one of the few listed WiFi energy monitors. However, I…

Cloning RF remotes using open source radio

I’ve recently purchased a RF LED strip controller, and it came with a remote. I thought it’d be interesting to see if I could use my SDRs to capture the signal and emulate it. The remote The remote is a marvel of cost engineering. It operates around 434MHz. One side has a 3 by 7 array of pads for rubber dome buttons (molded into the top plastic on the remote), and the other side has the circuitry…

Getting started with the nRF52 & Thread

These are some personal notes for working with nRF52 hardware. The official documentation is oddly written and expects both too much and too little prior knowledge from the reader. Running the Thread CLI Thread has a CLI that allows you to manage your Thread network. It’s a good place to start since it’s easy to verify that everything is working right. Required downloads…

Understanding scrolling and hi-res scrolling on Linux

I’ve recently purchased a Logitech MX Master 3. One of the cool features is that it supports smooth & high resolution scrolling: it can turn a barely perceptable movement of the scroll wheel into a pixel or two of scroll. However, when I scroll inside Firefox, I get 3 lines of movement every so often! And I need to wait what feels like 100ms between moving the scroll wheel and seeing the page…

Performance of HTTP compression in embedded systems

Embedded systems these days frequently need to serve up HTML pages, but in most cases, both the processor and the network interfaces are very slow. It’s important to find the right balance of gzip compression ratio to reduce the page load time of these devices, with the goal being to minimize the total amount of time from when the request is made to when the response is fully recieved. gzip…

Avoiding Citi's session timeout

One annoying thing that banks like to do is to timeout any sessions that don’t have activity for a certain number of minutes. This is incredibly annoying because sometimes you’re waiting in a queue and you won’t want to be constantly wiggling the mouse. So here’s a fix for Citi’s website: setInterval (() => { const continueSessionButt = document . evaluate ( " //button[contains(., 'Continue…

SpO2 Sensor Teardown

I got my hands on a Masimo LNCS Adtx single-use adult SpO2 sensor and was curious to see what’s in there and why it’s a $20 part. It’s very simple. There’s a red LED: Closeup of the LED And a photodiode that ends up on the opposite side of the finger. The forward voltage of the photodiode is 0.65V in my testing. Closeup of the photodiode Also interesting is the shielding over the photodiode. Even…

LED Grow Light Teardown

The rear of the GLS-54W5F grow light from superbrightleds.com. The inside of the back cover, where all the electronics are. There are 4 constant-current power supplies for the LEDs, and another constant-current (115mA) power supply for the fans. The fans are two 80×80×15mm fans, 24V, 150mA, wired in serial. The aluminum circuit board is cleverly designed to wedge in under the fan lip and apply…

Fix Slow Local Name Resolution

I was having some trouble with it takeing about 10 seconds to resolve names on the local network like tight-seat.local . My network stack is systemd-networkd and systemd-resolved, and it turns out that the issue here is that both these programs default to enabling LLMNR , a protocol invented by Microsoft that failed to be standardized because the standardization bodies realized that mDNS already…

Reverse Engineering Milwaukee M12 Battery Packs

Correction : A previous version of this post said the resistors were 10Ω. They are actually 1kΩ. I was curious about what the insides of Milwaukee’s M12 battery packs look like, and it turns out it’s fairly simple: Schematic for the M12 battery pack There’s some things that aren’t visible from the schematic: The connector pinout is done CCW, just like an IC. R1 and R2 are 0603 resistors, so…

Making beautiful SVG schematics

I really enjoy the way that the following schematic looks, so I might as well document the process of creating it before I forget. Example schematic Software Used Inkscape KiCad SVGOMG Steps Export the KiCad schematic to SVG by navigating to “File” → “Plot…”. Then select the output directory, SVG output, and output mode. Then “Plot Current Page” to export the SVG: Export settings The, in Inkscape,…

Fixing broken name resolution after sleep

I’ve been having trouble resolving domains on my laptop after resuming from sleep, i.e. trying to load a website gets stuck forever since the system isn’t able to resolve “google.com” to “64.233.185.101”. I use systemd-resolved on this system to do the work of resolving names. Checking the logs shows that it’s unable to start after waking: systemd-resolved[4659]: Positive Trust Anchors:…

KiCad footprints from drawings

Introduction Many packages don’t have KiCad footprints, and KiCad’s system doesn’t exactly make it the easiest to create create footprints from a drawing. However, there’s another open-source tool that makes creating properly dimensioned polygons easy, and that’s FreeCAD. Importing drawing The first step in the process is to get the drawing from the datasheet and into FreeCAD, where you can then…

Testing a nickel band material

I recently purchased a “pure nickel” band for use in building a battery pack. Store listing for nickel band However, from various forum posts, I’ve learned that it’s unlikely that these strips are really made up of what they claim to be made up of, so I decided to test the product. By weight When measured on a scale, the product I received was \(156\mathrm{g}\). The volume, as calculated from the…

Taking apart a failed 10W LED bulb

The bulb I’ve had a GE LED11DAV3/827W bulb in the hallway for quite a while, but it has the habit of flickering on & off almost immediately after flipping the switch. I was curious about what was causing this, so I decided to take it apart. PSU PCB Here are some shots of the power PCB after carefully removing the glass cover & the heat transfer potting: Bottom of main PCB Top of main PCB, with BJT…

Mark-It: Amazon Go, without the AI (HackGSU F18)

Amazon Go stores are cool–you walk in, take an item, and walk out, and the cameras in the ceiling figure out how much to charge you. All this camera and AI stuff is good PR for Amazon, but we decided to try to do better: this system of operation requires a lot of expensive gear to be installed throughout the store, and requires signficant investment in R&D. Its cost also rises linearly with the…

Connecting to GSU's HPC cluster from Linux

Connecting to GSU’s HPC cluster from Linux GSU puts their HPC cluster behind a firewall, so it’s impossible to SSH in from the public internet. Fortunately they provide a VPN service to enter the network with, which is publicly available at secureaccess.gsu.edu. Unfortunately, they don’t provide instructions on how to use this service from Linux. The openconnect project implements the VPN protocol…

Configuring a libvirt Windows VM

This was a massive pain, so I’ve written up this post for my reference. I went through lots of twists an turns to get to this point so it’s probably incomplete. You’ll be required to solve some problems on your own (the horror!), but it includes lots of links to documentation and should at least be a starting point. My goals were: Minimal disk space. My SSD isn’t infinite, and I want to have…

Blocking rouge DHCP servers with firewalld

Track down the servers Open up Wireshark, and start a capture on the interface the rouge servers operate on. Filter for “bootp”, the DHCP protocol, and either perform your own DHCP requests or wait for someone else to do some. You’ll get some output like this: Wireshark screenshot, with the good server selected You’ll need to figure out which of the servers is good, and which are bad. A few hints:…

Generating tileable textures with wavelet decompose

When redesigning this website, I wanted a subtle paper background texture. I couldn’t find anything online that fit my needs, and honestly, I wanted to try doing it myself. So I got out my camera, set it to RAW 1 , and took a super-closeup picture of a sheet of paper. I got this: I promise the paper grain is in there! This is obviously not going to tile. First off, I don’t have a fancy lighting…

Forgot to fill your water bottle? Have your phone remind you! (HackGSU S18)

Our incredibly polished final product. How it works Our goal is to measure the height of the water, so we turn the water bottle into one big capacitor. By coincidence, this is exactly what I was covering in Physics class at the time! The equation for capacitance is \(C=\varepsilon{}A/d\) , where \(\varepsilon\) is some fundamental constant (i.e. never change), \(d\) is the separation of the plates…

Open Sesame: Unlock doors… with your face (HackPrinceton S18)

I’ve spent 3/4 weekends over the past month developing various things for hackathons, and one of the most interesting ideas that I’ve come across is using Azure’s Face API in physical products. At HackPrinceton this spring, Leon Wu, Imanuel Sonubi, Natasha Hanley, and I developed a deadbolt that would automatically unlock the door when authorized users walk in front of the door : Our final project…

Porta Potty Patrol: Detect dirty toilets (HackGSU F17)

I attended HackGSU again, and again had a great time and won second place! Our (me, Jimmy Pham, and Lee Klarich) project was a toilet stall that detects when it is dirty. Here’s our prototype: The source code is availble on GitHub . How it works The way that we do that is really intersting. We take advantage of typical human behavior, like not wanting to use a dirty stall. We detect the following…

SmartBar: Computer-assisted curls (HackGSU S17)

I attended HackGSU last weekend, and it was my first hackathon. I worked in a team with Kevin Aiken, Lee Klarich, and Cameron McRae, all of whom are friends from GSMST . We produced the SmartBar , a barbell which counted the number of reps done and measured imbalances. Our project won the Covello Prize for the best sports hack . The SmartBar being held by M. Cole Jones of covello. Photo: Lee…

Making Docker and hostapd work together

At some point, I ran pacman -Syu and was surprised to see that I could no longer connect to the internet from my phone! I use hostapd to use my desktop PC as a wireless hotspot, and something in the update broke my configuration. I soon discovered that if I disabled the Docker service, then my WiFi would work fine after I restarted my system, but break when I started Docker! So it was some sort of…

noiselib example outputs

I planned to write a game nearly 3 years ago (wow, it’s already been 3 years!). A core concept in that game was that the world be procedurally generated, so I decided that I had to implement several algorims for procedural generation. flaviut/noiselib is the result of that effort. I never actually wrote my game, and I never implemented any other game mechanics. Anyway, I recently decided to…

Using Nim with CircleCI

Using Nim with CircleCI is fairly easy, the same instructions can be used for bootstrapping as usual. What is CircleCI? CircleCI is a new continuous integration service that is particularly suitable for open source projects. They allow 1 free VM for all projects, and 4 free VMs if you attach it to a Github repo. It seems to use the same model as Github and Bitbucket: Free for individuals and OSS,…