Lynxmotion SES V2 Hexapod Robot

@kurte @xan @zenta You should have each received an order confirmation for parts - please verify the details and indicate if there are any issues ASAP before they ship.

Sorry for the delay and thanks again!

4 Likes

@cbenson looks good

I was going to also order 3 more of the newer short C brackets as I made the mistake of thinking they came 2 in a package… But that is not at all critical. I was just updating it to be closer to I saw.

Thanks again.

Thanks. Not sure if made myself unclear, since I have the parts I need… But always appreciated.

If we all go for the same T4.0 board it would be more convenient, since I don’t have the 4.1 kurt made a board for. At the moment I’m thinking of the best way to connect up my T4.0. Also a bit delayed on everything since I’ve just bought a new PC for my workshop.

Hi @zenta, @cbenson and others,

Today I populated one of my new boards, that I have setup for T4.1, although would work to some extent for most any Teensy, like T3.6 or T4 with our without the FRDM, and probably the T3.2 as well although again some functionality won’t be available.

Right now I have the T4.1 beta board in it, will be swapping in a different one soon. As you can see, I have not populated the speaker part of the circuit, but have populated the connections that are setup to allow an Adafruit ST7735 or ST7789 display to connect in. The one end though does overlap some of the three pin header plus the QWIIC connections for the Wire buss. I did not find my right angle versions of these connectors so used what I had. Also you can see that the display works (This is one of their Small ST7789 displays.

Next up Test the connections for servos, will first ring out the TX pin to make sure that signal come out properly. I don’t want to fry any of the servos as I don’t have spares!. Then test the USB Host connections. That should be no problem as it simply runs the 5 pins from T4.1 to the connector.

I will also for the heck of it check out that some of the QWIIC things work, like maybe their keypad or button.
Anyway a little progress.

5 Likes

Quick update: I connected up the three servos of one leg and they are talking…
So will solder in the other 4 connectors.

Need to get back to fixing the math of the IK… But probably first may see if the USB connection is working and maybe create a simple PS3 input controller.

2 Likes

Neat! :smiley:

Another quick update:

Care package arrived, will soon spend some time redoing a few things on the legs. Thanks!

USB Joysticks:
I did a quick first pass at doing an Input Driver code for using USB based Gamepads into my version of Phoenix code porting for T3.6, T4 and T4.1. I am using T4.1 with the latest board.

Right now the Hexapod is not working at all do to my IK code being screwed up. But I do have the beginnings of code to be able to use some different game pads. The two main ones I will start with are the PS3 and the PS4.

Currently I have the code in place that uses the Teensy library USBHost_t36 to talk to devices over USB. The code is setup to allow me to talk to either of these directly with a USB cable or more fun using a Bluetooth Dongle which the device is bound to…

I am starting off really basic and setting up some Button mapping tables and if necessary Axis mapping tables, such that the code should be able to handle a few different types of controllers, by having an appropriate table for that type of controller. I have probably mentioned in the past, but there are a few different threads up on PJRC forum talking about the joysticks and Bluetooth, including:

https://forum.pjrc.com/threads/49099-T3-6-USB-Host-Joysticks
https://forum.pjrc.com/threads/49358-T3-6-USB-Host-Bluetooth

The question for myself and others, is, should my first default bindings for this code be setup like the old PS2 code base for the Phoenix, that is probably where I will aim toward, at least at first.

With most of the controllers we have code in to receive data, maybe rumble (little or big) and maybe set LEDS…

There are interesting things about different controllers, like:

PS3 - There are many cheap ones you can pickup. Issues in past with things like Linux is that they don’t fully adhere to the BT protocols, but many later versions of BT have hacks in them to make them work. Also many times you needed to use an external program to bind the PS3 to the BT dongle… Current USBHost_T36 Joystick Bluetooth test app has code in place that if you plug in a BT dongle and then plug in joystick (either after or same time using USB Hub), and press something like L1 or R1 and while holding one of those down press the PS3 button, it will try to do the bind process for you…

PS4 - When I was earlier experimenting with ROS, I found these much nicer to work with Linux, also I know they have stuff in them like Gyro and Accel… Another person working with me up on PJRC for USBHost and Bluetooth has updated the JoystickBT sketch to show some of this data, like:

LX: 127, LY: 124, RX: 129, RY: 121 
L-Trig: 0, R-Trig: 0
Buttons: 0
Battery Status: 110
Accel-g's: 0.245605, 0.292725, 0.931519
Gyro-deg/sec: 0.615482, 0.000000, 0.335717
Pitch/Roll: 197.445038, 194.770538

There are some other interesting Playstation options as well. I don’t remember what state the code is, for some of these. Examples are the Sony Navigation Controller, which has one button joystick, L1, L2 and HAT, which you can easily hold in one hand. Outputs from test app like:

 product: Navigation Controller
*** HID Device Joystick1 54c:42f - connected ***
  manufacturer: Sony
  product: Navigation Controller
  Joystick type: 1
LX: 22, LY: 5, RX: 121, RY: 128 
L-Trig: 0, R-Trig: 0
Buttons: 0
LX: 104, LY: 102, RX: 125, RY: 133 
L-Trig: 0, R-Trig: 0
Buttons: 0
LX: 120, LY: 121, RX: 125, RY: 133 
L-Trig: 0, R-Trig: 0

And it’s counterpart: Motion controller.
Mine my be dead, right now. It is setup for the right hand, which again detects your motion, plus has the standard buttons for the right hand side of PS3 (SQ, TRI, X, CIR), R1, R2, PS3 … Will see if having it charge for awhile in my Powered Hubs Charge port, will revive it or not.

What I am not sure of, is at one point I had a version (branch) of the library we had a code in place to allow the Bluetooth dongle to support more than one device. I am not sure if we completed it enough to do a Pull Request into the official version.

Will take a look soon. Too many diversions from making the hexapod walk.

Note: I did put up the WIP sketch with the USB stuff to github. I may probably rework most of this. Originally all of this builds as one object file with my (Phoenix in Parts) as to allow library files to be compiled with settings, i.e. everything is read as a header file, so the code can be configured…

But as I build it as one sketch may convert most of the .h files into .cpp files.

That is all for now. As I said ā€œQuick Updateā€ :smiley:

3 Likes

@xan @zenta Just checking if you’ve received the orders?

3 Likes

I confirm. Thanks. Got it a while ago. Will probably make a temporary solution to connect the T4.0 to the LSS board.

1 Like

Sorry for the later reply - didn’t catch the question originally. If that’s the easiest approach, and you have the hardware, seems good. Open to opinions about the ā€œofficialā€ controller when the kits are released.

When I was earlier experimenting with ROS, I found these much nicer to work with Linux, also I know they have stuff in them like Gyro and Accel…

Colin is eager to get started with you all on the hexapod and will be able to share his experience with ROS.

1 Like

Hi @cbenson - The question on what the buttons on the PS3 or the like should do is sort of secondary. Probably getting to the point that the robot can stand up, probably has a higher priority.

Sorry I am a bit slow at this, at this time of the year as busy with other stuff, like gardens and trails work, and …

Also as I mentioned, I also can and do go off on different diversions :wink:

Yesterday, I finished swapping out the short C brackets for the newer one, plus put the 3d printed feet in and mounted my newer board to the top of the Hex using the new stand offs…

Pardon the mess:

My sketch starts up, and I believe it is seeing all of the servos. I tried a one of my diagnostic commands to get an idea of offsets and I see one servo you can see toward the middle left is off by maybe 45 degrees.

Although actually I am wondering what everyone is setting up again is the logical zero points. Should the leg be out at the 90 degrees or should the leg be lying sort of flat to the ground?

Other diversion - Arduino released a new build, which implies Teensyduino needs to release an updated version, so helping test that out, plug getting some updates in.

Joysticks - The PS3s work easily with our current stuff. PS4 I was having issues with.

Then there is the possibility of using PS3 motion with PS3 navigation joysticks, needs my not released yet Bluetooth support for multiple devices. Also my motion joystick battery failed, so ordered new one and rebuilt it this morning…

Then there have been questions about using XBox One joysticks, we started trying to figure out how to support it. Most other USB libraries also don’t, so now trying to reverse engineer. Plus did find a Linux one, which I want to try out…

But then diverted into capturing the USB/Bluetooth conversation using Saleae Logic Analyzer. But example capture, of data, the capture file was about 18mb, the CSV output from it was about 1.8 million lines, the used linux grep, plus Sublime Text edit to knock this down to about 350 lines… So also now working with Saleae on the beta software, where maybe they will create what they call a ā€œHigh Level Analyzerā€, which can help with this type of data…

Oops as I said many diversions :smiley:

Now back to ???

2 Likes

Yes, I received all in good order. Exactly the components I needed. I hope share an update soon! :slight_smile:

2 Likes

For those of you up in Canada, I hope you had a nice Canada day!

Sure is quiet up here.

I just pushed up some updates to my test code including some fixes to the Phoenix code. Should hopefully stand up reasonably well soon :wink:

Been distracted with other things, like recently someone up on the PJRC forum area come up with a way to use GDB to debug a T4.x (and now T3.x) without needing to do a hardware modify… GDB at the linux command line level is semi crypic, but the people at VisualMicro have a version that integrated some of this in, which I have spent some time trying to figure out how to make it work… Today I had some success with it.

Although so far I have not been able to get it to dynamically set a break point by clicking on a line, but hopefully soon. Worst case when you want a new debug point you set it and then tell it it download and then connect to debug process…

So having some fun. Hope everyone is doing well!

1 Like

Appreciated! Happy upcoming July 4th. Hopefully all the experience and insights on the Teensy will come in handy here.

2 Likes

Thanks,

We will continue to try to be safe and avoid the pandemic…

The Visual Micro code with GDB is nice. Again it allows you to setup break points, look at variables… Yesterday it showed me one of my #ifdefs was wrong and some of my tables were only 4 enteries (QUAD) instead of 6 for Hexapod which was one reason the legs were going nuts…

And with this I have made some progress, with connecting to robot over usb with PS3. When not active I currently have all of the legs cycling through LED colors, to remind me that it is still plugged in…

Befor the PS3 connect

But then when the PS3 connects, the legs go up to one position. I hit the HAT UP button and legs go higher like you see:

I press it again it lowers, and if I hit the PS3 button again it disconnects and the servos go limp:

At some point soon I will figure out how to mount a battery and plug it into to my board, so it can walk without wires…

Some of the next things I will do is to add some additional PS3 stuff, plus maybe add the buzzer code, plus maybe show some feedback on the display, like which mode it is in, which gait…

But thought I would show that there is some progress…

2 Likes

Hi all,

Sorry for not being active for a while. I’ve moved to our new house so this needed a bit of my attention first. But today I finally got around assembling it completely.

Next step is to dig into the stack of boxes to find some batteries and a soldering iron to get the teensy connected. I hope to send an update soon.

Xan

2 Likes

@xan Congratulation on the move and we’re all happy to see you back here and participating again.

2 Likes

Good to see some progress here. Nice build @xan!
Meanwhile I’m trying to figure out the Teensy 4. Since I also want it to work on my current code and other robots. So far I have some issues doing pullup on output pin, since the T4 is not supported in the kinetis.h. Might need to post this on another forum though…

UART0_C1 |= UART_C1_LOOPS | UART_C1_RSRC;
CORE_PIN1_CONFIG |= PORT_PCR_PE | PORT_PCR_PS; // pullup on output pin

Report error during compiling.

2 Likes

@xan and @zenta - good to see you both up here :smiley:

UART0_C1 |= UART_C1_LOOPS | UART_C1_RSRC;
CORE_PIN1_CONFIG |= PORT_PCR_PE | PORT_PCR_PS; // pullup on output pin

Is setting up for Half duplex mode on T3.x… boards. T4s have different sets of registers.

If you look at my current version of dxlSerial.cpp (BioloidSerial github project)

You will see what changes I did, to on the T4.x boards. Note: I probably should remove the Serial.print
statements from it, but… Have not done much with them in awhile.

Thanks Kurt. A bit overwhelming at first sight though. Not even sure where to start. So serial 2 is using UART4?