With the first power up, I get my favourite fault: “Internal Error 500” - an error that caused some furrowed brows during the bench test period a few months ago was back!
After a brief, fruitless look for a solution, I bypassed the issue and just hooked up a monitor/mouse/keyboard directly to the RCU Pi so I could test the servos with the mouse on the Pi-hosted SGVHAK web page.
Setting aside that big, initial error, there were a few commissioning issues around the servo assignments and set-up. In a nutshell, at the right rear I managed to botch the drive and steer servo assignments. As a result, the first powered test saw that right rear corner attempt to twist the link cable off. Whoopsie!
A bit of mucking around sorted that situation out with just a bit of fuss – connecting the laptop to the rover to run the servo configuration software without dismounting the servos & BusLinker.
AND... a couple of the servo couplers blew out where the threaded insert is fitted. I’m pretty sure that was a result of my dodgy, fumbly, initial attempts at the insert insertion process. I got better at it as I worked my way through the required 38 and don’t expect similar failures in the near future based on what I can see of the other ones. We’ll see.
Back to the “Internal Error 500” problem… it seems that the error arises if you start the Pi with the BusLinker already connected.
If you either...
start the Pi with the BusLinker USB cable unplugged and then connect it once the Pi has settled...
with the Pi already running you unplug / replug the USB cable then...
...it’s all good.
I’m not exactly sure what the go is there. My guess is that the RCU Pi needs to complete its start-up sequence and be idling in a steady state before the code on the BusLinker chip can initialise properly.
Happy to have that issue sorted.
And so, Aussie Sawppy makes its public debut (below) with the traditional ascent and descent of a strategically-placed backpack.
Getting the rover going has been a cool achievement. Thanks go to the team here at home and to @Roger for having the guts and the gameplan to make his homage to Curiosity a public project.
Thanks, too, to @Roger for offering sage advice when I was flummoxed by the software side of the build.
I finally got the extra link cables from AliExpress / China. But they were the wrong cables! After waiting a month it’s frustrating to get the incorrect part – that’s online shopping for you! I ordered link cables to suit a Lewansoul / Lobot LX-16A servo but what I received were cables that match the other of the two sets of plugs on the BusLinker board.
The cables themselves are smaller cross-section and a ribbon style, too. Dunno what servo they fit but it ain’t an LX-16A. There’s no way to make the plugs fit - physically the wrong size / shape and pin centres not quite there. DOH!!!
Anyways, I lodged a dispute and got my money back. That bit was a super quick and fuss free process. Kudos to AliExpress and the vendor there.
I grumbled to myself about the situation for a couple of days but then had a brainwave – I had kept all the excess plugs from when I chopped up and reconfigured all the original cables! Bonus!!
So pulled the wrong plugs off the wrong cables and managed to make the salvaged ones fit. The smaller pin connectors will have to do. When the Frankenstein cable is hooked up, the plug connection isn’t as “full” as it should be but it’s good enough. Situation salvaged, we’re back in the game.
Meanwhile the RCU has been mounted in the machine.
There’s a new 1515 structural element installed across the rover body to support everything.
There’s a base board mounted to the chassis that’s kind of intended to be a permanent feature.
There’s a separate RCU panel with the Pi, BusLinker & transformer mounted on pedestals in an orderly, geometric fashion with the various cables set-up to be to be nice and neat.
The overarching idea is to be able to remove / refit the whole RCU with minimal fuss.
Admission: I made a classic rookie mistake in failing to account for clearances by barely leaving enough room to get a screwdriver (a New Screwdriver???) on the power terminal screws with the RCU in place (Pi gets in the way). It’s doable but not what I’d like it to be - fine but annoying. Doh!
Drum roll... and thus, the Aussie Sawppy Rev0 build is complete. Oi!
OK, so three weeks ago I said I had a chopped / hacked / optimised Sawppy power unit under development in OnShape. Well, I'm finally done.
For those not following closely (most?), I figured I could afford to optimise the power unit a bit, safe in the knowledge it was unlikely to require significant future modification, regardless of whatever else I end up doing with the rover. Thus I've spent a bit of time pondering the power supply set-up in order to satisfy my overly-finicky sensibilities.
Quick list of mods to the OS (Original Sawppy) power panel & battery tray.
spacers either side of the tray to keep the battery centred and aligned
integrated battery connector socket in the floor of the tray
recessed, panel-mount fuse holder on the power panel face
next size down voltmeter unit
voltmeter wires exchanged for pins so as to accept the battery balance plug
mostly hidden cable conduit in battery tray base
terminal block mounted on back side of battery tray
End result is a power unit that can be easily disconnected and quickly dismounted from the rover body. Pretty stoked with it. A nice example of what I'd suggest was fruitful pondering. Maybe it took too long, but that's fine.
Next sub-project is mounting the RCU components (pi, buslinker, tx) within the body of the rover. I already have some ideas there, but I'm sure more will come as I periodically stare at it intently whilst mumbling to myself at appropriate intervals.
Still waiting for my extra link cables from China...
Yeah, so the Xmas deadline came and went and the machine ain't near done yet. Doh!
Mostly, I ran out of time with the festive season crashing my spare moments. Although the root cause was actually a lack of progress MONTHS AGO. And so the project's critical path to completion (if it had a Gantt chart) became simply unachievable in the planned time-frame. No amount of additional resource allocation would have overcome the situation.
And, tbh, I'm quite enjoying the pondering aspect of this late-stage build phase so "time taken" is less of a concern than it was. Up to recently, I've pretty much just followed the solid, public-domain Sawppy recipe as laid down by @Roger. So the foundations of the machine are good. Now I'm wandering through the final electrical / mechanical build.
Generally, I'm not one to go with my first thought on anything - my first thought is rarely my best thought and quite often it's just someone else's thought anyways. Thus I'm happy to drop in and out of things, thinking hard and then dropping it, waiting for inspiration to strike. Dangerously close to procrastination, admittedly, but it works for me. My professional life abounds in hard deliverables, deadlines & budgets, so the stretchable slack in personal projects is a precious commodity.
OK, so quit rambling...
Progress has been on the wiring harness and tweaking the design of the official power unit.
Harness: In a nutshell, I deconstructed, chopped, spliced, soldered, heat-shrunk & rebuilt the three metres of triple-stranded wiring that came with the LX-16 servos to create the compact, neat, tidy shape I wanted. I've already used up all of the supplied wire, so I've had to order some more to finish, but that's OK. Our good friends at AliExpress will deliver the four additional link wires shortly.
The harness I've cobbled together mostly hides neatly in the offside channel of the 1515 extrusion with the help of some printed clips that I knocked up in OnShape.
So I'm stoked with the loom / harness.
On the power unit, I've decided that regardless of anything else that I might decide to do with the rover, the power unit will likely remain as it is so I'm doing my own optimised version. Thus, I have hacked, almost-complete versions of the standard battery tray and power panel sitting in OnShape. Design tweaks are around neatness / tidiness of wiring again. Some more pondering still to do ;)
So, yeah progress is slower than originally planned, but that's because I've decided (belatedly) to row my boat gently down the stream rather than be in too much of a hurry :)
Minor dramas in the process - I had to get the Dremel out to do some ...err ... free-hand adjustments to the wheel bearing mounts. In a nutshell, I had to shave some plastic out of the bearing recesses so that the back-to-back bearings would sit close enough together to allow the retaining E-clip / circlip to sit in its slot on the axle / shaft.
Next job is fitting the servos and then to work out the dimensions of the wiring loom.
So I finally have the software sorted and I can "drive" the servos on the kitchen table by logging onto the Pi's network with my smartphone. A eureka moment of sorts!
I pause here to thank @Roger for responding with generosity and verbosity to my requests for help in the last few days. Thanks, dude. I dig your style.
. Anyways, I did some dumb things on the way to this interim destination. I'll briefly lay out my errors below for the possible benefit of someone else having a crack at this project with the same limited exposure / ability as myself.
Misdeed #1: Save your edits. I evidently managed to skip this bit a couple of times even with the confirmation messages reminding me to do so.
Misdeed #2: If you are going to copy/paste rather than type text into files / command lines then make sure you select the whole text string / body - don't skip the last few characters.
Misdeed #3: When I edited the config_lewansoul.json file I got the format of the 4th line wrong - I missed the quotes on the path string. This is correct:
Misdeed #4: Well not so much a misdeed as a tip. If you run in test/develop mode on a laptop / PC then you may get an error message telling you that you do not have permission to access TTYUSB0. The answer is here if you run some variety of Linux: https://sudomod.com/forum/viewtopic.php?t=6075
Misdeed #5: if you don't have the Lewansoul Buslinker board powered up and plugged into the laptop / Pi when you point your browser at the appropriate address then you'll get Internal Server Error 500.
So, having achieved wireless control of benched servos, now I get to complete the mechanical build and get stuck into the electrical build. Noice!
Yeah, been away from here for some time. Other priorities have crashed the rover project to a large extent, although there has been progress.
Got the threaded inserts finally and put them all in place
Finished off the core chassis mechanical build with the differential & tie rods
Assigned the servo IDs - I just matched the standard scheme here for simplicity
Got the Pi sorted - Sawppy-tuned SGVHAK software loaded, wireless access point enabled
Having achieved all that I figured I'd go for a servo bench test before I go screwing it all together. This is the kitchen table right now.
And this still picture is a perfectly accurate representation of the action on the bench right at the moment, 'cos it aint working :)
The software seems to be doing it's thing, but the servos aren't responding.
Witness the Chassis Configuration screen after an Angle / Velocity command from the interface.
I'm thinking that the last line on the screenshot above is the issue. I have no idea what that means though, just at the moment. Gotta work that out when I get a chance.
For me and this kind of stuff, it's a case of trying something and then troubleshooting my way out of failures, learning as I go. I'm not sure it's a terribly efficient way of working - the google rabbit holes you jump down in search of (cascading) answers takes up time & energy. She'll be right though.
Anyways, having come to a frustrating halt here I have other things to do this arvo so I have to pack it up and try again at a later date.
I've always said this is a WWII job ("over by Christmas") and that's still the goal. Less that 50 days to go though now.