Sounds good!
I am always happy to share things like designs…
I did put up the current WIP board I did a quick and dirty update to hopefully support these servos… Still supports Dynamixels as well. Received notification today from OSHPark that the board was shipped off to manufacturing. I also pushed up the Design files to my set of boards on github:
Again has things on it that ones may not need and may not have other things. Example has connections setup that I can plug directly in an Adafruit ST7735 or ST7789 display .
And temporarily we can simply adapt a T4 to your board through the XBee connector. Many options here. Could do a real simple version which is simply brings out an Arduino Shield connector layout and add in level converter for those pins that talk to your shield to convert 3.3v to 5v.
@zenta - It would be great to try out your new walking gaits and the like, it sounded very interesting and if I remember correctly it would maybe be better for things like terrain adaptation. I believe it was converted over to use floating point math, which would work well with the T4 ad as well later with RPI.
As for controller devices, I see lots of possibilities. The Arduino Phoenix code up in (https://github.com/KurtE/Arduino_Phoenix_Parts)
was originally setup to be very similar to @xan BAP Phoenix code, where there is a simple interface that allows different Input devices to be used.
A few thoughts/possibilities here for using something like T4 or T3.6 and/or RPI…
a) XBee communications - Like the remote control mentioned. I have some version of that sitting around, but as one with 10 left thumbs I never could things move the way you can So I often simply used the Trossen Robotics Input commander:
https://www.trossenrobotics.com/p/arbotix-commander-gamepad-v2.aspx
Which is nothing special, It has two thumb joysticks and 8 buttons. For many years this is what I mostly used.
b) Simple RC remote - I purchased one of the Flysky, where I had a simple receiver which I believe I could decode with one IO pin…
I know that on Trossen @jwatte was using one or at least trying one. This gives you more range and less interference for those who wish to do things like Mechwar and not have issues of multiple robots…
d) USB controlled devices. The T3.6 and now T4 have a second USB port, where we have code to allow the Teensy to host some different USB devices like keyboards, mice, Serial Adapters, and Joysticks. I also added some support for Bluetooth devices. Some of the rudimentary support for this is in the current Teensyduino builds and some additional stuff is still in my own github branch… I need to get back to this, but got distracted when T4 was in beta now other distractions. But with this, we have tested out and I know other are using the support for things like:
PS3 controller, PS4 controller, XBox 360 with PC wireless Adapter, PS3 Move controller, PS3 navigation controller…
The parts of the BT support that has not been fully completed and tested fully included better support to work with multiple Bluetooth devices, like two PS3 controllers, like both a PS3 Move and PS3 navigation. It has been awhile since I looked at this, but I think the basics are there.
So earlier I was playing around with PS3 or 4 for controlling robots. And for many of us I think this would be a good starting choice. With the first Hexapod ROS stack (KevinOchs) that is what we were using. But again with ROS he was mainly interested in doing the ROS stuff and not as much about fine control of Hexapod.
d1) Side note: Robotis with their systems uses a real basic controller:
I would NOT recommend it. It has no logical joysticks, just something like 8-10 buttons. This is what they ship with TB3… It connects through Bluetooth. Note: Their Bluetooth setup is through a BT to serial adapter, which we could do as well, but…
Note: If we go with USB, I need to make sure whatever board I/We use supports USB for T4. My current one in fabrication I did not add the extra parts for T4 USB. It will support it on T3.6 and the T4.1 when it is released. The differences with T4 and T3.6 on USB, there is a 5 pin connector that is setup that you can simply use a some remote PC USB connector wires to use. It also has built in USB power limiting chip and two CAPS on the T3.6. The T4 does not, there are simply 2 pins that are often connected by POGO pins or the like and does not have the power chip/caps. Can work without those, but may be issue if you hot plug in device… Some of my other boards have it, but I removed those to make room for the Servo connectors…
Thoughts?
I like that you guys are talking about controllers. I was thinking I needed one for the biped soon enough as well and whatever you come up with I would like to adapt into the ROS2 ecosystem as well. ROS already has normal usb joystick integration. I was considering using an ESP8266 on Arduino platform which has built-in Wifi and add OLED, some buttons and joys. Would be pretty easy to code. I’d go with the newer ESP32 but I have a few and the Wifi network response is 10x slower! Probably a firmware issue but that’s where it stands ATM.
A controller which either Lynxmotion produces, or one which is readily available might be best from a corporate standpoint. Even a remote like the PS2 is (effectively) discontinued, and we have gone through many PS2 variations, each requiring tweaks, testing and troubleshooting. Sourcing has also lead to issues. A smart phone is very versatile, but maintaining an APP on Android will require quite a bit of maintenance (and is Bluetooth or WiFi control ideal?). RC remotes have never gone out of style. USB input can be interesting, though ideally a non-tethered approach.
Please Note: This is not a “reply” but some food for thought regarding moving away from a PS2 Controller environment. My comments here are added as a suggestion from Coleman at RobotShop and is my response to his update on PS2 Controllers. For context, it is an unedited excerpt from my reply to Coleman regarding this subject:
Here is some food for thought:
I own 8 Bots which are controlled via Apps by my Android Phone. 2 of these Bots no longer function as the company that manufactured the Bots no longer supports their Apps for updates to newer Android OS versions.
Besides this, Not one App allows for solid reliable control of Bot Functions and are “sloppy” in control to say the least and suffer from time lag as well. This is the same for Bluetooth and WiFi enabled Bots even with very strong signal present. On a couple Apps any swipe near the screen edge (where many of the controls are) automatically closes the App and this is frustrating to say the least.
I fully understand the manufacturing “control” advantages of using an App vs. a physical controller but caution that you at least consider a dual path until all the bugs are worked out.
The Phoenix PS2 control interface has at least 14 buttons and 2 joysticks which would be a challenge to replicate functionally on a touchscreen UI.
The fact that PS2 is old is a clear advantage in price and lack of license cost (either low or ignored by the supplier). Before you abandon these take a look at just how many New PS2 controllers can be found on EBay.
As you know, we seldom see IFU manuals with Bots anymore to save costs. A few years ago there was a movement to move away from hand controllers to Apps specifically to reduce manufacturing costs. Even my Mavic Pro Drone provides a joystick controller but relies on the user having a smartphone for video image display and dashboard information.
The inexpensive Bots using App controls have products which a physical controller is a significant portion of the total product acquisition cost (I estimate this to be a minimum of 20% for a physical control interface). For your high-quality hexapod kits a $24 physical interface control is a fraction of the Bot’s total cost. In my case less than 3% of the total build.
If you read reviews of App controlled bots (the thoughtful intelligent ones) you will see that few, if any, are satisfied with the App Controlled UI and I will remind you that these are from the perspective of mostly “toy” bots costing <$200. I also own an Alpha 1s and I would much rather have a physical controller than the crappy App it comes with.
Lastly, I spent over 20 years in marketing of hi-tech electronic and medical products. I would strongly suggest that before too much time and money is spent on App development and the severing of a PS2 (or any physical controller) product supply source, you can use your customer base and Forum to do market research and identify the Must Have Features any user would want and customer preferences. You could pose a simple question, “Would you rather have a PS2 or App UI? And a space for comments… It’s amazing what you may learn. You could even select a committee of your most active and vocal customers, product developers and supporters directly or via your Forum. Make sure that you have a balance of Pro and Con regarding UI types and a good representation of customer types (include educational type and commercial types if you can).
Here is one last thought. Do you ever see Battle-Bot tournaments using Apps for controllers? You need to ask the participants why this is then listen (don’t speak, just listen).
Okay, that’s my 2-cents on this subject and in the least I hope I may have expanded the scope of the conversation a bit (no pun intended). I do not have the robotic cred of the names I see on this thread but do have many years or RC (land and air) build and control experience coupled with product development participation in hi-tech electronics and medical devices.
Best Regards to All, this Forum has been a great help in my Phoenix Hexapod project!
Tobar8th (Bill)
@cbenson
Yes I punted a long time ago with PS2 controllers. They were too problematic!
Joysticks (ROS) - It has been awhile since I played it on ROS (http://wiki.ros.org/joy) , but there is/was a node you could install that can translate the Joystick axis/buttons from one joystick to another. For example I believe with the ROS Hexapod he set his up with PS3. Some of us used PS4, so we setup table for translating PS4 inputs into PS3 like values… (http://wiki.ros.org/joystick_remapper)
Joysticks with Teensy4/3.6 - Our first pass through was doing this with plugging the joysticks into the USB host adapter.
i.e tethered. Although did have wireless adapter for one of the XBox controllers. Some of the details are up in the thread:
https://forum.pjrc.com/threads/49099-T3-6-USB-Host-Joysticks
Later with the Bluetooth support, we have wireless support by plugging in a cheap USB BT adapter. More details are up in the thread:
https://forum.pjrc.com/threads/49358-T3-6-USB-Host-Bluetooth
As you mentioned at some point it might be great to have Android and/or IOS supported Apps, that talk through bluetooth, but that is maybe beyond my pay grade
@toobar8th I agree. Control apps havent been the best and it would be significant effort to code and keep up to date. Even with a good app you have to look at it since there is no haptic feedback. Nothing like some real buttons and joys there. It wouldnt surprise me if there is some IoT app out there already that a user could add buttons, controls and KPIs that could control the high-level stuff and accompany a hand controller.
cmackenzie I appreciate your input and viewpoint. I’m sure that from a advanced robotic development perspective the RC Controller advocates have valid technical points. However, from a specific product-kit standpoint (not R&D or development) you can’t beat the ergonomics of the PS2 Controller which SONY most likely spent millions on R&D and testing to get right (note that there is little change over time in the form, fit and function during their evolution) and we can ride their “coat tails” for next to nothing. I would guarantee that there is no other RF Controller out there with even a tenth of the resource investment that SONY has made in their controllers. They have already done the heavy lifting for us and Bill Porter did us all a great service in decoding the PS2.
Earlier in this conversation there is a $30 RF “bat-wing” controller identified with a link. It accepts different Tx modules for your choice of transmission type (which is cool and could then be used with multiple projects using RF, IR or Bluetooth). This could be a good compromise but it is difficult to replace 14+ buttons with 2 Joysticks for complex control functionality in such a compact ergonomic form. I believe that this $30 controller only has 10 buttons BUT there were over 1,000 button functionality combinations (if I understood correctly) which, I gather, means that you would need to also commit more paired button functions to memory than you do now with your PS2 . Change is always uncomfortable.
And then there’s stuff like RB-Dfr-223:

I feel that controller (or something like it) may be a good middle ground. It has all the buttons, joysticks and ergonomics of a PS2 style controller with the smarts of a programmable microcontroller board (Arduino) with a replaceable Bee-socket compatible wireless module.
I’m not saying it is the best solution, but it seems like a fair contender to me:

It is often needed the most when it is most uncomfortable…
Again remember this is just my $.02 on some of this.
The RB-DFR does look sort of interesting in that it looks similar to PS2…
But it looks like it does not come cheap USD about $63, plus you need to buy XBee or BT… And or course if RobotShop wishes to make this a standard, that is fine.
Again PS2s were interesting back in the earlier Lynxmotion days. Yes they can still be viable, but they could be very temperamental as it felt like each time you got a new shipment from a manufacturer, they we often not compatible with the previous ones…
Which is why a lot of us went to PS3’s when we were doing stuff with ROS… BUT PS3 are not fully compliant with Bluetooth standards. So for a long time to use those with Linux you might use something like sixaxis to work with them and again they could sometimes be tricky to get them setup. Which is why I often then went with the PS4 controllers, like:
Which is what I mostly used when I was working with the earlier ROS hexapod… Also do have support for these with the Teensy.
As for using something like Iphone or Android and missing things like buttons. I have seen things like:
But have never tried anything like them nor know anyone who has.
Sorry some additional ramblings here…
Thought I would mention, I hacked up another board design, which I might order a set that is the same size as LSS … board.
It has Arduino headers, plus a duplicate row of pins for other things.
I added TTL level shifters for pins 0,1 and 8, 9 U also currently have setup a solder jumper for what gets fed to 8 and 9 (like I have (either 7, 8) going to 8 and either (8, 9, going to 9) as to hopefully route a Hardware Serial port to the XBEE pins. It also has two sets of I2C connectors which are compatible with the Adafruit(Stemma QT) and Sparkfun(QWIIC) I2C stuff…
Will do a little more cleanup before I maybe order set from Sparkfun, or PCBWay
@kurte Your board looks nice
From what I understand, this board would be used in conjunction with the LSS Adapter (converting the 3.3V serial signals from the Teensy to the LSS servos), right ? If so, what would be the USB Type A used for ?
@kurte That advanced quickly! You certainly have some talent for PCB design. Some questions:
-
The LSS Adapter is made to have an MCU below it, and act as a shield; it looks like some of the parts might be too high if the LSS Adapter is above the board, especially given the short length of the male headers compared to the female headers - confirm? A work-around would be to swap the shield compatible headers for female once and use M/M headers to stack the LSS Adapter.
-
Not sure what the type A USB connector is used for?
-
Will this board be powered from the 5V pin on the LSS Adapter?
Good morning,
Just having some fun playing with a first design and seeing things that I and maybe others might like. Warning though, remember I am a retired Software Engineer who simply likes to dabble, so my electronics are probably not as good as some good EE type might design. But again it is mostly for my own fun
Most of the time, when I am done with a version (ready to build one) I will put the designs up on a github project of mine with both the Diptrace files and zip file with gerber and drill files that I ship off to places like OshPark or Seeedstudio or PCBWay… Although with the Virus stuff not sure… That is for example where @zenta was able to grab versions of my 3.x boards.
@bdaouas - Yes it was setup to work with your LSS adapter, although I am/was thinking about throwing in the option of one or more of the LSS servo connectors on the board in case you really need the capabilities of your adapter board.
USB Type A connector - The Teensy 3.6 and T4.x support host mode USB on a second USB port. We have Teensy USB Host library, which has support for several different types of hardware, like: keyboards, joysticks, Mice, Serial Adapters and some Bluetooth support. So again for me, I may very well try to control robot using DS4 controller that is setup using simple BT dongle plugged into that port.
@cbenson - Note: The 3d rendering here is done by Diptrace using 3d STL files and the like that I have cobbled together from different locations, which may or may not be close to actual parts I might build with. Example the yellow shield connectors, could choose to install taller ones with more clearances. Pins outside of those shield connectors, could be right angle pins and again are optional. Only if you are like me and wish to have access to everything. Many of those pins would not be useful if you plug in a T4 as it only has the first 14 pins on each side. But there are some adapters which I have used that convert the bottom pins into T3.6 format, and you can use a T3.6 and at some point in the next few months you will be able to get a T4.1 (Note I don’t know the actual release time frame for these).
Power wise, so far I have it playing pretty simply and have the USB connected to +5v. so yes it would run off of the adapter power.
However if I wish to make it more independent of your shield, I might make it have simple jumper or switch to use either USB power or external power.
And if I go that route, I would probably put on my own DC/DC converter. I would not want to run the Teensy using VIN as on board converter does not like 12v… In some of the designs I have played with I have used some of them from Pololu like:
On some others I used some from Murata like:
https://www.digikey.com/product-detail/en/murata-power-solutions-inc/7805SRH-C/811-2644-ND/3438627
The Murata one I used as that was what Trossen Robotics was suing on their boards. I switched mostly to the Pololu as another member recommended them as they could handle higher voltages… Although I never have need 4S lipos…
I have also gone with cheaper voltage regulators, but you are trading off power usage and heat for price…
Thoughts?
For the heck of it I did another version of the board above that has more stuff on it, to allow you to use it without needing the shield. Although it is still setup to be able to use one if wanted.
I have on it one of the Pololu .6amp 5v DC/DC converters, power connector 2 LSS servo connections, switch to choose which power that goes to power the Teensy. The fun of these designs is that depending on your needs, you only fill in the parts needed…
So far I have ordered any of these two, trying to decide which way I want to go
On the LSS bus did you add a weak pull-up on-board for the Teensy RX or will you use the Teensy’s internal pull-up for it?
@bdaouas Just to confirm, what’s the pull-up used there?
In the picture above, I am using the same circuit as the Sparkun level shifter so there is a BSS138 transistor and two 10K PU resistors connected, one on the 3.3v side one on the 5v side. In the above picture for Pin 0, that is Q2, R14 and R15, Same for pin 1 and pins 8 and 9… Wish your software serial on your adapter board was on either 7,8 (or 9, 10) to match up with T3.x/T4 hardware serial pins., but made do.
Not sure if it would show up better showing the actual current board layout: