Code Monkey home page Code Monkey logo

jankdrone's Introduction

jank: broken, meaningless, ridiculously moronic, or of questionable quality

jankdrone

The jankest autonomous drone ever built and programmed from scratch. Truly insulting to drones in general.

Hacker News Thread

Photo Album

Watch Jankdrone Fly! (and crash)

jankdrone

Dependencies

  • platformio
  • Python 3
  • Go
  • Protobuf

TODO

Software

  • Shared memory (SHM)
  • Threading
  • Logging
  • SHM message passing
    • Protocol
    • Server
    • Serial I/O
    • Bluetooth I/O (failed, signal too weak)
    • Radio I/O
    • Client terminal status GUI
    • Client command REPL
    • Handheld serial to radio map
    • Handheld control desire serialization
  • Flight controller (hexcopter / 2n-copter)
    • Absolute controls
      • Force
      • Yaw
      • Pitch
      • Roll
      • Altitude
      • Latitude and longitude
    • Velocity controls
      • Yaw
      • Pitch
      • Roll
      • X and Y
      • Z (altitude)
  • Thrust writer
    • Basic linear writing
    • Calibration
    • Force-thrust function from bollard-poll
  • Voltage measurement
  • LED strips
  • Deadman (kill / land in critical conditions)
  • Autonomous
    • Mission framework
    • Missions

Electrical

  • Main board
    • Teensy mount
    • MPU9250 mount
    • Bluefruit mount (useless now, bluetooth too weak)
    • ESC plugs
    • Voltage monitor wire
    • LED strips
    • RFM69 Radio transceiver
    • Altimeter mount broken altimeter
  • Power board
    • 12V power rail
    • Voltage measurement source
    • 5V-regulated power for computer board
    • 3.3V-regulated power for radio
  • Handheld controller
    • Joysticks
    • Softkill switch
    • Radio tranceiver

Mechanical

Drone

  • Version 1 (failed, too heavy)
    • PVC frame
    • 4 PVC tube thrusters and mounts
    • Metal sheet electronics mount
  • Version 2 (failed, too heavy, thrust blockage)
    • Metal sheet only frame
    • 4 thrusters and mounts
    • Landing posts
  • Version 3
    • Carbon fiber frame
    • 6 thrusters and mounts
    • LED strips
    • Tetrahedral-ish electronics shell
    • DJI Phantom-style props that don't vibrate like crazy

Handheld

  • Version 1 (too cramped)
    • Gutted Xbox controller for old Arduino Nano
    • 2 joysticks
    • Softkill toggle switch
  • Version 2
    • Old acryllic Raspberry Pi case
    • Mounting protoboard
    • 2 joysticks with embedded buttons
    • Radio tranceiver
    • External power and regulator

jankdrone's People

Contributors

alexozer 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  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  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  avatar  avatar

jankdrone's Issues

WriteCharacteristic() blocks indefinitely after disconnect

Calling periph.WriteCharacteristic(characteristic, msg, true) blocks indefinitely after the bluetooth connection is closed. Since WriteCharacteristic() does this instead of returning an error, we cannot know for sure when to stop the goroutine from writing and thus cannot restart the connection without restarting the entire client.

It should also be noted that this only occurs if a message is send before an attempted reconnection.

Frequent disconnects on Linux with NetworkManager

Sometimes, unless Network Manager is stopped, gatt frequently reconnects and disconnects from the BLE chip. This may be due to the fact that wifi and bluetooth are implemented on the same card in my Macbook Pro 2015 since gatt takes complete control of the card, although this problem does not occur on macOS.

Buying a separate BLE adapter would probably help.

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.