How much fun …. just wanted to share my recording
I’ve written some tools for my keyboard like a mqtt client, but this is someone else’s. But it gave me some ideas …
My keyboard is a Razer BlackWidow V3
How much fun …. just wanted to share my recording
I’ve written some tools for my keyboard like a mqtt client, but this is someone else’s. But it gave me some ideas …
My keyboard is a Razer BlackWidow V3
Another good suggestion by Bigred.
We are all getting older and electronics smaller. It’s hard to see if your soldering blobs are okay!
Those blobs can reflect the light in a way that it’s not visible anymore to check them.
So i took Bigreds advice, and bought a G1200 Microscope.
It’s a cheap but helpfull little gadget.
Below some examples:
SDCard Access:
Access to the sdcard is a little hard. Connecting via Mass Storage is a solution. But i’ve put a little piece of tape to get the card in or out of the slot.
You can view the recordings on the Microscope itself. So i was wondering, can it play any other movie files?
I placed different MOV files on the sdcard, but the microscope skipped the ones i places on the sdcard myself.
I started to look at the metadata, and saw a Codec ID
“qt 2016.04.21 (qt )”
mediainfo VID_001.MOV General Complete name : VID_001.MOV Format : MPEG-4 Format profile : QuickTime Codec ID : qt 2016.04.21 (qt ) File size : 551 MiB Duration : 12s 0ms Overall bit rate : 385 Mbps Encoded date : UTC 1904-01-01 00:00:00 Tagged date : UTC 1904-01-01 00:00:00 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : Main@L4.1 Format settings, CABAC : Yes Format settings, ReFrames : 1 frame Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 12s 0ms Source duration : 12s 360ms Bit rate : 14.5 Mbps Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 25.000 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.280 Stream size : 20.8 MiB (4%) Source stream size : 21.3 MiB (4%) Language : 33 Encoded date : UTC 1904-01-01 00:00:00 Tagged date : UTC 1904-01-01 00:00:00 mdhd_Duration : 12000 Audio ID : 2 Format : PCM Format settings, Endianness : Little Format settings, Sign : Signed Codec ID : sowt Duration : 12s 0ms Source duration : 12s 288ms Bit rate mode : Constant Bit rate : 128 Kbps Channel(s) : 1 channel Channel positions : Front: C Sampling rate : 8 000 Hz Bit depth : 16 bits Stream size : 188 KiB (0%) Source stream size : 192 KiB (0%) Language : 33 Default : Yes Alternate group : 1 Encoded date : UTC 1904-01-01 00:00:00 Tagged date : UTC 1904-01-01 00:00:00
Tried to change this with ffmpeg, but it would not change the way i want.
ffmpeg -i VID_002.MOV -c copy -map 0 -brand 'qt 2016.04.21 (qt )' VID_007.MOV mediainfo VID_007.MOV General Complete name : VID_007.MOV Format : MPEG-4 Format profile : QuickTime Codec ID : qt 0000.02 (qt ) <--------------- nope
Header of the movie clip
maybe i have to look into this … later
00000000 00 00 00 14 66 74 79 70 71 74 20 20 20 16 04 21 |....ftypqt ..!| 00000010 71 74 20 20 00 00 00 08 77 69 64 65 01 57 c7 e4 |qt ....wide.W..| 00000020 6d 64 61 74 00 00 01 d8 0c 00 00 00 4a 4b 4c 4a |mdat........JKLJ| 00000030 19 00 00 00 80 07 00 00 38 04 00 00 01 00 00 00 |........8.......| 00000040 10 00 00 00 40 1f 00 00 00 20 00 00 01 00 00 00 |....@.... ......| 00000050 0c 00 00 00 73 6f 77 74 00 02 00 00 00 00 00 00 |....sowt........| 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Back from the hackers event “May Contain Hackers”
MCH2022 is a nonprofit outdoor hacker camp taking place in Zeewolde, the Netherlands, July 22 to 26 2022. The event is organized for and by volunteers from the worldwide hacker community.
Knowledge sharing, technological advancement, experimentation, connecting with your hacker peers and hacking are some of the core values of this event.
MCH2022 is the successor of a string of similar events happening every four years since 1989.
These are GHP, HEU, HIP, HAL, WTH, HAR, OHM and SHA.
I’ve bin to several of these big events. Besides these big events are many different smaller events (wannull, ne2000 etc).
First one i’ve been was HIP97. I went with Bigred at that time.
I had to get the tickets at that time, he didn’t had a handle at that time. It was Monique who came up with his new nick.
After HIP97 there was HAL2001 WTH2005 and OHM2013 which i was present.
HAL2001 the whole ICEcrew was present, WTH a part of them, OHM a few and i was with a few PRUTS friends.
Now i was with my girlfriend, AND with Bigred again!
Loads of fun and memories. Had not seen Bigred since a inbetween hacker party at my place.
So ’97 and now ’22 .. jeez 25 years!
So MCH, it was great again.
Loads of stuff to do and to see.
Weather was … okay. Two days where really hot, one day some light rain but a load of wind. Our neighbours tent collapsed, beer tents where reenforced.
First campsite with a supermarket!
Music stage was awesome, lasers and fire!
I went to a lot of talks, even my girlfriend found some she was interested in.
This was the last time i’ve brought my “Windows free zone tape”
This big roll of tape was used on many occasions.
I got this roll somewhere < 2000, I did a search but couldn’t find anything mentioning it on the web. Maybe some archive.org entry?
Besides the talks i’ve done some workshops:
Meanwhile we where looking at all the villages and hackerspaces. Loads of interesting people to meet. Like our neighbour two tents futher, he was also a home-brewer, and he brought a minifridge with beer taps connected to it.
When back at our tent or Bigreds Campervan, we talked about differences now and then. New technology, what we’ve been upto in the last years and tinkering, loads of tinkering.
I’ve brough a big plastic container with .. ehh “things to do ….”
Wrote some 6502 assembly, arduino sketches, php, bash and micropython.
While playing around with the badge i got some things working easily.
Spinning logo and blinky leds.
Next goal to achieve was, to get the gyroscope to control the angle of spinning.
Most of the code worked, but the gyro values stayed zero!
(After many hours …. you have to start/enable the chip/measurements on the bno055 first! .. duh! )
I didn’t had my dev directory from my main battlestation synced in my nextcloud, so changing things for the 6502 was a b*tch.
Used vasm and acme to generate a bin file to use to fill the rom.
Didn’t like the eeprom programmer program, because i could not easily check the rom contents.
Have to look into that later on.
While learning to use Kicad, which i only had been using to draw schematics (besides fritzing) , i learned to create a pcb.
Which gave me the idea to make a print for the power-on-reset for the 6502. Which is going to be the first PCB by ordering, instead of the old skool messing around with DIY print making. (see next post)
….. Oh, why my display was not working?
I even connected my 8bit logic analyzer to the pins of the display.
Everything was correct.
But i didn’t use a variable resistor for the contrast. Just a simple resistor i could find. Luckily … bigreds stash.
All those hours debugging, all for one resistor!
(I have to mention, we had a suspicion halfway. But it was too hot and we where too lazy to go to Bigred’s campervan, to get a potentiometer. )
Almost … friday will be the day i’ll attend May Contain Hackers.
Besides the awesome villages and talks.
UPDATE: 20220727
UPDATE: 20220812
You get a hackable badge, this one is more amazing as previous versions.
I can’t wait to have a go at this cool gadget. I personally could do without the pcb fancy design.
Downloadable apps, micro python, Arduino ide programming.
All kinds of GPIO pins, leds buttons, sound.
Check out https://hatchery.badge.team/
You can play with this virtually here!
https://wokwi.com/projects/335445228923126356
So much potential! Great start for a DIY project.
I won’t post about the workings, thats all well documented online.
I shall post about the hacks/findings i personally did.
UPDATE: 20220727
Made a micropython program to keep your NameTag level to the ground (Better version)
UPDATE: 20220812
Someone made a 8bit logic analyser using the pmod connector !
Big mistake 😉 It a Linux ARM system with Busybox
Less do some searching on the web.
Ah .. enable telnet
Open in a browser:
http://192.168.1.x/admin/cgi-bin/debug.cgi
Enable telnet:
Connect and install Pong:
telnet 192.168.1.x (username root) # wget http://agilo.acjs.net/files/mppong/setup.sh # chmod 755 setup.sh # ./setup.sh # ./start.sh # ./start.sh musicpal # For the normal player
Links i have to look into:
https://www.qemu.org/docs/master/system/arm/musicpal.html
Old ones
Playing around with these i made a :
Androids
Work phones
Organizers
Organizing programs
A box with macro buttons for your PC using Arduino Leonardo
#include <Keypad.h> // matrix read #include <Keyboard.h> // keyboard out #define ENABLE_PULLUPS // fuck the resistors #define NUMBUTTONS 25 // matrix #define NUMROWS 5 // matrix rows #define NUMCOLS 5 // matrix cols int analog1 = A3; int analog2 = A7; int inPinctrl = 3; // function ctrl, pull to vcc int inPinalt = 4; // function alt, pull to vcc int valctrl = 0; // variable to store shifter int valalt = 0; // variable to store shifter int joyx = 0; int joyy = 0; //define the symbols per key char buttons[NUMROWS][NUMCOLS] = { {'q','w','e','r','t'}, {'y','u','i','o','p'}, {'a','s','d','f','g'}, {'h','j','k','l','z'}, {'x','c','v','b','n'}, }; // q-1 (star) e-zoomin r-prev t-up // y-2 u-clearstar o-open p-down // a-3 (rate) d-zoomreset f-full g-left // h-4 j-clearrate l-esc z-right // x-5 c-slideshow v=zoomout b-next // 14 16 10 9 8 // 21 q y a h x // 20 w u s j c // 19 e i d k v // 18 t p g z n // 15 r o f l b byte rowPins[NUMROWS] = {16,20,19,18,15}; //connect to the row pinouts of the keypad byte colPins[NUMCOLS] = {14,7,10,9,8}; //connect to the column pinouts of the keypad //initialize an instance of class NewKeypad Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS); void setup() { Serial.begin(115200); // debug out baud pinMode(inPinctrl, INPUT); // sets the digital pin 3 as input pinMode(inPinalt, INPUT); // sets the digital pin 4 as input digitalWrite(inPinctrl, HIGH); // turn on pullup resistors digitalWrite(inPinalt, HIGH); // turn on pullup resistors Keyboard.begin(); // keyb starter } void loop() { // loop the program CheckAllButtons(); // check tha buttons } void CheckAllButtons(void) { joyx = analogRead(analog1); joyy = analogRead(analog2); Serial.println(joyx); Serial.println(joyy); if (joyx > 900) { Keyboard.press(KEY_UP_ARROW); delay(150); Keyboard.releaseAll(); } if (joyx < 200) { Keyboard.press(KEY_DOWN_ARROW); delay(150); Keyboard.releaseAll(); } if (joyy > 900) { Keyboard.press(KEY_LEFT_ARROW); delay(150); Keyboard.releaseAll(); } if (joyy < 200) { Keyboard.press(KEY_RIGHT_ARROW); delay(150); Keyboard.releaseAll(); } char key = buttbx.getKey(); if (key != NO_KEY) { valctrl = digitalRead(inPinctrl); // read the function pin valalt = digitalRead(inPinalt); // read the function pin Serial.write(valctrl); // debug Serial.println(); // enter Serial.write(valalt); // debug Serial.println(); // enter Serial.write(key); // debug Serial.println(); // enter // button 1 if (key == 'q') { if (valctrl == 0) { // function shifter active? Keyboard.press(KEY_LEFT_CTRL); } if (valalt == 0) { // function shifter active? Keyboard.press(KEY_LEFT_ALT); } Keyboard.press('1'); delay(150); Keyboard.releaseAll(); } // button 2 if (key == 'y') { if (valctrl == 0) { // function shifter active? Keyboard.press(KEY_LEFT_CTRL); } if (valalt == 0) { // function shifter active? Keyboard.press(KEY_LEFT_ALT); } Keyboard.press('2'); delay(150); Keyboard.releaseAll(); } // button 3 if (key == 'a') { if (valctrl == 0) { // function shifter active? Keyboard.press(KEY_LEFT_CTRL); } if (valalt == 0) { // function shifter active? Keyboard.press(KEY_LEFT_ALT); } Keyboard.press('3'); delay(150); Keyboard.releaseAll(); } // button 4 if (key == 'h') { if (valctrl == 0) { // function shifter active? Keyboard.press(KEY_LEFT_CTRL); } if (valalt == 0) { // function shifter active? Keyboard.press(KEY_LEFT_ALT); } Keyboard.press('4'); delay(150); Keyboard.releaseAll(); } // button 5 if (key == 'x') { if (valctrl == 0) { // function shifter active? Keyboard.press(KEY_LEFT_CTRL); } if (valalt == 0) { // function shifter active? Keyboard.press(KEY_LEFT_ALT); } Keyboard.press('5'); delay(150); Keyboard.releaseAll(); } // button i - clear rate if (key == 'i') { Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('0'); delay(150); Keyboard.releaseAll(); } // button k - clear label if (key == 'k') { Keyboard.press(KEY_LEFT_ALT); Keyboard.press('0'); delay(150); Keyboard.releaseAll(); } // button v - slideshow if (key == 'v') { Keyboard.press(KEY_ESC); Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('s'); delay(150); Keyboard.releaseAll(); } // button t - zoomin if (key == 't') { Keyboard.press('+'); delay(150); Keyboard.releaseAll(); } // button g - zoomreset if (key == 'g') { Keyboard.press('*'); delay(150); Keyboard.releaseAll(); } // button n - zoomout if (key == 'n') { Keyboard.press('-'); delay(150); Keyboard.releaseAll(); } //r o f l b // button r - prev if (key == 'r') { Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_LEFT_ARROW); delay(150); Keyboard.releaseAll(); } // button o - open if (key == 'o') { Keyboard.press(KEY_RETURN); delay(150); Keyboard.releaseAll(); } // button f - full if (key == 'f') { Keyboard.press('f'); delay(150); Keyboard.releaseAll(); } // button l - esc if (key == 'l') { Keyboard.press(KEY_ESC); delay(150); Keyboard.releaseAll(); } // button b - next if (key == 'b') { Keyboard.press(KEY_LEFT_CTRL); Keyboard.press(KEY_RIGHT_ARROW); delay(150); Keyboard.releaseAll(); } } }
I ordered a powerbank a while ago, which had to be shipped from china.
I got this, and tought “I’ve been scammed”
So i send a mail to the place i’ve ordered from, this was their answer.
You need to unscrew the adapter, in which you will find your ordered product.
Your product has been shipped in this way since they can still be difficult at customs.
And then the shipping will take longer again.
Opening the adaptor:
My order
Maybe you also have a white area to fill, here is a suggestion.
For years we collected picture frames, weird and ugly.
We wanted to have a collection of images in our staircase, to fill the white area.
The images are all something we like, have interest in or are personal.
It needed to be on 3 walls, so here was my first design.