Category Archives: Tech

Plotting v2 using my old 3D printer

My previous plotter test was using my old Laser-cutter, I sold this one, because I wanted a better one.

So, I was thinking about repurposing my old 3D printer as Plotter/CNC machine.

Pen holder in above post was GCODE controlled, but I lost it somewhere. Now not needed because i’ve got a bedslinger 3D printer with Z axis instead of using a X/Y lasercutter frame.

Using Inkscape and OpenScad (to design a pen holder see below)

In Inkscape you need the Gcodetool extention

UPDATE:

Some text writing using Hershey fonts.

Below a python script to move X/Y in the GCODE

#!/usr/bin/env python3
import re
import sys

OFFSET_X = 40.0
OFFSET_Y = 80.0


def shift_gcode(input_file, output_file):
    coord_re = re.compile(r'([XY])([-+]?\d*\.?\d+)')

    with open(input_file, "r", encoding="utf-8", errors="ignore") as f:
        lines = f.readlines()

    with open(output_file, "w", encoding="utf-8") as f:
        for line in lines:

            def replace_coord(match):
                axis = match.group(1)
                value = float(match.group(2))

                if axis == "X":
                    value += OFFSET_X
                elif axis == "Y":
                    value += OFFSET_Y

                if value.is_integer():
                    value = int(value)

                return f"{axis}{value}"

            line = coord_re.sub(replace_coord, line)
            f.write(line)


if __name__ == "__main__":
    if len(sys.argv) != 3:
        print(f"Usage: {sys.argv[0]} input.gcode output.gcode")
        sys.exit(1)

    shift_gcode(sys.argv[1], sys.argv[2])
    print(f"Shifted X/Y by {OFFSET_X} x {OFFSET_Y} mm: {sys.argv[1]} -> {sys.argv[2]}")

Pen height adjusted using sed

sed -i "s/Z0.0/Z1.5/g" example.gcode

Old radio part 2

So this week I made a Magic Eye replacement using an ESP32, Microphone and a round display.

Maybe I have to fix the black dot (bigger) the lines on the 3D printed part will be invisible when placed in the radio frame.
We’ll see.

Today I made some code to switch to different playlists, using triggers.

  • Multiple playlists containing mp3’s which will be played in order
  • I can trigger at any time a moment that static will be mixed in
  • After the static I can play a new playlist

So this will emulate turning into a radio channel and searching for the next channel

Little demo below

For tuning I will use potentiometer or a rotary encoder to select playlists, using the original knobs below.

Flashing a new ROM on an Android tablet.

It has been a long time, since I flashed the last one.
Some things have changed.

I’ve flashed tablets and phones, now a tablet again.

The small tablet was really slow, and could not be upgraded to support a new webkit version.

So I installed a minimal Lineage OS on it.

Now it can be used as a immich web kiosk.

Some notes for myself

adb reboot bootloader
adb fastboot oem unlock
fastboot flash recovery twrp-3.7.0_9-1-flo_followmsi.img # this didn´t work, needed an older version
twrp-3.3.0-0-flo.img worked
adb push lanchon-repit-20210221-system=max-cache=16M+wipe-flo.zip /tmp/lanchon-repit-20210221-system=max-cache=16M+wipe-flo.zip
also lineage-20.0-20230830-UNOFFICIAL-flo.zip
adb install -r F-Droid.apk
adb install -r Rotation+Control_1.1_APKPure.apk # This because trebuchet rotate is broken.

While waiting for flashing, I installed nerdfonts, and patched them with cool icons. Then I installed superfile, a terminal file manager. Nice!

Installed Euro Office in a new Nextcloud instance.

I wanted to migrate the last documents I have in google drive to my own netcloud instance with wordproccessing.

I the past I tried Collabora.

But today Nextcloud Hub 26 came out. WITH euro office!

Euro-Office is a FOSS office suite and collaborative software platform based on OnlyOffice that provides editors for documents, spreadsheets, presentations, and PDFs. The software includes web-based, desktop, and mobile applications designed for document creation, editing, and collaborative work

