openDog Dog Robot #15 | Encoders & Hardware Upgrades | James Bruton

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ม.ค. 2025

ความคิดเห็น •

  • @jamesbruton
    @jamesbruton  5 ปีที่แล้ว +106

    I feel a lot better about the hardware setup now the upgrades are done. Next time I'll be upgrading the 8-bit 16Mhz Arduinos to a Teensy running a 32-bit 180 MHz ARM Cortex-M4 with floating point unit.

    • @electronash
      @electronash 5 ปีที่แล้ว +5

      Not that it'll matter much on a Teensy, but unless you're remapping the min and max values from the mag encoder, could you maybe just shift the bits?
      tenbit = current_angle >> 4;
      On a 16MHz Arduino, that would save quite a few instruction cycles.
      But yeah, it's probably overkill, even on the slower MCU. lol

    • @electronash
      @electronash 5 ปีที่แล้ว +1

      Your vids are always great, btw.
      Lots of clever problem solving, coding, and proper engineering, and a different challenge each time.

    • @616C2D7867
      @616C2D7867 5 ปีที่แล้ว +1

      Could the O-drive not use the magnetic absolute encoders directly? You could maybe then loosen the pulley screws, get all motors to position hold then tighten them up in the desired joint home position. I've been using the AS5047 encoders over SPI on VESCs with those same SK3 6374s.

    • @10p6
      @10p6 5 ปีที่แล้ว +1

      Why not use a 5 GHz i9 or Xeon as this is becoming astronomically more complex than it needs to be?

    • @Janisku7
      @Janisku7 5 ปีที่แล้ว

      small board could be good for each leg so it then operate the leg so if power goes out it put leg to 0 state before power goes out. so it have some sense of powerstate

  • @sergioa.1530
    @sergioa.1530 5 ปีที่แล้ว +60

    So satisfying to see the upgrades that make the robot more rigid, it's a good progress.

  • @DanielBillingslea313
    @DanielBillingslea313 5 ปีที่แล้ว +18

    I'm so happy to see another open dog video!! Clicked on that notification so fast

  • @Eukaryotas
    @Eukaryotas 5 ปีที่แล้ว +42

    Low-Pass filter is what you need. It will remove all of the jitter issue.

    • @Vir9il
      @Vir9il 5 ปีที่แล้ว +8

      Also, and this is just an untested idea, you could add a small amount of hysteresis in the software. Something like: the angle variable should only change if the value read from the pot has changed by more than some threshold amount. That way, you don't have to worry about the least significant bit randomly jumping back and forth.

    • @maxtorque2277
      @maxtorque2277 5 ปีที่แล้ว +1

      This ^^^ x10. As i said in the comments after the last video, a car ride height pot (cheap, super robust) with a basic analogue filter (1 resistor and 1 capacitor), sampled at say 500hz and then decimated could easily deliver 12 bits of rock solid position information for a very low cost! Can be done with a basic 8 bit micro easily too!

    • @kornelillyes2848
      @kornelillyes2848 5 ปีที่แล้ว

      also should put a small cap between the signal wire and the ground, it would clear the signal of AC generated by the enviroment in the long wire
      oh wait. thats basically a low pass filter

    • @sswpp8908
      @sswpp8908 5 ปีที่แล้ว

      Yep. I think a simple 8 sample average filter should be sufficient looking at the variation in the analog 1 data stream. Really easy too: keep running sum of last 2^N samples -> subtract out value from 2^N samples ago -> add in new sample -> bit shift down by N for the average. A hardware LPF typically better but it might take some finagling to get the cap value chosen just right.

    • @martindevans
      @martindevans 5 ปีที่แล้ว

      A Kalman filter is always the right thing to use when you have unreliable sensors.

  • @danwood1121
    @danwood1121 5 ปีที่แล้ว +2

    There's something really pleasing about all those motors spinning with each little movement.

  • @clonkex
    @clonkex 5 ปีที่แล้ว +32

    To be completely honest I think you're worrying WAY too much about that jitter. That amount of jitter (even on the cheapo pot from eBay) is TINY. If you need less jitter than that for it to function correctly, you have bigger problems.
    But otherwise I'm super excited by the hardware upgrades. Looks fantastic!

    • @turbo2ltr
      @turbo2ltr 5 ปีที่แล้ว +11

      agreed.. if he had mapped the original output like he did with the magnetic sensor, he would have had just a solid of a signal. One bit at 13 bit ADC is 0.6mV. (0.0006 V). Highly doubt you need that kind of resolution. A LP filter or just lopping off the LSB would work wonders.

    • @brainmind4070
      @brainmind4070 5 ปีที่แล้ว +1

      Yeah, but doesn't the jitter make noise? Maybe not; I'm not sure. Quieter is better, though if so.

    • @floriandaler5327
      @floriandaler5327 5 ปีที่แล้ว

      @@turbo2ltr just add a 1uF cap and a 10k resistor in series at the input xD
      (the cap as closely as possible at the Teensy)

  • @alorzaknafein
    @alorzaknafein 5 ปีที่แล้ว +1

    James, if you're worried about mitigating signal noise using shielded cable you should keep in mind that the shield needs to be grounded at one end only, not both. If you ground at both ends you can end up with current loops and more noise due to the shield.

  • @bruceneely4859
    @bruceneely4859 5 ปีที่แล้ว +6

    that was a laundry list of upgrades to the hardware, always impressed by how much your able to get done in a couple of weeks, considering how much you do on your odd week projects as well, you must live in your workroom, barely allowed to leave to get some food once every few days

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      Yep - it's pretty much that!

  • @zaynetech6538
    @zaynetech6538 5 ปีที่แล้ว +49

    Bruton Dynamics!

  • @steverobbins4872
    @steverobbins4872 5 ปีที่แล้ว +2

    You should be able to get a very clean signal from a low-cost potentiometer, but only if you follow some simple common sense rules. First, what is the value of the pot? In think in OpenDog #14 you said it was "10k or 100k". That makes a big difference. The ADC inside the microcontroller uses tiny CMOS switches to sample the inputs, and this makes little current spikes when they switch because of something called charge injection. When these current spikes go into your pot they make voltage noise. The AVR data sheets typically recommend 10k maximum source resistance. In this context, the "source" is your pot. Second, you should try a little analog filtering by adding a cap at the ADC input. I would recommend: a 2.5k pot (so the Thevenin resistance varies from 0 to 1.25k as you turn it) with a 4.7k resistor in series between the wiper and the ADC input, and a 100nF cap to ground mounted right at the ADC input. This will give you a 3dB bandwidth of 264Hz to 336Hz (depending on pot rotation) which should be plenty for this application.

    • @richardbloemenkamp8532
      @richardbloemenkamp8532 5 ปีที่แล้ว

      Something like this may indeed be the solution if you want to use a pot. Sometimes digital filtering is not effective if the damage has already been done before or at the sampling of the ADC.

  • @WillJonesUK
    @WillJonesUK 5 ปีที่แล้ว +3

    Superb project, James. Getting to view early for $1 on Patreon is amazing value.

  • @klschofield71
    @klschofield71 5 ปีที่แล้ว +6

    Excellent upgrades all around James. Very excited to see the progression of this project. Not sure if you know, but WD-40 is an excellent lubricant when machining aluminum.

    • @maxhouseman3129
      @maxhouseman3129 5 ปีที่แล้ว

      Said the same while watching it. Hurts to see it 😩

  • @Garganzuul
    @Garganzuul 5 ปีที่แล้ว +3

    The datasheet says the sensor has an output rate of at least 10kHz, so by filtering with a rolling median or rolling mean you might be able to regain some resolution at the cost of the update frequency which there is an abundance of. The algorithm involves a small array that you repeatedly shift in the latest reading to, copy, sort and drop the outliers at the top and bottom from. Then you should be left with some rather stable readings in the middle of your array and not lose much temporal resolution. You can additionally compare it to a small threshold for added stability.

  • @chris-mts
    @chris-mts 5 ปีที่แล้ว

    great upgrades james !
    Solving the problems and improving the design is the most interesting part of the project (for me).
    Something I also do for my work.
    I am looking forward to the next episode

  • @DerSolinski
    @DerSolinski 5 ปีที่แล้ว +32

    🤣 "The math was correct, but the robot still wrong" haven't heard that yet anywhere else 🤣

    • @longshot7601
      @longshot7601 5 ปีที่แล้ว +2

      All that you need to do is get the project software and hardware engineers together in a conference room.

    • @DerSolinski
      @DerSolinski 5 ปีที่แล้ว +1

      @@longshot7601 In my experience that results only in shouting match: "who is responsibly for that shit"
      and "We told you so"

    • @longshot7601
      @longshot7601 5 ปีที่แล้ว

      @@DerSolinski Don't forget "Did you even read the project spec book?"

    • @DerSolinski
      @DerSolinski 5 ปีที่แล้ว +1

      Whoa you are actually assuming there is one 🤣

    • @longshot7601
      @longshot7601 5 ปีที่แล้ว

      @@DerSolinski Some call it the spec book. Others call it the comic book. In either case it makes a great bird cage liner.

  • @lightvsdark21
    @lightvsdark21 5 ปีที่แล้ว +1

    Thank God!! I have been waiting for this for forever!! Way to go James!

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      There's more coming, it just might take a while to get it right!

  • @MagicLeavez
    @MagicLeavez 5 ปีที่แล้ว +1

    Good video James! Glad to see those important upgrades on openDog!
    Keep up the good work

  • @juweinert
    @juweinert 5 ปีที่แล้ว +2

    10:40 You can use the EEPROM wich is built into each ATMega. Simply store the value after the homing sequence und don't forget the "preserve EEPROM" fuse.

    • @onnieqvickstrom1668
      @onnieqvickstrom1668 5 ปีที่แล้ว +2

      I came here to say exactly this!!
      Well not exactly, the value has to be saved every time it is sent to the O-drive. It's not a calibration value, it's a where-was-I-value.
      Surely this is fast enough to do each tick? Or is it perhaps that you plan on replacing the arduinos with an r-pi or something and that new computer won't have this feature?

    • @juweinert
      @juweinert 5 ปีที่แล้ว +1

      Onnie Qvickström oh sure, you're right.
      EEPROM is probably fast enough, but it has limited write-cycles which would worn out quickly enough considering the data rate.
      Maybe a small super cap and a mosfet or simple resistor to detect power down?
      A power management chip would be better, but probably "too much" effort.
      On the other hand James' current "workaround" requires adding a huge number of encoders...

    • @juweinert
      @juweinert 5 ปีที่แล้ว

      Well, now I think about it there must be simple power-down modules ready built somewhere

    • @onnieqvickstrom1668
      @onnieqvickstrom1668 5 ปีที่แล้ว +1

      ​@@juweinert Ok, new attempt :)
      Give the arduino a little capacitor so it can work a split second after power out. Found a couple of tutorials on "arduino power loss detection".
      When the shutdown signal is detected stop accepting new values, stop sending stuff to the O-drive and save the current values.

    • @juweinert
      @juweinert 5 ปีที่แล้ว

      ​@@onnieqvickstrom1668 Thats exactly what I meant with the "small super cap and mosfet" part ;)
      You can use an N-Channel MOSFET (as reverse voltage protection) in line with the power supply. Drain and Gate go together to the main power in, the Source to the Arduino and super capacitor and an analog input to the main power in as well.
      It's the most simple setup I could think of, but considering the maker-community there must be some kind of drop-in module...
      What did you find out? Has anybody tried something like I proposed?
      Sounds like fun little experiment, hopefully I'll remember it on the weekend :D

  • @StevenIngram
    @StevenIngram 5 ปีที่แล้ว +1

    I think those upgrades were a step in the right direction. Can't wait to see more. :)

  • @isbestlizard
    @isbestlizard 3 ปีที่แล้ว

    0.1 degree is very stable and accurate for such a teeny little thing I'm very impressed with the AS5048

  • @h0ll1s
    @h0ll1s 5 ปีที่แล้ว +1

    Thanks for the update! Some pretty cool upgrades there and nice work on getting a lathe!

  • @MrAquaktus
    @MrAquaktus 5 ปีที่แล้ว

    This project is awesome James!
    It's great to see the updates.
    Keep going!

  • @fantasticphil3863
    @fantasticphil3863 5 ปีที่แล้ว

    I'm really excited about all these upgrades! I'm sure it's gonna be awesome moving forward!

  • @sheabrown
    @sheabrown 5 ปีที่แล้ว +4

    Awesome work James, keep up the great work!

  • @3Dpoleproductions
    @3Dpoleproductions 5 ปีที่แล้ว +29

    Bro you just compared yourself to a whole company of people you have access to way more specialized tools and budgets 100x yours. Honestly I think your better than boston Dynamics for that.

    • @emmy9345
      @emmy9345 5 ปีที่แล้ว +4

      i know right especially considering that Boston Dynamics has effectively unlimited funds and access to the very best of grads and other experts. seeing that James' work is even similar in scope is amazing really.

    • @adamchurchley6095
      @adamchurchley6095 5 ปีที่แล้ว +2

      I agree Spot mini is cool and all but the control gear is what makes it complete and the harmonic drive motor configuration is nothing new in robotics still out of the reach of most home gamers.

    • @emmy9345
      @emmy9345 5 ปีที่แล้ว

      @@JG-nm9zk upload it to TH-cam and i'll watch it.

    • @LH782
      @LH782 5 ปีที่แล้ว

      Agreed, plus James' robot is not as creepy as bd's lineup

  • @quertz42
    @quertz42 5 ปีที่แล้ว

    Nice to see you switch to magnetic encoders.They give pretty good results; especially way more reproducible than simple pots.

  • @IrishSkruffles
    @IrishSkruffles 5 ปีที่แล้ว

    That magnetic encoder looked good! I really hope you keep the use of potentiometers to a minimum however.. They really aren't meant to be connected to mechanical devices, but you can get away with it. Thats why the more expensive Servo motors use digital encoders and not cheap carbon tracks.
    I'm so glad you got a lathe too! Just be mindful of backlash and look out for any looseness/lack of rigidity in the saddle/top slide after a few tens of hours operating time. If you notice any looseness then use the adjustment screws for the slides, rigidity is super important when it comes to lathes. Really enjoyed this video, the upgrades were definitely worth it

  • @mukha521
    @mukha521 5 ปีที่แล้ว

    Well, it could be too late but I have a little input on jitter topic. The interference is probably introduced right in microcontroller's ADC, not in pots or wires. You could try to shield the microcontroller with some kind of metal shell like the ones you can see inside any mobile gadget nowadays.

  • @Frrk
    @Frrk 5 ปีที่แล้ว +1

    Nice upgrades :) the magnetic sensor is an interesting approach.

    • @t-rexfpv2653
      @t-rexfpv2653 5 ปีที่แล้ว

      Machinarium hell yea!!

  • @njones420
    @njones420 5 ปีที่แล้ว

    one suggestion for your lathe.. swap out the standard tool holder for a "quick-change", they're much sturdier and make turning much easier due to the reduced vibration. Mine was forever stalling on shallow cuts until i changed that.

  • @SimonPlatten
    @SimonPlatten 5 ปีที่แล้ว

    Excellent work, really looks like a fine design and implementation.

  • @World_Theory
    @World_Theory 5 ปีที่แล้ว +1

    This has got me excited! And the digital magnetic sensor looks awesome. Here's a rhetorical question, to lead my next thought… Do you have a lot of extra resolution in the time dimension, for any of the sensors your looking to use for absolute position; do any of them update a lot faster than you need? (Could they be made to update faster, with, say, a faster clock?)
    I was thinking that if you had a lot of extra readings, you could have something keep a number (three or five) of the most recent ones in memory, and look at the numbers in memory to find one that shows up the most, then report that number at what the sensor reads. The oldest reading in memory should be replaced the the second oldest, while the second oldest should be replaced the the third oldest, etcetera… If no numbers are similar, default to the most recent. If using an even number of readings, and there are two equal groups of most numerous numbers, use the most recent. If that happens, but combined “recentness” values add up to the same, use the group that contains the most recent individual reading.
    There may be a more elegant solution out there somewhere, I just came up with this, and I have no great depth of knowledge in this field. Asking around might be a good move, if this solution interests you, and is actually viable.

  • @kBIT01
    @kBIT01 5 ปีที่แล้ว +1

    Turn those mounts with the tailstock center. It will cut out the chatter and give you a much better result.

  • @aakash512
    @aakash512 5 ปีที่แล้ว +6

    Hey you can use high precision rotary encoder instead of pot, they will be lot more precise

    • @oliverer3
      @oliverer3 5 ปีที่แล้ว

      Don't all the absolute position encoders cost a ton tough?

    • @aakash512
      @aakash512 5 ปีที่แล้ว

      @@oliverer3
      Yes they are on a bit costlier side but I guess it gives a lot more precession, which is required for this project.
      A decent 400ppr rotary encoder will cost around 17 pounds compared to 12 pound pot used.

    • @World_Theory
      @World_Theory 5 ปีที่แล้ว

      I wonder if he could scavenge them from some old computer mice. I think the problems there would be time spend, and getting a bunch of mice using the exact same encoder mechanism.

    • @KlockworXMusic
      @KlockworXMusic 5 ปีที่แล้ว +1

      He already has encoders on the motors with like 8000 divisions per rotation, but rotary encoders only tell you if something has turned and by how much, but he needs something on power up to say this is where the leg is. Its like if your car radio has a rotary encoder for the volume knob, it works fine while on, but turn your car off, turn the volume knob 10 times, or 100 times, and turn the car back on, the volume is where you left it. If the leg moves at all while power is off the rotary encoder doesn't help to tell where the leg is at startup, a potentiometer does.

    • @World_Theory
      @World_Theory 5 ปีที่แล้ว

      KlockworXMusic, Ah. Yeah… That's a good point.

  • @azyfloof
    @azyfloof 5 ปีที่แล้ว +5

    Oooh you got a new Minila The! This old Tony himself would be proud :P
    I still don't know why you aren't storing the home positions in EEPROM, so you have the data if the Arduino is reflashed? If the Arduino is losing the data with sketch uploads, you can change the fuse bits in the boards.txt file to prevent EEPROM erasure, then reflash the bootloader before uploading the sketch.
    Failing that, external EEPROM. That's gonna be cheaper and easier than multi turn pots :P

  • @wolfe1970
    @wolfe1970 5 ปีที่แล้ว

    Love this series, love the upgrades your doing

  • @joejia1410
    @joejia1410 5 ปีที่แล้ว +1

    Quote "Higher Quality pot" great robot dog though you are a very skilled person

  • @rklauco
    @rklauco 5 ปีที่แล้ว +2

    Next time write to AMS directly - they are welcoming designers and are willing to send some samples, even consult you and suggest products. Quite nice company.

  • @yosuhara
    @yosuhara 5 ปีที่แล้ว

    Awesome, it's coming up pretty nicely :) I like the upgrade

  • @kissingfrogs
    @kissingfrogs 5 ปีที่แล้ว

    Hey James, love the vids. You seem to do a whole heap of work in a short amount of time.

  • @pranitrajendramagdum5378
    @pranitrajendramagdum5378 ปีที่แล้ว

    I am also not able to read the simple angles using AS5048B encoder. I have used the same library of sosandroid that you have given in the description

  • @BaBam898
    @BaBam898 5 ปีที่แล้ว +1

    Awesome progress!

  • @havenview
    @havenview 5 ปีที่แล้ว +1

    If your highly accurate digital position sensor on the end of the motor can do a precise measurement in a 5mm range, surely your analog pot only needs to be accurate enough to place between adjacent 5mm ranges. By throwing away bits on the analog reading until it *is* stable, will that not give you enough of a ball park figure to add the digital position value and gain an accurate absolute position?

  • @sethrd999
    @sethrd999 5 ปีที่แล้ว

    Great upgrades James, fixing as you find is a great learning strategy, would have been good to see what differences these current upgrades made, did it walk / move alot better than before?
    Looking forward to the next installments :)

  • @gistnoesis9116
    @gistnoesis9116 5 ปีที่แล้ว +1

    Nice updates. I'm wondering about the AS5048 though. Will the SPI interface be reliable enough over long distances? Although you can still use the PWM signal, then you need either to save the zero of the magnet inside the AS5048 via SPI, or need a way to remember the zero (and we are back to the original problem),

  • @brianingle7535
    @brianingle7535 5 ปีที่แล้ว

    Have you ever considered a flexible resistor? You can make a crude one just by taking a strip of some sort, 1/2 inch wide maybe. Draw a 1/4 wide rectangle down the center of your strip. I use scotch tape. Color in the small rectangle with a graphite pencil Now measure resistance then bend it and do the same. There is a resistance change. Just a thought.

  • @martinsalko1
    @martinsalko1 5 ปีที่แล้ว

    jitter can be caused by static creep, or 50 coming from the environment, I'd suggest putting some 100p caps on the leads near your micro, also having a spectrometer would be nice for removing these problems.
    Expensive pots will only get you higher lifetime, or additional features, jike 10 turns or continuous turning (these are expensive as hell and almost no one makes them).
    but there is a reason that most machines use digital position encoders instead, it's way simpler to deal with data that's not susceptible to noise.
    .

  • @salmanthefishpcg2534
    @salmanthefishpcg2534 5 ปีที่แล้ว

    Hello! Im an old school subscriber and I was just feeling like having a throwback so I checked my old account to see who I was subscribed to and I saw your name and it just clicked and behold it was you! I didn't know at first because of your new profile picture but I saw your videos and I just wanted to say that i've been subscribed (on my old account) scince you first started building the Ironman Hulkbuster and man has your channel grown! I see how you put everything that you had made in the past in the background and I remember you building some of those like that Ultron one and the fullbody one that you tried to make more human, and that robot that was just legs XD that one was halarious, congrats on all this growth and btw i'm Salman Ahmad :D

    • @SA-bt2ie
      @SA-bt2ie 5 ปีที่แล้ว

      Hellooo it's meee salmanthefish
      This is my old account

    • @SA-bt2ie
      @SA-bt2ie 5 ปีที่แล้ว

      Also the robot in this video looks insanely cool, you've grown!!!

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      ok, great thanks!

    • @salmanthefishpcg2534
      @salmanthefishpcg2534 5 ปีที่แล้ว

      @@jamesbruton AHahahahahah, ill try to continue supporting :D

  • @frigbychilwether
    @frigbychilwether 5 ปีที่แล้ว +1

    Hi, great video. Regarding the magnetic sensor board. Do you have a diagram of how you wired it up ? I tried one of these and could never get it to work, I followed the wiring from the data sheet(which included a couple capacitors) but I may have got it completely wrong.

  • @douglasmaclean5836
    @douglasmaclean5836 5 ปีที่แล้ว

    another awesome video ! ... love it . !!

  • @Unmannedair
    @Unmannedair 5 ปีที่แล้ว

    have you considered adding compliant mechanisms to your servo joints to allow smoother and quicker responses?

  • @VideoStefan17
    @VideoStefan17 5 ปีที่แล้ว

    i bow before your knowlege about all of this!! amazing!

  • @adamchurchley6095
    @adamchurchley6095 5 ปีที่แล้ว +4

    Very interesting! I wonder if an optical sensor would work? I'm currently working on a quadrupedal robot that is very sensitive to emf at the required measurement location and am looking into running fiber optic cable to the location and have the sensitive electronics mounted away from the joint and as close as possible to the main board. I Would love to know peoples thoughts on this.

    • @interestedinstuff
      @interestedinstuff 5 ปีที่แล้ว

      Might be me, but I don't know why there can't be a length of metal with marks on it that tell the leg where it is? Length of plastic. Doesn't matter. Basically just put a physical address on the leg so that the position reading is an absolute.

    • @adamchurchley6095
      @adamchurchley6095 5 ปีที่แล้ว

      @@interestedinstuff Nice idea and sure could be worked into a viable idea but unfortunately you have a few obstacles to overcome first. How would you determine position with the markings and how would the senor read this ? What if the sensor was between markings and how would it differentiate between markings to determine overall position without having to actuate the leg. resolution may be an issue as the length of the measuring stick and amount of markings would ultimately determine this. Did a project many years ago when we tried to use a mouse sensor to read absolute position and it is no easy task.

  • @Ryanrulesok
    @Ryanrulesok 5 ปีที่แล้ว

    Have you seen the petoi kybble sets (opencat) you can get for kids? Maybe you can make a larger upgraded version after open dog

  • @jojo07871
    @jojo07871 5 ปีที่แล้ว +1

    You can store the home parameters onto a SD card :)

    • @samporter9785
      @samporter9785 5 ปีที่แล้ว

      That's the solution i would have thought.. the pot/magnetic sensor solution sounds so bad.. I guess we'll see..

  • @LupusMechanicus
    @LupusMechanicus 5 ปีที่แล้ว +1

    So good! Such a handsome thumbnail too.

  • @alexisentonfire
    @alexisentonfire 5 ปีที่แล้ว

    You can use A cheep EEprom module to remember afterboot, there for you would save having to rehome

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      As I said in the video, there's a simpler solution. Although it won't help me recover from an unknown state, but neither would the EEprom.

  • @eIektrinis
    @eIektrinis 4 ปีที่แล้ว

    did you know the microcontroller will actually keep the same value of a variable stored in RAM if it's not being zeroed out during initialization upon reboot? I don't know if you can do this in dumbed-down arduino, but in plain C you can initialize a variable without giving it a value. Note this is for RAM only, and not for ALU registers. Tested on AVR. Zeroing out is actually an extra step and MCU just keeps the old value as long as power is not cut for a few seconds. On a cold start, RAM holds random bits.
    I have used this property in various applications, for example for reset-immunity. You only need to detect if it's a cold boot or a reset, and one way to do it is to check if one of variables holds the previously defined constant. There are of course other, more reliable ways to check, like data integrity checks and flags.

  • @Dirt33breaks
    @Dirt33breaks 4 ปีที่แล้ว

    Fantastic! I have been looking for a better sensor alternative for a dj jog wheel (tried hdd , rotary and optical encoders but too much jitter and low res) .
    Anychange you could share that 3d print file? Or does anyone have a 3d print link for a simular encolsure for the as5600 series breakout board? Cheers

  • @loganfansler9211
    @loganfansler9211 7 หลายเดือนก่อน

    @jamesbruton I've been trying to use the as5047p with my odrive and running into problems with the SPI error rate. Were you using 5V or 3.3V to power the as5047? Thanks for all the great content!

  • @AJB2K3
    @AJB2K3 5 ปีที่แล้ว +1

    Is it a linear pot or a logarithmic pot?
    Sound like the El Chepo is a log pot.
    Edit: would a potential devider that uses the pot on one side make the reading more accurate?
    Edit2: for linear distance measuring, have you looked in T.O.F sensors?

  • @edipkakmak
    @edipkakmak 2 ปีที่แล้ว

    I've been scratching my head using the AS5600 encoder on a DC motor. The i2c communication drops out randomly. I have used screened cable an capacitors on the motor. Any ideas?

  • @R0m0uT
    @R0m0uT 5 ปีที่แล้ว +4

    I fear the magnet readings will be influenced by metal parts and motor magnets.

    • @adamchurchley6095
      @adamchurchley6095 5 ปีที่แล้ว +1

      It's surprising how contained the magnetic field is in the motor, I believe the motor bell and opposing permanent magnets are designed to focus the field hence why they are so efficient.
      plus the field strength drops off exponentially the further you are away from the motor (magnet) and with the strength of the sensor magnet being so strong and only a few mm away I doubt it would have any negligible effect in this application. However, if you mounted it directly against the motor and required precision at a very small angle then it may be affected. The background emf picked up by the wiring going to the control circuit is the main cause of floating values.

  • @fvgoya
    @fvgoya 5 ปีที่แล้ว

    This is a really awesome project!!! Subscribed!!! What is the controller at 2:50??

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว +2

      It's a Teensy 3.6

    • @fvgoya
      @fvgoya 5 ปีที่แล้ว

      @@jamesbruton Thank you!!

  • @chrismorrison5301
    @chrismorrison5301 5 ปีที่แล้ว

    @James Bruton One thing you could try for when the robot needs to correct the joint position when it turns on is have it tell an arduino what position it's in maybe by telling it what movements it taken since it was in the zero position or how far away the joints are from the zero position and then when you turn it on the first thing that happens is the arduino moves the joints into the zero position then once it's done that the arduino tells the rest of the functions start up and the robot should be able to function normally

  • @akumal5819
    @akumal5819 3 ปีที่แล้ว

    Is this magnetic encoder is better the $15 hi res optical shaft encoder?

  • @SEEMERIDECOM
    @SEEMERIDECOM 5 ปีที่แล้ว

    You may want to take a look at the Parallax Propeller processor. It an 8 core 32-bit processor that is ideal for the type of processing you're doing.

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      But can I use the ODrive Arduino library?

    • @SEEMERIDECOM
      @SEEMERIDECOM 5 ปีที่แล้ว

      @@jamesbruton I don't think so. it a totally different type of processor. They do have quite a few objects in an online library. They are working on a newer chip but the first Propeller is plenty powerful. All the pins are the same, but you create a serial port for example and can have 8+ on the same processor if you wanted. It is programmed in a high level language called SPIN or low-level in assembly. But for running all your limbs, it could be pretty easy.
      Here is a sample of a project I used one to monitor all the stepper motors on a 3D printer. Not sure you could do this easily or quick enough to capture all the steps... th-cam.com/video/g1TpsugB3qE/w-d-xo.html

  • @alexanderdegeeter7391
    @alexanderdegeeter7391 5 ปีที่แล้ว

    Is it possible to measure the 3v3 output of the teensy with a scope?, Local bypass capacitor on the pot can help.

  • @mr.k1177
    @mr.k1177 5 ปีที่แล้ว

    Master, did you make a video about how to make that sweet control you have in the background there? I would love to learn how to make one. Pleaseeeee

  • @freeNode5
    @freeNode5 5 ปีที่แล้ว +1

    want to know more about that drone motor

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      It's a Turgigy 149KV 6374 SK3 motor

  • @dukepetty46
    @dukepetty46 5 ปีที่แล้ว +1

    Why not use eeprom?

  • @outgoingbot
    @outgoingbot 5 ปีที่แล้ว

    Those cheap digital calipers have a serial out port on them. Look at them closely, there is a small port cover.

  • @petterihaverinen4210
    @petterihaverinen4210 5 ปีที่แล้ว

    The AS5048A hall-sensor seems to be pretty straightforward. The A-version costs around 10$ from digikey, but the B-version only 4.5$. The difference between the two seems to be the communication protocol (A-variant is SPI and the B-variant is I2C). Would it be possible to just order custom made small pcb for these? It would need less wires and fit into a smaller space. Here's a link for the datasheet: media.digikey.com/pdf/Data%20Sheets/Austriamicrosystems%20PDFs/AS5048A,B.pdf
    Cheers!

  • @JLTSoft
    @JLTSoft 5 ปีที่แล้ว

    I don't understand why you wouldn't use a rotary encoder. You would still need a limit switch for resetting, but then you would have extremely precise readings of revolutions and no limits to how many times you need it to rotate.

  • @Redluster15
    @Redluster15 5 ปีที่แล้ว +1

    from what it looks like the leg motors do not move around much powered down why not just use the SD Library and and a SD Card reader to save the last known locations be for powering down then read on power up? I know that you still want to know there absolute position but for testing this seams like a simple possibility.

  • @lovidovi
    @lovidovi 5 ปีที่แล้ว

    I've been looking for a way of having absolute positioning in a project of mine. I was also going down the POT route and trying to either find one or make my own POT with continuous rotation and >340 Degree effective range... However, this is exactly what ive needed! I have mine in the mail now to test. My only question is interference with multiple next to each other. I need 4 of them in a 2x2 matrix and with the size of the board, they will be touching edges... Does anyone know if the magnetic fields will interfere with the others? or with the need for the magnet to be so close to the sensor, that shouldn't be an issue?

  • @pranitrajendramagdum5378
    @pranitrajendramagdum5378 ปีที่แล้ว

    I am integrating AS5048B with Stepper motor and getting I2C error. Please share the code or help me solve the error

  • @wishicouldarduino8880
    @wishicouldarduino8880 5 ปีที่แล้ว

    Truly amazing

  • @JohnDlugosz
    @JohnDlugosz 5 ปีที่แล้ว

    Where did you get the aluminum pulleys? Are they a stock part?

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      www.beltingonline.com/

  • @PrashantKumar-ng4yk
    @PrashantKumar-ng4yk 5 ปีที่แล้ว

    Can you please tell me about controller deadline error that comes in O drive due variable torque requirement(sudden high torque).

  • @bomxacalaka2033
    @bomxacalaka2033 5 ปีที่แล้ว

    Couldn’t you use kalman filter to fix the jittery issue?

  • @oleg4j
    @oleg4j 3 ปีที่แล้ว

    hello
    could you share STL files for the 3D printed board for encoder testing

  • @Janisku7
    @Janisku7 5 ปีที่แล้ว

    legs could have set some states like 0 state when legs arent opened fully and if fully it would 1. so when loosing power or lower powerstate legs go to 0state

  • @GearDownForWhat
    @GearDownForWhat 5 ปีที่แล้ว

    You installed the encoder adaptor wrong :(
    I did the same thing and my encoders ended up slipping and causing all sorts of issues.
    Maybe it was just movie magic?

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      I just checked the instructions again, but I can't see why it's wrong - apart from not using 'tool B'.

  • @ronbrideau8902
    @ronbrideau8902 5 ปีที่แล้ว

    Some experiments with 3d printed biological joints, perhaps with some Teflon tape as cartilage, could be interesting.

  • @kingmasterlord
    @kingmasterlord 4 ปีที่แล้ว

    Use the spring leg on the end of the rigid leg

  • @RussellNelson
    @RussellNelson 4 ปีที่แล้ว

    An A/D which flips from one value to the next isn't "jitter".

  • @joesitter20101
    @joesitter20101 2 ปีที่แล้ว

    The position sensing should very obviously be accomplished with an optical encoder. They're less costly, generate digital data directly and they're low in cost and exhibit high reliability.

  • @БогданКалужин-з3з
    @БогданКалужин-з3з 5 ปีที่แล้ว

    Конечно, такой переменный резистор луче, чем резистор из советского радиоприёмника.

  • @ecsciguy79
    @ecsciguy79 5 ปีที่แล้ว +1

    How about you always store the location in flash memory. Power goes off, power comes back on, read the flash and you know where your actuators are. Heck of a lot cheaper and easier

  • @EnduroNerd
    @EnduroNerd 5 ปีที่แล้ว

    To reduce the jitter, only recognize even numbers?

  • @ahbushnell1
    @ahbushnell1 5 ปีที่แล้ว

    is the magnetic sensor linear?

  • @hishammaudarbocus5719
    @hishammaudarbocus5719 5 ปีที่แล้ว +1

    Put a CAP on your sensor, it reduces the gitter...

  • @Mirandorl
    @Mirandorl 5 ปีที่แล้ว

    I am curious to know if you've ever used PIC18's in a build! Would love to learn microcontrollers beyond arduino, and started reading a book on it. They seem tough! Very computer science heavy. What are your views on them? Cheers :3

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      Nope! Arduino all the way!

    • @fritzfahrmann4730
      @fritzfahrmann4730 5 ปีที่แล้ว

      PIC18 are old, look at new cheap arm controllers, more power, less cost, more features. STM32 have cheap programmers and could be programmed with arduino "IDE"

    • @Mirandorl
      @Mirandorl 5 ปีที่แล้ว

      @@jamesbruton Thanks for replying! I was curious, I applied for a job recently with a robotics company and they wanted people with PIC18F experience for their new products, it struck me as odd / old too! Wondered if it was common, perhaps is just the ideal solution for what they were doing.

    • @Mirandorl
      @Mirandorl 5 ปีที่แล้ว

      @@fritzfahrmann4730 Thanks fritz!

    • @fritzfahrmann4730
      @fritzfahrmann4730 5 ปีที่แล้ว

      @@Mirandorl maybe old products? or old Engineers (they usually stick to known stuff - not always the best thing)
      this low bit controller also have benefits (low power consumption)

  • @brendan7563
    @brendan7563 5 ปีที่แล้ว

    Where do you get the Arduino parts from

  • @ET_AYY_LMAO
    @ET_AYY_LMAO 5 ปีที่แล้ว

    Those cheap calipers are actually very easy to interface with.

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว

      How - got any links?

    • @ET_AYY_LMAO
      @ET_AYY_LMAO 5 ปีที่แล้ว

      @@jamesbruton I can't send links it seems. just google "digital caliper arduino". I can't remember what the poll rate is, but I think its pretty good. Code is very rudamental I used the source from the google sites page "martin's useless and useful creations"... though it would probably be a good idea to use interrupts instead of while loops to wait for the data.

  • @NinoM4sterChannel
    @NinoM4sterChannel 5 ปีที่แล้ว

    Boston Dynamics should hire you!

  • @brandontheender5575
    @brandontheender5575 5 ปีที่แล้ว +2

    Can you try to make a power generator.

    • @aryatale5232
      @aryatale5232 5 ปีที่แล้ว

      Childs play compared to this stuff, it's so simple that I could do it, and I'm not nearly as bright.

    • @yosuhara
      @yosuhara 5 ปีที่แล้ว

      But what about UNLIMITED power generator?! :D

  • @zujnu
    @zujnu 5 ปีที่แล้ว

    Grandioso proyecto...

  • @garethronaldo8692
    @garethronaldo8692 5 ปีที่แล้ว +1

    there is no join button 😫

    • @jamesbruton
      @jamesbruton  5 ปีที่แล้ว +1

      It may not be available in your country, or you're not logged in? There's always Patreon if you'd like to support the channel?

    • @garethronaldo8692
      @garethronaldo8692 5 ปีที่แล้ว

      @@jamesbruton yes i do