Skip to content

Instantly share code, notes, and snippets.

View cnlohr's full-sized avatar

CNLohr cnlohr

View GitHub Profile
@cnlohr
cnlohr / gist:83719f445cc5c6614ae51270d683fdd4
Created December 4, 2016 03:57
HTC Vive Example Data Files
Controlled environment with LED, right on edge.
POST 0: 5 (55ab) - 48 fc 30 e1 ad da c4 39 f0
POST 0: 5 (55b1) - 48 fc 40 a7 b2 30 de db f9
POST 0: 5 (55b7) - 48 fc db 6d b7 18 46 82 1c
POST 0: 5 (55ba) - 48 fc 2a 34 bc 56 8d a2 f1
POST 0: 5 (55c0) - 48 fb fd f9 c0 7b 6b a8 0c
POST 0: 5 (55c3) - 48 fc 21 c0 c5 55 28 20 d3
POST 0: 5 (55c8) - 48 fc e3 85 ca 0f c6 8f 38
POST 0: 5 (55ce) - 48 fc c8 4b cf 70 e8 5c 50
@cnlohr
cnlohr / htc_vive_watchman_codes
Last active June 22, 2017 19:40
HTC Vive Watchman Hacking Codes!
So, the way this goes is I post my AVR code, then I post what the HTC Vive does.
The output is: POST 0: (# of bytes) (IMU Timecode MSBs) (All raw light data)
(All raw light data ends with [3 bytes, LSB timecode] [OTA CRC (probably ignore)])
Events (TIME): (LED CODE 1)/(TIME CODE 1/TIMECODE 2)/(LED CODE 2)/(TIME CODE 3/TIMECODE 4)...
//NOTICE: The funky encoding of the numbers, and the fact that paramters are read from the end of the data going forward.
//We know we're done when the # of parameters read is (# of bytes left*2)-1
/dts-v1/; /plugin/;
/ {
// compatible = "allwinner,sun50i-h5-mali",
// "arm,mali-450";// "allwinner,sun50i-h5";
fragment@0 {
target-path = "/";
__overlay__ {
@cnlohr
cnlohr / triangle_modified.c
Created June 16, 2018 16:58
Modified triangle.c from raspberry pi, showing significant slowdown with draw calls.
/*
Copyright (c) 2012, Broadcom Europe Ltd
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
@cnlohr
cnlohr / Kyocera-EP-C170N-KPDL.ppd
Created January 25, 2018 05:27
PPD File for CUPS Linux and OSX Printing for Kyocera EP C170N Printer
*PPD-Adobe: "4.3"
*%=============================================================================
*%
*% PPD file for Kyocera EP C170N (English)
*% Linux Version
*%
*% Copyright (C) 2000 KYOCERA CORPORATION.
*% Copyright (C) 2007 Revised Edition KYOCERA MITA CORPORATION.
*%
*% Permission is granted for redistribution of this file as long as this
@cnlohr
cnlohr / htc_vive_edid.txt
Created March 16, 2017 01:14
HTC Vive EDID
parse-edid
Checksum Correct
Section "Monitor"
Identifier "HTC-VIVE"
ModelName "HTC-VIVE"
VendorName "HVR"
# Monitor Model Year: 2016
# EDID version 1.3
@cnlohr
cnlohr / OpenVR Frame of reference change with cnovr
Created October 28, 2019 20:19
For converting from raw_and_uncalibrated to standing.
printf( "Conv: \n" );
struct HmdMatrix34_t mzerotoabs = cnovrstate->oSystem->GetRawZeroPoseToStandingAbsoluteTrackingPose();
printf( "%f %f %f %f\n", PFFOUR( mzerotoabs.m[0] ) );
printf( "%f %f %f %f\n", PFFOUR( mzerotoabs.m[1] ) );
printf( "%f %f %f %f\n", PFFOUR( mzerotoabs.m[2] ) );
cnovr_pose pstanding;
matrix44_to_pose( &pstanding, &mzerotoabs.m[0][0] );
printf( "%f %f %f %f %f %f %f %f\n", PFTHREE( pstanding.Pos ), PFFOUR( pstanding.Rot ), pstanding.Scale );
@cnlohr
cnlohr / tensigral_lamp touch.c
Last active March 13, 2020 18:47
Example of using software-defined touch buttons on the STM32F042.
#include "touch.h"
#include "systems.h"
uint8_t touch_calib[3];
uint8_t done_startup;
//DO_PD means we use the internal pull-down resistors to measure the capacitance
//if we define this to be 0, then it will use the internal pull-up resistors.
//I am still experimenting with both options to see which is better overall and
//in a lot of situations.
@cnlohr
cnlohr / .txt
Created October 19, 2020 06:29
How to dynamically test hdmi_timings with Raspberry Pi
Having a hard time getting the timings you want working? Try this.
config.txt:
Then execute this command (or put it in rc.local)
vcgencmd hdmi_timings 2880 0 55 10 55 1600 0 30 6 570 0 0 0 90 0 593000000 3 && tvservice -e "DMT 87" && tvservice -s
@cnlohr
cnlohr / gist:1979b6d1b52d3724ef64d6e706420b8a
Last active November 13, 2020 16:22
Issue with rendering order in HTML