Slate of stone engraved using my Sculpfun S9 Engraver.
It will be placed next to our front door.
Doing a project using leather is something I do not often enough.
So I’m always looking for new ideas/projects.
This weekend, I made some straps for portable painting easels.
Keeping the poles of the tripod together with multiple straps and a longer leather strip allows for easy carrying on your back.
A simple project, I need some challenge next time!
My leather strip cutter I made in 2011.
I was working on a RP2040 HID project, but I needed some components I didn’t have … right now .. again ..
So I made something else ..
A tiny animator for stop motion animations using my webcam, python and OpenCV.
For claymotion or lego or whatever.
The program displays your webcam with the previous snapshot overlayed, so you can position everything relative to your previous snapshot.
Press B to take a frame.
CODE (short but you need OpenCV)
import cv2 from datetime import datetime # black is just a start empty image .. img=cv2.imread("black.png"); cap = cv2.VideoCapture(0) while True: ret,vid=cap.read() dim = (800,600) img1 = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) vid1 = cv2.resize(vid, dim, interpolation = cv2.INTER_AREA) result=cv2.addWeighted(img1,0.5,vid1,0.5,0) cv2.imshow('overlay', result) if(cv2.waitKey(10) & 0xFF == ord('b')): now = datetime.now() current_time = now.strftime("%d_%m_%Y_%H_%M_%S") filename = '%s.png' % current_time if not cv2.imwrite(filename, vid1): raise Exception("Could not write image") img=cv2.imread(filename);
Pressing B fills your directory with PNG’s
like 24_10_2023_00_01_01.png (date formatted)
convert to GIF
convert -delay 10 -loop 0 24*.png animation.gif
In previous post :
I mentioned a 2 ROM setup because the 8086 is 16bits instead of 8.
So I was wondering that maybe a recompile was needed, or the data being split over two roms (odd/even)
The guy from GLABios was so kind to build me two interleaved roms.
So while working on a padded bench, I tested the ROMs.
Back to the roms, it didn’t work!
But I missed a detail in the technical manual (the bold text)
In Turbo XT /2 and Turbo XT /3, there are two 28-pin sockets for ROM,
both of them are occupied by 2764 which stored the BIOS. The contents
of the two 2764 are identical. One of them contribute the ODD Byte to the system and the other EVEN Byte. Together they support 16 Bit BIOS
access.
I don’t know why this is how it works, but when I flashed two the same 28C64’s it worked!
(I also tought that is was strange that both original roms had the same markings.
It workes!
Only remarks/observations:
UPDATE
GLABios was not updated for displaying 8086 yet.
Error 1701 was the (old spinning) harddisk not being connected.
Today I was working on my own brew ISA card (wirewrapping).
Did some mini modeling stuff.
Sorted some pipetunes.
And played around with my 8086.
Got it on a desk now, and replaced the harddisk with the CF card.
Also got an old SoundBlaster working, so i wanted to see what of my old code could still run.
Apparanty most code was compiled for 386/486 🙁
So i recompiled some stuff.
Below a horizontal scroller example.
Meanwhile i got my new fans in for my NUC (Kodi player, it was making a hell of a noise due to bad ball bearings.
While working on a harmony for Irmgard and me in Musescore, i tought it would be nice to have it also in another notation.
Above a Musescore screenshot.
When using below button assignment, we can easily rewrite above into another notation.
Write musescore as MusicML/mxl Music xml.
Install xml2abc from https://wim.vree.org/svgParse/xml2abc.html
python xml2abc.py INPUTFILE.mxl output.abc
My abc file
X:1
T:Planxty Irwin
C:OCarolan
L:1/4
M:3/4
I:
K:G
V:1 treble nm="Henri" snm="H"
V:1
|: d | B2 d | c2 A | F2 A | G3/2 d/ B | A G F | G3/2 A/ B | D2 E | F2 d | B2 d | c2 A | F2 A |
G3/2 d/ B | A G F | G3/2 A/ B | e d c | B2 d | B3/2 c/ B | B G B | c3/2 d/ c | c A F | G d e |
c d e | d3/2 c/ A | d c A | B c d | c B A | F G A | G3/2 d/ B | A G F | G3/2 A/ B | e d c | B2 :|
Using below bash script you can convert this to PDF WITH concertina notations.
WARNING: I didn't include all keys (yet).
NOTE: Easy to adjust to other notations.
#!/bin/bash if [ $# -lt 2 ]; then print "script orgname convertname" exit 1 fi : > parced org=$1 abc=$2 cat $1 | awk '/^\|/ {exit} {print}' > header cat $1 | grep "|" | tr -d '[0-9]:/'> parse ( cat parse | while read ; do echo $REPLY echo -n "w: " for word in $(echo $REPLY) ; do if [ "$word" == "|" ] ; then echo -n " | " elif [ "$word" == "D" ] ; then echo -n " 2 "; elif [ "$word" == "G" ] ; then echo -n " 3 "; elif [ "$word" == "B" ] ; then echo -n " 4 "; elif [ "$word" == "d" ] ; then echo -n " 5 "; elif [ "$word" == "g" ] ; then echo -n " 6 "; elif [ "$word" == "b" ] ; then echo -n " 7 "; else echo -n " * " fi done echo "" echo -n "w: " for word in $(echo $REPLY) ; do if [ "$word" == "|" ] ; then echo -n " | " elif [ "$word" == "F" ] ; then echo -n " 2 "; elif [ "$word" == "A" ] ; then echo -n " 3 "; elif [ "$word" == "c" ] ; then echo -n " 4 "; elif [ "$word" == "e" ] ; then echo -n " 5 "; elif [ "$word" == "f" ] ; then echo -n " 6 "; elif [ "$word" == "a" ] ; then echo -n " 7 "; elif [ "$word" == "E" ] ; then echo -n " 4' "; # <============ example 2nd row else echo -n " * " fi done echo "" done ) >> parced cat header parced > $abc abcm2ps -x -O - "$abc" | ps2pdf -sPAPERSIZE=a4 - "$(echo $abc | cut -f2 -d/ | sed 's/abc/pdf/g')"
Example output (Harmony part)
Made a little design in blender.
A friend needed a seat in his man-cave, the same one I fitted with the mobile phone charging station, and wled ledstrings.
It is for below some stairs.
It’s a piece of wood (leftovers), some leather I still had lying around.
Scaffolding tubes, foam, some decorative nails and stage-tape.
I’ve got a nice stone slate, perfect for a door sign.
I wanted to paint our names and house number. But now that i’ve got a lasercutter, lets do that.
I’m going to use the design i’ve used for the Folkband Bags, and add some stuff.
First test on the back of the slate
Using a Sculpfun S9, Power 100 and speed 100mm/s
I will add the final result to this page