Git Product home page Git Product logo

keepoff's Introduction

About Me

Twitter: qDot [Mastodon: qDot GitHub qdot Linkedin: kylemachulis

Youtube: Buttpluggin' With qDot Youtube: Poor Life Choices

Hi! I'm qDot (aka Kyle Machulis). I code all sorts of stuff, these days mostly in Rust.

You may know me from such open source projects as:

Ways to Hire Me or Sponsor My Work

Nonpolynomial Logo

I'm available for consulting in Haptics, VR, Virtual Worlds, hardware/driver development, and other topics via my company, Nonpolynomial.

Service Description
Github Sponsors If you like my work but are just interested in sponsoring instead of consulting, you can sponsor me on github! There are tier levels with perks like stickers, credits in my youtube videos, and 1:1 video conferences!
Patreon If Patreon works better for you, I've got one for my virtual world and DIY hardware (SFW) work, and one for my Intimate Haptics (NSFW) work
Ko-Fi If you're just interested in a one-off donation, I've got a Ko-Fi page just for that, which is a great way to donate and also get stickers or other perks without having a recurring donation.

Silly Github Profile Widgets

trophy

Github README Stats

Art Credits

Profile Pic by Gavin

Pixel Art Pic by RaineDoe

keepoff's People

Contributors

qdot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

keepoff's Issues

Figure out whether there is an accessible calibration sequence

Whenever the keepon boots with its normal firmware, it rotates itself until the pins on the circuit board line up with the bottom metal plate, to center the motors. When we ground out the bus, this doesn't happen. See what the master node sends on boot to know if there's a way we can trigger this calibration.

Update documentation/code for pullups and I2C Bus Speed

Original comment: http://disq.us/6iwldk?imp=cce7d05a-a21a-43d8-941c-a3e31ea21eee&thread=465932670&zone=email_notification&event=shortener_click


I just got my Arduino Mega controlling the MyKeeopn, and a few notes that people might find useful:

  • didn't need a 5v 3.3v converter, because I2C uses open-drain pins. Just connected both the I2C lines to the +3.3V supply from the Keepon through some pullup resistors
  • needed to manually change the Arduino I2C frequency from 100khz to 25khz (which is the Keepon's I2C freq) by adding this line before beginning any Wire commands (adds a 4x prescaler to the TWBR register):
    sbi(TWSR, TWPS0);

Thanks qdot for all the info, it was really helpful!


Turn off Wire I2C mode on keepon poweroff

If the keepon is powered off, we need to kick back into bootup mode so we can pull the bus pins low. Unfortunately, there's no Wire.end() call that will call twi_close() for us, meaning that twi still has its interrupts set on next keepon powerup and we can't pull the lines to stop the bus from communicating. We need to be able to stop the interrupts and go back to "normal".

Figure out how Device 0x55 Address 0x6 works (movement macros?)

Device 0x55 Address 0x6 is different than other Device 0x55 parts, since it only takes one byte as an argument (as seen from sniffing the bus). Running through the full range, the bot seems to respond to 32-36 (decimal) and 160-163 (decimal). Document the actions that happen when using these macros.

These seem to be things like "always sway" "movement on powerup" etc....

Make a damn kinect demo, already

We have OSC, all we need is something to calculate rotation of shoulder joints against torso, and pelvis to head. That'll get us enough control of the addressable motors to have a good demo.

Whoever gets to this one first, enjoy the media.

Find I2C device for buttons on master node

After grounding the bus, there's a chance the master node may be listening as a slave node on the I2C bus. Since the buttons are wired to the chip that normally runs as the master node, it would be nice to see if we can figure out how to access button data from it.

Decode motor status packet (12 byte return from Device 0x55)

Reading 12 bytes from device 0x55 gets us back a bunch of numbers. The chips onboard the keepon do this command once every 15ms, so there's probably something important in there.

Known: The last byte is the position of the forward/back bend motor (Device 0x55 Address 0x2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.