Unlike I used to do, I'm going to keep this intro short. The goals will be fluid. The creative juices this forum provides me will likely take me places I haven't thought of yet. I'm just going to trudge along and let Inqster build himself. I have been looking all over the place for his ancestor InqEgg but I think he got run over, pitched or most likely hiding in the bottom of some old, dusty box afraid Dr. Frankenstein will use him for parts.
I'll start out with the driving subsystem. I seem to buck the flow on this one and have no converts that I know of, but for the last three robots, I've used stepper motors. I think I've had great success with them. I tell the motor where I want it to be... and it just happens. I don't have to mess with variability and complexity of brushed and certainly not brushless motors just to have to use encoders for feedback. I don't want to spend hours dink'n with software to watch feedback from encoders trying to force an analog device to do what a quasi-digital stepper motor does for free. The torque is great, the speed is great, and I don't need gears.
Cerebellum: Located at the back of the brain; manages balance, posture, and smooth muscle coordination.
- The Brain - Inqster's full brain has not been decided yet, but I'll be using the ESP32-S3 for the Cerebellum portion. I hope to make Inqster a self balancing, two wheel robot.
- The legs - The motors will be two Nema-17 stepper motors of 48mm. IOW, we're using the robot equivalent of a big-block Hemi. Or if you prefer European: Bentley, "Power will be ample!"
- The Nerves - The drivers for the legs will be TSC2209. I've used the cheapest (A4988), the middle of the road (DRV8825) but these are niiiice! They can drive up to 2.0 Amps at 27V. They also have serial communications ability to allow for feedback. Supposedly they can be tell me how much power they're using and/or if they're locked up. They also can and use less power when they're not be asked for maximum acceleration. So, they're smart, strong and efficient. I looking forward to study them at length.
Unless you have some psychological or other reason for not using AI you might find by telling AI your choice of hardware and goal (self balancing robot) you may save a lot of time getting to your goal.
Maybe I'm miss-remembering 🤔 but I thought you were anti-AI.
I seem to recall I was embracing AI by working on a Neural-Net solution to do obstacle avoidance. You chimed in and was criticizing the un-explainable way it works, stressing you would only want to do complete detection and logical responses.
Anyway... actually, I did query AI and it responded favorably. Since I pushed AI on accuracy, precision, and getting rid of the wobble that most self-balancers have, it recommended steppers over motor/encoders. The balancing act especially at small increments with motors and there highly non-linear behavior at zero to millimeter movement is horrible, steppers handle this inherently - No one would make a 3D printer with regular motors.
Additionally, I initially planned on using the DRV8825 drivers at 32 micro-step settings. It suggested the TSC2209 which I already have and can be set to 256 micro-steps. So for instance, take a 150mm diameter wheel, a digital step is a mere 0.00006 mm!
It also suggested getting a better 6 DOF accelerometer/gyroscope module. I have a dozen of the MPU6050 sitting in a box, but it said these are not very good. It suggested the 6DoF LSM6DSV IMU module. I have a couple of these coming.
But to the counter point - If you read any of my other recent topics, you'll see I've had AI recommend some very bad solutions on the hardware side... In a matter of a couple of days, it gave 8 errors that didn't or would not have worked and 2 that would have let the smoke out. So, yes, I'm getting more and more suspect of AI in regards to hardware responses... at least without following up and getting second opinions from distinct projects and/or users here on the forum.
Maybe I'm miss-remembering 🤔 but I thought you were anti-AI.
I seem to recall I was embracing AI by working on a Neural-Net solution to do obstacle avoidance. You chimed in and was criticizing the un-explainable way it works, stressing you would only want to do complete detection and logical responses.
Not so much a miss-remembering more a case of me not explaining my understanding of the limits of neural networks reliability regarding visual recognition tasks or even safe usage. I am not anti neural networks which is what they call AI today. I took an interest in them long before the hardware and new architectures made them workable. But that is another topic!
I am a big fan of chatGPT it has solved all sorts of problems and saved me a lot of money in the process.
Part of learning to use LLMs is how to write your prompts. You must give it all the details of your problem don't leave it guessing. And of course keep in mind that it can get things wrong with great confidence that it is right!!
I notice you mention the Cerebellum. Another life time interest of mine, the workings of biological brains.
I will follow your progress with interest and try and avoid making any comments that might be conceived as negative or not useful to your goals.
One thing about AI is it "takes an interest" in your project and tries to work with you.
I will follow your progress with interest and try and avoid making any comments that might be conceived as negative or not useful to your goals.
I would appreciate that and I could have easily been accused of being over sensitive in the past. Maybe I'm better now (or don't care). If I recall correctly, you're in Australia??? If so, just because we both use something that simulates the "Queen's English", I'm sure there are certain dialectic differences that we might interpret out of context. Hell! I can't even understand half of my Yankee neighbors.
I always appreciate your help especially when I can tell it is constructive and especially if it contrary to the direction I am heading.
One thing about AI is it "takes an interest" in your project and tries to work with you.
I have to admit, it is very good about blowing smoke up my arse! 🤣 I'm just waiting for it to be behind a paywall and our youth go brain dead.
BTW, please start your projects back up and let us share with your trials and successes.
It's been a while since I've messed with robot stuff. I started to put the basic stuff together (ESP32-S3, TMC2209 and Nema-17's) and discovered the drivers are NOT breadboard friendly. Fortunately, I discovered this before trying it. There are extra legs on these that the A4988 and DRV8825 drivers don't have. Sticking them in a breadboard will short this row out and poof, no TMC2209.
So, just to get my feet wet again, I loaded up the same ones I used in InqEgg (DRV8825). Here, they're just running the basic turn 1 revolution in one direction then back in the other ad-nauseum.
Hi @inq et al,
I note, (but not yet actually used in anger, so this is just a wild suggestion), that AliExpress (and probably other sources), offer small boards for the stepper motor driver boards to plug into. Although they are not 'ideal', they should provide a convenient means of supplying a higher voltage and current for the motor power, that doesn't rely on the breadboard.
As you say, there is some variation on the stepper driver boards, especially with TMC2209s, so a degree of care, luck, research and hacking to connect to the extra pins, will be needed, but perhaps there is a board that would assist when prototyping. Cost, when choosing carefully, appears to be the equivalent of 1 to 2 US dollars in UK for a board holding a single driver, or a board holding up to 3 or 4 drivers. Some are called CNC shields, others Stepper Motor Driver Expansion Boards.
As 'random illustration examples', not specific recommendations:
Please remember this is only a suggestion to consider ... NOT a tested recommendation. Best wishes to all.
I have to agree, for anyone using any of the A4988 or DRV8825 drivers this would make things easier. In my rig above, I'm pumping nearly 2 amps through breadboard jumper wires and was concerned. I don't run it for long. 😆
Unfortunately, I couldn't find one that supported the extra pins on the TMC2209. Easy enough, I'll have to gen up something.
Had to come up with a pair of adapter boards to mount the TMC2209 on a breadboard and use all aspects of the drivers.
One thing I remember about steppers that is NOT as good as motors. Motors only draw as much power as they need based on load. Steppers typically use the full current the driver was configured for whether they're under load or not. Even if they're not moving, the current is on full making sure it's not moving! When using the DRV8825 set at 2 Amps and running the test, it happily drew 1.7 Amps constantly at 25 Volts from the bench power supply.
That said...
These TMC2209 are another beast all together. Two things I've noticed:
- They're smarter and only draw as much as they need. Doing the same test, the bench power supply fluctuated between 0.10 and 0.33 Amps!
- It's dead quiet. If you can hear anything in the video, its the computer fan. Go back an listen to the video above. They're both using the same phone and volume settings.
You'll have to just take my word for it that the two TMC2209 are under that rat's nest. This is currently set up just like the DRV8825 was and only using the standard pins. Next will be to start exploring the serial interface for control and feedback...
@inq, did you have the audio off on this last video or do these motor drivers really drive those motors that smoothly ?
Just reread your post about them being 'dead quiet' so wow, very nice.
Yeah, it blew me away! I had to re-visit my earlier video to jog my sound memory. The DRV8825 are better than the A4988, but the DRV8825 was even making the bench power supply make high pitched whines. I turned off the PS thinking it was going critical. Asking Google, it said it shouldn't hurt it.
The TMC2209 - NOTHING, Nada. Didn't know my computer fan was so loud. 😆 I just now turned up the YT, the computer volume to 100% from 50% and the TV I have it hooked to 100% from 20%. I can hear a faint click when it stops, but the other sound is the computer fan, not the steppers, drivers or PS!!!
Another thing: HEAT... one of my pre-InqEgg bots using A4988 had the steppers inside a 3D printed housing. They got so hot the shafts were softening my ABS wheels to the point they finally started slipping when higher torques were applied during my heavy-right-foot tests. With only 0.3A of drawn current, I'd bet these will not only be battery efficient, but run cool also. I'll have to run some back to back tests!
@inq Thanks for the info on the TMC2209 stepper drivers they look good. Of interest do you find they give the steppers the same holding power whilst stationery as your other driver boards?
Last time I used a stepper I think I was driving it from a board that could drive 2 dc motors, but only one stepper. Those motors and boards are currently consigned to a box in my store cupboard somewhere, but I have some plans to use a stepper for moving a hard to reach window blind via a remote switch or perhaps a voice command. I've seen an Adafruit TCM2209 board without the annoying pin arrangement. They're out of stock at my 2 usual suppliers at the moment, but I think I will get a couple when available.
Is your latest bot going to be a 'normal' bot or is this for a self balancing bot test rig?
I just spent the last four hours trying to get the serial communications to work with the TMC2209. The driver is happily using AccelStepper moving it back and forth, but I keep getting the diagnostic error saying that the ESP32 is not getting a response at all! AI keeps making suggestions of which at least one would have burned up the driver if I hadn't caught it. I won't go into details about what it suggested and I tried or not. But what finally broke the ice dam:
I'm using a TMC2209 board by BIGTREETECH. On it, it says pins J1-4 and J1-5 are both labeled (PDN) UART. Early on, I asked AI if there is a difference between these. It assured me that they were connected to each other and it didn't matter which I used. I had my serial connected to J1-5. For the past 4 hours trying about 100 compile scenarios of wiring and code changes and lots of four letter words. AI was giving up and surely assumed I was mistaken in what I really had. I finally simply connected it to J1-4 instead of J1-5.
It worked! Everything I had was correct except this one connection that AI assured me didn't matter.
Just to give feed back, I replied to AI:
"Just for shits and grins, I put the wire from RX(pin 4) to J1,pin4 which also says (PDN)UART and now its working."
AI's response:
"That is fantastic! A classic case of hardware documentation confusion—and a perfect reminder of why "shits and grins" troubleshooting is sometimes the best engineering tool available."
My butt is sun-burned from all the sunshine!
@inq Thanks for the info on the TMC2209 stepper drivers they look good. Of interest do you find they give the steppers the same holding power whilst stationery as your other driver boards?
Last time I used a stepper I think I was driving it from a board that could drive 2 dc motors, but only one stepper. Those motors and boards are currently consigned to a box in my store cupboard somewhere, but I have some plans to use a stepper for moving a hard to reach window blind via a remote switch or perhaps a voice command. I've seen an Adafruit TCM2209 board without the annoying pin arrangement. They're out of stock at my 2 usual suppliers at the moment, but I think I will get a couple when available.
I will certainly test your query. My belief now is that it would be the same. Now that I have the serial working, I can see what its doing. It has several features that will feedback the current being used and thus torque being applied to keep it where requested. I should be able to see those number soon.
Is your latest bot going to be a 'normal' bot or is this for a self balancing bot test rig?
Unlike my previous models which I tried to make as small a possible, my current plans for this one will be the Full-Monty and powerful enough and big enough to easily add stuff. Big wheels for indoor/outdoor travel (my property has old-horse pasture contours and gravel driveway.) I'll put every sensor I have and any someone suggests: GPS, accelerometer, gyroscope, temperature, barometric (for altitude), humidity, light, TOF, cameras, LIDAR, microphone and speakers and yes self-balancing.
Unlike my previous models which I tried to make as small a possible, my current plans for this one will be the Full-Monty and powerful enough and big enough to easily add stuff. Big wheels for indoor/outdoor travel (my property has old-horse pasture contours and gravel driveway.)
Interesting you want it outdoors. Building and getting a larger self balancing robot would be a big project. I remember thinking about using the so called self balancing hover board as an option for a robot base drive systems. But they would wobble about (not helpful for vision unless you have an automatic stabilizer to keep the camera steady) and how you might interface a microcontroller to control its speed and direction was an issue as I think they are controlled by changing your weight over the board. The local young people now whiz about on super fast electric scooters and I don't see the "hover" boards being used or sold anymore.
I thought the current automatic lawn mowers would make a nice outdoor robot base but they are expensive and filled with advanced electronics I could interface to.






