Skip to content

Instantly share code, notes, and snippets.

View erinzm's full-sized avatar
🌆
hmmmm

Erin Marshall erinzm

🌆
hmmmm
  • UW-Madison/Wisconsin Institute of Discovery
  • Madison, Wisconsin
View GitHub Profile
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
; This file contains all the help data for the HOST mode to allow
; the user to get online help for all the commands.
; There are 4 sections of commands, [CMDS], [GET], [SET] and [TEST]
; Each topic in a section is started by a : (colon). The next
; : (color) or section seen will end the topic.
[CMDS]
:INDEX
? ECHO HELP ABORT STOP
VERSION REMOTE LOCAL SHUTDOWN RIGHTS
DUMP RESET HARDHOME HOME SOFTHOME

Keybase proof

I hereby claim:

  • I am liamim on github.
  • I am archimedespi (https://keybase.io/archimedespi) on keybase.
  • I have a public key whose fingerprint is F1A1 745C 486D 2F41 794C A621 FE4E 860E 818B C54C

To claim this, I am signing this object:

@erinzm
erinzm / aoc_day_01.py
Last active December 1, 2016 07:58
AOC: Day 1
import re, math
with open('input') as f:
puzzleinput = f.read()
position=[0, 0]
face = 0 # along y axis, incrementing goes cw
dpos = {0: [0, 1], 1: [1, 0], 2: [0, -1], 3: [-1, 0]}
position_stack = [position[:]]; ans2_found = False
@erinzm
erinzm / gist:7a6655246e696f1d9e60916f4ce98c87
Created November 8, 2016 00:05
weechat buffers.pl server indentation
/set buffers.look.indenting on
/set irc.look.server_buffer independent
...then for each buffer, switch to it and:
/buffer move 1
...where 1 is the position you want to move the buffer (or you can do this w/ mouse if you have that setup)
Once buffers are where you want them:
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@erinzm
erinzm / fastmotorcontrol
Last active March 14, 2016 16:02
fast serial protocol for motor control
transmit to control
+----------+----------------+--------------------------------------------+
| motor id | motor position | motor flags (braking, locking, reset, etc) |
| 8 bits | 64 bits | 8 bits |
+----------+----------------+--------------------------------------------+
| |
\______________________________ 80 bits _________________________________/
maybe a status _on query_ (query might be pulling a line high and sending a motor id)
+--------------------+------------------+-----------------+
pip install -e acme[testing]
nosetests -v acme --exclude "acme.standalone_test.*"
pip install -r requirements.txt -e .[testing]
nosetests -v letsencrypt --exclude "letsencrypt.plugins.standalone_test.*"
pip install -e letsencrypt-apache
nosetests -v letsencrypt_apache
pip install -e letsencrypt-nginx
nosetests -v letsencrypt_nginx
pip install -e letshelp-letsencrypt
nosetests -v letshelp_letsencrypt
@erinzm
erinzm / ftc_opmode_startup.md
Created October 6, 2015 21:30
FTC SDK Opmode startup cheatsheet

When INIT is pressed:

  • init() is called
  • init_loop() is called repeatedly

When play is pressed:

  • start() is called
  • loop() is called repeatedly

When stop is pressed:

@erinzm
erinzm / lag.md
Last active November 23, 2015 00:12
writeup about finding electrical lag

Measuring lag on MR controllers

The important thing is remembering that what you want to measure is the time between pressing a button or joystick and the motor beginning to run. The best way to measure this is as follows (you need a digital oscilloscope):

  • Open up a Logitech joystick and solder in two little wires to the a button's pads so that you get a current when it's pressed. Wire these to channel A of an oscilloscope.
  • Attach a pair of leads to a motor controller. Wire these to channel B of an oscilloscope.
  • Write software to run the motor when the button is pressed. Make it as simple as possible.
  • Set the oscilloscope to trigger and acquire on channel A rise (or fall depending on the wiring). Then you can see the distance between the button signal's rising edge and the motor signal's rising edge.