Skip to content

Instantly share code, notes, and snippets.

@rroohhh
rroohhh / client.sh
Created February 3, 2017 21:21
gstreamer udp audio streaming
#!/bin/bash
gst-launch-1.0 -v udpsrc uri=udp://239.1.1.1:5000 caps="application/x-rtp,channels=(int)2,format=(string)S16LE,media=(string)audio,payload=(int)96,clock-rate=(int)44100,encoding-name=(string)L24" ! rtpL24depay ! audioconvert ! autoaudiosink sync=false
@rroohhh
rroohhh / stream.sh
Last active May 9, 2023 12:39
stream video to gpn badge
#!/bin/bash
xrandr --newmode "480x480_60.00" 17.50 480 496 536 592 480 483 493 500 -hsync +vsync
xrandr --addmode VIRTUAL1 480x480_60.00
xrandr --output VIRTUAL1 --mode 480x480_60.00 --left-of $(xrandr | head -n2 | tail -n1 | sed 's/\ .*$//g')
gst-launch-1.0 -q -e ximagesrc endx=479 endy=479 ! video/x-raw,format=BGRx,framerate=25/1,width=480,height=480 ! videoscale ! videoconvert ! videorate ! video/x-raw,format=RGB16,framerate=25/1,width=128,height=128 ! fdsink sync=false async=true | dd conv=swab bs=1024 | python3 -c "
import sys
import socket
import os
import time
@rroohhh
rroohhh / install.sh
Last active December 27, 2022 14:06
building go with mips softfloat support
# clone git
git clone https://github.com/golang/go
cd go
# checkout the correct commit for the patch
git checkout bad5abf64d76f9c302c084c5f62e6f70920d3c81
# apply the patch
git apply mips_softfloat.patch
# build go
cd src
./all.bash

We fit a exponential function for $f$: $f(V) = a \exp(V / s)$ and obtain $a \approx 0.02485702\ \mathrm{A}$ and $s \approx 0.229551831\ \mathrm{V}$. With this the deviation from the measured values from the total model $P(V) = 414\ \mathrm{mW} + V · 130 · f(V)$ is always below $8 \ \mathrm{mW}$, indeed it is atmost $\approx 3.19\ \mathrm{mW}$ and on average $\approx 1.28\ \mathrm{mW}$.

When not taking a fixed offset of $414\ \mathrm{mW}$, but instead also leave this as a variable of the fit, we obtain $\approx 412.3\ \mathrm{mW}$ for the offset, $a \approx 0.0249451511\ \mathrm{A}$ and $s \approx 0.229653915\ \mathrm{V}$ with a maximum error of $\approx 2.28\ \mathrm{mW}$ and a average error of $\approx{0.74}\ \mathrm{mW}$.

use nix::sys::socket::{
recvmmsg, sendmmsg, socket, AddressFamily, MsgFlags, MultHdrs, SockFlag, SockProtocol,
SockType, SockaddrIn,
};
use std::io::{IoSlice, IoSliceMut};
use std::str::FromStr;
fn main() {
let sock_addr = SockaddrIn::from_str("127.0.0.1:6790").unwrap();
#include <cinttypes>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <functional>
const uint8_t READ_FAILED = 0;
const uint8_t READ_SUCCESS = 1;
const uint8_t MAX_FIELDS = 8;
const uint32_t FIELDS_BUFFER_SIZE = 512;
#include <cinttypes>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <functional>
const uint8_t READ_FAILED = 0;
const uint8_t READ_SUCCESS = 1;
const uint8_t MAX_FIELDS = 8;
const uint32_t FIELDS_BUFFER_SIZE = 512;
diff --git a/src/modules/ws2812.py b/src/modules/ws2812.py
index d369f16..d716201 100644
--- a/src/modules/ws2812.py
+++ b/src/modules/ws2812.py
@@ -64,12 +64,16 @@ class Ws2812Phy:
max_pattern_length = max([sum(pattern) for pattern in self.patterns])
counter = Signal(max=max_pattern_length)
+
+ dummy = Signal(max = len(self.patterns))
diff --git a/src/modules/ws2812.py b/src/modules/ws2812.py
index d369f16..0787e7e 100644
--- a/src/modules/ws2812.py
+++ b/src/modules/ws2812.py
@@ -12,7 +12,7 @@ class Ws2812:
def __init__(self, out, led_number, channels_per_led=3, bits=8):
self.out = out
- self.parallel_in = Array(Array(Signal(bits) for _ in range(channels_per_led)) for _ in range(led_number))
+ self.parallel_in = Array(Array(Array(Signal(bits)) for _ in range(channels_per_led)) for _ in range(led_number))
[
Some(List(MetaList { ident: Ident { sym: fuseable, span: #0 bytes(0..0), is_raw: false },
paren_token: Paren,
nested: [
Meta(List(MetaList {
ident: Ident { sym: virtual_field, span: #0 bytes(0..0), is_raw: false },
paren_token: Paren,
nested: [
Meta(NameValue(MetaNameValue {
ident: Ident { sym: name, span: #0 bytes(0..0), is_raw: false },