Skip to content

Instantly share code, notes, and snippets.

View MicaelJarniac's full-sized avatar
💻

Micael Jarniac MicaelJarniac

💻
  • Micael Jarniac
  • 05:28 (UTC -03:00)
View GitHub Profile
@AncientJames
AncientJames / pixelmap.py
Created February 28, 2025 02:14
This is the TPC I used to pixel map the Fibrovisor ( https://www.youtube.com/watch?v=zz59e1wWyVc ). It uses rgbmatrix ( https://github.com/hzeller/rpi-rgb-led-matrix ) to light up one pixel at a time, and opencv to record the position of the brightest spot in the frame.
#!/usr/bin/env python
import time
import sys
import getpass
from rgbmatrix import RGBMatrix, RGBMatrixOptions
import cv2 as cv
options = RGBMatrixOptions()
options.hardware_mapping = 'regular'
@svyatogor
svyatogor / broadlink_to_tuya.py
Last active July 12, 2025 14:27
Convert SmartIR Broadlink commands to Tuya
@mildsunrise
mildsunrise / README.md
Last active August 11, 2025 06:25
Documentation of Tuya's weird compression scheme for IR codes

[Tuya][]'s IR blasters, like the [ZS08][], have the ability to both learn and blast generic IR codes. These IR codes are given to the user as an opaque string, like this:

A/IEiwFAAwbJAfIE8gSLIAUBiwFAC+ADAwuLAfIE8gSLAckBRx9AB0ADBskB8gTyBIsgBQGLAUALA4sB8gRAB8ADBfIEiwHJAeARLwHJAeAFAwHyBOC5LwGLAeA97wOLAfIE4RcfBYsB8gTyBEAFAYsB4AcrCYsB8gTyBIsByQHgPY8DyQHyBOAHAwHyBEAX4BVfBIsB8gTJoAMF8gSLAckB4BUvAckB4AEDBfIEiwHJAQ==

Not much is known about the format of these IR code strings, which makes it difficult to use codes obtained through other means (such as a

@andrewcchen
andrewcchen / tuya_ir_encode.js
Created August 13, 2023 19:44
Encode an NEC IR command into code for Tuya ZS06/ZS08/TS1201
/*
Encode an NEC IR command into code for Tuya ZS06/ZS08/TS1201
Usage: encode_nec("<four bytes in hex, two bytes of address followed by two bytes of command>")
If your address and/or command is just one byte (8 bits), append the complement of the byte after it to make it two bytes.
Example:
encode_nec("04fb08f7") // encodes nec address 0x04 and command 0x08
See:
Copy of deleted topic: https://www.reddit.com/r/gamedev/comments/jumvi5/dualsense_haptics_leds_and_more_hid_output_report/
---
outputReport[0] = 0x02; // report type
outputReport[1] = 0xff; // flags determiing what changes this packet will perform
// 0x01 set the main motors (also requires flag 0x02); setting this by itself will allow rumble to gracefully terminate and then re-enable audio haptics, whereas not setting it will kill the rumble instantly and re-enable audio haptics.
// 0x02 set the main motors (also requires flag 0x01; without bit 0x01 motors are allowed to time out without re-enabling audio haptics)
// 0x04 set the right trigger motor
@nirizr
nirizr / full_upsert.py
Last active September 28, 2023 23:19
sqlalchemy upsert supporting delayed ORM insertion and duplicate removal (inside a single query)
def upsert(session, model, rows):
table = model.__table__
stmt = postgresql.insert(table)
primary_keys = [key.name for key in inspect(table).primary_key]
update_dict = {c.name: c for c in stmt.excluded if not c.primary_key}
if not update_dict:
raise ValueError("insert_or_update resulted in an empty update_dict")
stmt = stmt.on_conflict_do_update(index_elements=primary_keys,

Demo:

Spoiler warning

Spoiler text. Note that it's important to have a space after the summary tag. You should be able to write any markdown you want inside the <details> tag... just make sure you close <details> afterward.

console.log("I'm a code block!");
@gboudreau
gboudreau / AuthyToOtherAuthenticator.md
Last active August 12, 2025 09:56 — forked from Ingramz/AuthyToOtherAuthenticator.md
Export TOTP tokens from Authy

Exporting your 2FA tokens from Authy to transfer them into another 2FA application

IMPORTANT - Update regarding deprecation of Authy desktop apps

Past August 2024, Authy stopped supported the desktop version of their apps:
See Authy is shutting down its desktop app | The 2FA app Authy will only be available on Android and iOS starting in August for details.

And indeed, after a while, Authy changed something in their backend which now prevents the old desktop app from logging in. If you are already logged in, then you are in luck, and you can follow the instructions below to export your tokens.

If you are not logged in anymore, but can find a backup of the necessary files, then restore those files, and re-install Authy 2.2.3 following the instructions below, and it should work as expected.

@kennedy
kennedy / BF888S_default_01012019.csv
Last active July 15, 2025 18:49
Baofeng BF888S default frequencies
Location Name Frequency Duplex Offset Tone rToneFreq cToneFreq DtcsCode DtcsPolarity Mode TStep Skip Comment URCALL RPT1CALL RPT2CALL DVCODE
1 462.125000 0.000000 TSQL 88.5 69.3 023 NN FM 5.00 S
2 462.225000 0.000000 88.5 88.5 023 NN FM 5.00 S
3 462.325000 0.000000 88.5 88.5 023 NN FM 5.00 S
4 462.425000 0.000000 TSQL 88.5 103.5 023 NN FM 5.00 S
5 462.525000 0.000000 TSQL 88.5 114.8 023 NN FM 5.00 S
6 462.625000 0.000000 TSQL 88.5 127.3 023 NN FM 5.00 S
7 462.725000 0.000000 TSQL 88.5 136.5 023 NN FM 5.00 S
8 462.825000 0.000000 TSQL 88.5 162.2 023 NN FM 5.00 S
9 462.925000 0.000000 DTCS 88.5 88.5 023 NN FM 5.00 S