I installed Nextcloud AIO (all in one), using docker.
Easy peasy.

Even the configuration for reverse proxies are well documented.
And almost perfect (more on this futher down this post)

I tried to open an office document, but it gave me an error.

I’ve seen this mentioned online in forums. (The software is very new, and not well tested yet)
But I found the sollution to this issue. I needed to change the configuration of my apache reverse proxy.

Below in white the part of the config change. Everything else is as documented on : https://github.com/nextcloud/all-in-one

SCREENSHOT IS NOT THE FINAL ONE : WS (WEBSOCKET) is not localhost 🙂

Nintendo Switch controller fix, and Lora measurements

One moment playing with LoRa. Next, a Nintendo Switch controller to fixed.

Side buttons or whatever you call them didn’t work anymore, so I replaced the flex PCB.

LoRa Antenna measurements

Using my NanoVNA and a RF test Kit I learned something about measuring antenna.

Below a measurement of a unknown antenna, ITs off, I need to shorten the metal spring inside.

Analog Meters to display CPU and memory load

While this is a old project from 2019, I decided to make a more responsive one, after my friend Tyrone mentioned a project somewhere on the internet (forgot where).
Time to dust off this project!

2019 version

Above version worked but was slow.
I used a python script to send values to de controller.

Memory setup was the same.

Below my new schematic, using an opamp to drive the analog meter.

Untested design .. Yeah I got bored on new year’s eve

Utilizing a MCP41000 digital potmeter and a LM358 signal amplifier I hope to get a more responsive setup.

Input to display MQTT and maybe Serial.

Old version

Made a JavaScript plugin for Hydra

Control your effects using MQTT.

You can add anything to control your effects using RotaryEncoders, sensors and other data values.

I’m fixing the code to make use of free MQTT servers on the internet.
Then I’ll post the JavaScript in the Hydra forum or discord.


Calling the JavaScript in https://hydra.ojack.xyz/ website

https://gist.githubusercontent.com/fashice/2098d1301117b86caed94aca8f2101ff/raw/7d2a7300e7ddf42d4f1793f693dbb517e09bd2d8/gistfile1.txt
change mqtt server and add to hydra using
await loadScript("https://domain/script.js¨);

Working on a (C64) handheld probe oscilloscope

These will be available in my shop.

Probably a webpage with measured examples is usefull.

There is a cover for the pogo pin which holds the ground clamp

Handheld device to measure voltages and make screenshots using an application.

Control over serial

  • Select USB device to connect
  • Start a capture to screen
  • Clear (redraw probe screen)
  • Rotate screen for left/right-handed people and easy reading
  • Sample time speed in microseconds
  • 5V reading but 15 volt tolerant, due to the SID pins
  • ??? love to hear ideas

I’m currently working on streaming output.

Below, an example of screenshotting.

Below, measuring outputs from a NE555 (dutch comments)

WHY2025

In case of doubt .. MORE LEDS!

We went to WHY2025 a hackers camp in the Netherlands.

The first time I went was in 1997, with Bigred.
Many followed after that.
Tyrone, Bigred were also there from our old Crew.
Coline joined me several times since 2005.

I joined the Badge team, and was making spacers for the Badges in bulk using my 3D printer.
Also made some fancy cases.

In case of doubt .. more leds!

Nice weather, good friends. New friends. Booze. Food and Hacking.
We visited a lot of talks and enjoyed the music. (And fire)

I worked on: RSS feed on a epaper display, Midi monitor and the MQTT Pong website.

RSS Feed display

While waiting in line for the Badge:

A stone was passed from behind!
It was a ping request. We passed it forward, and 15 minutes later a TTL time exceeded stone came from the front of the line.
You gotta love those nerds!

The Badge:
This should have got much potential ..
Many misses, much to learn.

Sadly broken:

Our 7M Led string attached to Bigred’s Antenna.