Skip to content

Instantly share code, notes, and snippets.

View agrif's full-sized avatar

agrif agrif

View GitHub Profile
@agrif
agrif / main.rs
Last active January 30, 2026 19:28
#![no_main]
#![no_std]
use core::fmt::Write;
use panic_halt as _;
use rk3506_m0_pac as pac;
struct Buffer<const N: usize>([u8; N], usize);
Upgrades started January 24, 2026.
[x] babel
[x] bifrost
[x] cartas
[x] erasmus
[ ] hyperion
[x] nara
[ ] zagreus
from __future__ import annotations
import dataclasses
import pathlib
import typing
import libfdt # type: ignore
class DeviceTree:
@agrif
agrif / 00-main.rs
Last active September 19, 2025 14:07
#![no_std]
#![no_main]
use rtt_target::rprintln;
extern crate panic_halt;
#[riscv_rt::entry]
fn main() -> ! {
rtt_target::rtt_init_print!();
@agrif
agrif / main.c
Last active September 15, 2025 17:15
void main(void) {
//uart->divisor = 234;
*leds = 0x0;
#define SLOTS 6
uint8_t times[SLOTS] = {0};
uint8_t subtime = 0;
while (true) {
*leds = 0;
@agrif
agrif / main.cpp
Created September 13, 2025 01:45
ReceiveCode samsung_vol_up("Samsung VOL UP", 'U', SAMSUNG, 0x707, 0x7);
ReceiveCode samsung_vol_down("Samsung VOL DOWN", 'D', SAMSUNG, 0x707, 0xb);
ReceiveCode samsung_mute("Samsung MUTE", 'M', SAMSUNG, 0x707, 0xf);
ReceiveSequence demo_seq("MMMU");
// Protocol=NEC Address=0xA5 Command=0xA
// Raw-Data=0xF50A5AA5 32 bits LSB first
TransmitRaw pioneer_vol_up("Pioneer VOL UP", {8580,4220, 580,1570, 530,520, 580,1570, 530,520, 580,520, 530,1570, 580,520, 530,1570, 580,520, 530,1570, 580,520, 530,1570, 580,1570, 530,520, 580,1570, 530,520, 580,520, 530,1570, 580,520, 530,1570, 580,520, 530,520, 580,520, 530,520, 580,1570, 530,520, 580,1570, 530,520, 580,1570, 530,1570, 580,1570, 530,1570, 580});
// Protocol=NEC Address=0xA5 Command=0xB
@agrif
agrif / test.cpp
Created September 13, 2025 01:03
#include <iostream>
class TransmitEventClass {
public:
size_t val;
TransmitEventClass(size_t val) : val(val) {}
};
// just to allow << on all TransmitEvent
std::ostream& operator<<(std::ostream& os, const TransmitEventClass& ev) {
import os
import subprocess
from amaranth.build import *
from amaranth.vendor import GowinPlatform
from .resources import *
__all__ = [
impl StateMachine for Simplex {
type InputAbove = PhysicalIn;
type InputBelow = HardwareOut;
type OutputAbove = PhysicalOut;
type OutputBelow = HardwareIn;
fn reset(&mut self) {
*self = Self::new_with(self.config.clone());
}
from gdb.unwinder import Unwinder
class FrameID:
def __init__(self, sp, pc):
self.sp = sp
self.pc = pc
class no_unwinder(Unwinder):
def __init__(self):
super().__init__("no_unwinder")