Skip to content

Instantly share code, notes, and snippets.

View gargomoma's full-sized avatar

gargomoma

  • Madrid,Spain
View GitHub Profile
@gargomoma
gargomoma / .md
Created October 18, 2026 21:36
Using RNodes on Reticulum over (G)FSK and plain FSK

Using RNodes on Reticulum over (G)FSK and plain FSK

Status: CURRENT (2026-10-18). Written for people who want to run Reticulum over the RNodes' second modem — (G)FSK or plain 2-FSK — instead of LoRa.

Flashing is out of scope. This guide starts from a device that already runs the right firmware. Building and flashing it is covered by the RNode project's own tooling (rnodeconf, the Arduino build, UF2/DFU upload) and by this project's GFSK-STATUS.md §4–5.

@gargomoma
gargomoma / gist:96482e38471679c467baeb726aa3eedc
Created July 31, 2026 05:19
Fixing "Failed to open audio output" in moOde Audio with CamillaDSP (ARMv7)
# Fixing "Failed to open audio output" in moOde Audio with CamillaDSP (ARMv7)
## The Symptom
When enabling CamillaDSP in moOde Audio, music playback completely fails. MPD (Music Player Daemon) throws the following error in the UI:
`MPD error: Failed to open audio output`
Disabling CamillaDSP restores standard audio playback immediately.
## The Root Cause
{
"packages": [
{
"name": "promicro",
"maintainer": "pdcook",
"websiteURL": "https://github.com/pdcook/nRFMicro-Arduino-Core",
"email": "",
"help": {
"online": ""
},
@gargomoma
gargomoma / tinygs_sensors.yaml
Created October 31, 2023 16:54
A home assistant config package to track your TinyGs station
## Replace [STATION_ID] with your station ID
## you can retrieve it from the URL while checking your station status at tinygs.com
rest:
- resource: "https://api.tinygs.com/v1/station/[STATION_ID]"
scan_interval: 300
sensor:
- name: "TinyGs Satellite"
value_template: "{{ value_json.satellite }}"
- name: "TinyGs ConfirmedPackets"
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- GitLab -->
<remote name="gl" fetch="https://gitlab.com/" />
<!--android_device_google_gsXXX-->
<project path="device/google/gs-common" remote="aosp" name="device/google/gs-common" />
<project path="device/google/gs201" remote="statix" name="android_device_google_gs201" revision="tm-qpr2" />
<project path="device/google/gs201-sepolicy" remote="statix" name="android_device_google_gs201-sepolicy" revision="tm-qpr2" />
<project path="device/google/gs101" remote="statix" name="android_device_google_gs101" revision="tm-qpr2" />
@gargomoma
gargomoma / ssdp.py
Created April 5, 2023 08:02 — forked from dankrause/ssdp.py
Tiny python SSDP discovery library with no external dependencies
# Copyright 2014 Dan Krause
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
@gargomoma
gargomoma / extractParam.js
Created February 27, 2023 10:08
exctrac parameters from url
function extractParam(url,param){
var regex = new RegExp(`(?<=${param}=)[^&]+`);
var match = url.match(regex);
if (match) {
const result = match[0];
return result
}
}
@gargomoma
gargomoma / setBQDataSource.js
Created January 20, 2023 12:14
setBQDataSource is a GappS function to build/update your Big Query connections.
/////////////////////////////////////////////////////////////////////////////////
//setBQDataSource is a GappS function to build/update your Big Query connections.
//Ideal if you need to update or create multiple connections, making mantainers life easier.
//Imagination, life is your creation!
/////////////////////////////////////////////////////////////////////////////////
function setBQDataSource(ProjID,Query,SheetName,refreshAllLinkedObjects=true) {
SpreadsheetApp.enableBigQueryExecution(); //.enableAllDataSourcesExecution();
///////////////
var ss = SpreadsheetApp.getActive();
///////////////
@gargomoma
gargomoma / SQL_where_builder.py
Created January 10, 2023 15:44
python code for people that hates to do huge SQL queries
##
##Coming from your friendly neighborhood Spider-Man!
##
def chunkArray(ArrObj, length):
'''Splits a list on a list of lists given a lenght'''
return list(ArrObj[0+i:length+i] for i in range(0, len(ArrObj), length))
def where_in_builder(list_of_elements, var_to_filter,split_by=1_000,is_str=True,return_as_str=True):
'''Builds a IN(...) clause from a list, user can select either a single string or a list of IN(...) for each chunk'''
quotation = "'" if is_str else ""
@gargomoma
gargomoma / pySeleniumGoodies.py
Last active February 24, 2023 16:18
My essential imports and functions to play with Selenium on Python
###My essential imports and functions to play with Selenium on Python
import os
import sys
import threading
import time
import datetime as dt
from selenium import webdriver
from selenium.webdriver.common.by import By