I’ve been thinking about this a lot, as I get more into working with the Teensy 3.1. One feature that would be very useful to have are Arduino R3 shield headers that can handle either 3.3v or 5v shields. I believe the Teensy 3.1 has enough I/O pins to make all the proper signals available for the R3 shield headers.
I’ve been testing my code for W.A.L.T.E.R. 2.0 on the Teensy 3.1, and things are, working pretty well so far. The only thing missing in some cases is library support. The TeensyDuino plugin for the Arduino IDE v1.0.5 works very well and is in current development.
The Teensy 3.1 uses an ARM Cortex-M4 processor, has 256K program flash, 64Kb RAM, and 2Kb EEPROM, and runs at a maximum of 96Mhz (over clocked). As I stated in my first post about this, there is also the TeensyDuino plugin for the Arduino v1.0.5 IDE, which allows programming it just like a regular Arduino. Most of my code for W.A.L.T.E.R. 2.0 has not needed any (or very few) adjustments to run on the Teensy 3.1. I do have issues with a couple critical libraries at present though - the BMSerial and RoboClaw libraries for using the RoboClaw 2x5 motor controller.
So far, my two displays (7 segment and matrix 8x8), the DS1307 rtc, and the BMP180 temperature/pressure sensor work, without adjustments to the Adafruit libraries. I still have to test the G3D20 gyro, LMS303 accelerometer/magnetometer, TCS34725 RGB color sensor, and TMP006 heat sensor. All of these are breakout boards I got from Adafruit. I have a version of my Navigation sketch for W.A.L.T.E.R. that has everything except the RoboClaw stuff, that builds clean using TeensyDuino v1.18 RC2.
There is also an audio “shield” for the Teensy3, which I will order next month, that also has an SD card slot. If this works as I hope, I will putit on W.A.L.T.E.R. handling audio processing soon.
After a bit more testing of my code with the Arduino Mega ADK board, I am going to plug everything into the Teensy 3.1 and see how much of it actually works, without the RoboClaw stuff. This is my project for today.
Here is a picture of W.A.L.T.E.R. 2.0, with the Teensy 3.1 next to the display and sensor board. You can see the lit up red LED.
As I have mentioned before, I am having fun with my own TeensyDuino board. I have one built of my V.1 which is working pretty well on my PhantomX. Since then have continued to hack away on the design and may build a v.2…
The 2nd version allows me to attempt to solder on bottom connector and get another 12 IO pins. Also hacked up with the AX like connectors are and added the ability to run a 4th pin, which is setup to jumper to the RX pin of a UART… Not sure if I would need it or not.
Also not sure if I will fabricate this version to try it out or not.
Did not add Arduino headers as this would reduce area for other stuff and/or make big board
I would like to talk to you about this. I really think you’ve got something super good here, if you just take it a little bit further.
This is great! Having the ability to work with the Robotis AX servos, in addition to standard R/C servos, is wonderful! I’ve been wanting to get a couple to tinker with, but didn’t really want to buy an ArbotiX controller. I could see myself getting a couple of the servos, if I could get one of your boards, build it up, and make it work. I don’t have any test equipment yet though, but am planning to get one of those logic analyzers like you have at some point.
Of course, I think you should! I’d like to discuss this with you.
Yes, it would probably make the board a bit larger, but look at how Lynmotion did it with the BotBoarduino. I’m betting you could do a great job with this also, and hope you’ll seriously consider doing it.
That’s nice, but it’s less than what I need. Well, there are Arduino shields that have 3-pin headers, like the shield I am using on my Arduino Mega ADK board. I’d still much rather have something like a BotBoarduino, but with a Teensy3.1 or better procssor.
I will probably in the next few days put an order in to get a few of these fabricated. Not sure yet which way I will go (OSH Park, Seeeduino, …), Need to order a few more parts to make the new one. Before I do, I may update the board a little. On the one I built, I only installed a resistor to help protect the processor from the AX-Bus, but have additional stuff o circuit like xener diode, and before I also had a polyfuse that I removed from the design before first build. May revisit.
As for adding the Arduino Headers. Again a trade off. The current board is pretty much the same size as Botboarduino. The Botboarduino was a tight fit back then, and did not support an XBee and only had room for 18 3 pin headers. The Teensy has something like 28, plus other IO pins plus maybe 12 others. Also I am using larger parts as to make it easier to solder.
With my current Teensy design, there is also nothing electrical extending beyond the last IO pin of the XBee, as per the keep out guidelines (was pointed out to me on Trossen).
If I added the Arduino shield V1 pins, it does not make sense to have the 3 pin headers inside of the shield area, which would imply would need to grow board by sufficient amount to fit headers on both sides, which would imply it would not fit in some of the robots. And in some that it did, you would no longer have access from the top, to be able to change some of the wiring…
Again lots of trade offs.
Once I order a new set and it appears like it is working, I will post complete design files, so anyone can order new ones and if they desire, they can order some. Also I think some of these firms allow me to leave files online that ones can order from… Will have to see.
Have you considered that with Arduino shield headers, you could add an XBee shield, as well as other Arduino shields? I think the added flexibility you would gain is worth considering the addition. I’m continually amazed at the variety of Arduino shields that are available now. It also allows for the capability of adding functions to your board, where you could not do that without some sort of expansion header. The Arduino standard headers are already pretty well defined.
I think you may be a bit too hung up on board size. With the 3-pin headers on the outside of a set of Arduino shield headers, would the board really have to be so much larger that it could not fit on any Lynxmotion robot? I believe at present, there is plenty of additional space in each chassis to accomodate a larger controller board, except perhaps on the smallest robots. I could be wrong, but I don’t think the tolerances are really that tight on these chassis units.
I’m not sure about this. We’d have to define exactly which robots you are referring to with respect to this.
There always are and will be.
Anyway, as you’ve said, you are creating these boards for yourself, not me or anyone else. So, as always, you make it in whatever form works best for you. I just think you could be overlooking a major expansion capability by not including the Arduino headers.
As I mentioned and you echoed, there will always be tradeoffs. I have tried to keep the same form factor as Lynxmotion and Basic Micro have used in the past as to be able to fit inside the chassis of the existing robots. For many of the robots, this is not that much of an issue, however for some it is critical. Example Phoenix, or T-Hex, or some of the quads. With these, there is no spare room. When we were experimenting with the BotBoarduino (BBD)we looked at rounding corners, cutouts… to make it such that it would fit in some tight places. Obviously if you are designing new robots, or if you don’t care and bolt it to the outside of your robot, then the form factor may not matter as much. On some of the tight robots, I was able to move some stuff around and fit something a bit larger. Example I was able to fit a Raspberry Pi and an SSC-32U inside of the T-Hex, but I had to remove some of the supports and there was no room to spare.
Again the T-Hex is a great example of where the size of the boards were nice for experimenting. They have standoffs, which were setup such that you had access to the SSC-32 on one side and the BBD or BB2 on the other side, and all of the 3 pin connectors were accessible from the outside of the board. It is a great platform to experiment with.
As you mentioned, I could remove the XBee from my board and try to add an XBee shield instead which opens up the door for different shields. Good idea. But I have resisted doing so, especially with boards like the BBD. Why? Most of the shields like XBee shields are hard fixed to for example use the hardware Serial port (pins 0, 1). On Atmega328, this is the same IO as the USB, so you have to remove the XBee or the like in order to reprogram… On Arduino Megas, prefer to use other Hardware Serial ports, … But these are not often options for these shields… So I avoid. However on Arduino Leonardo and Teensy… The Serial object and USB serial or separate, so more of an option. So who knows maybe there will be a .3 version, but will wait to see how things feel later.
Yep - I will order another batch soon… FYI for those who want to play with Teensy: OSH Park has a nice price for them: store.oshpark.com/products/teensy-3-1
$17. I ordered 2 yesterday, total price $36 (USD) including shipping (Shipped yesterday as well). The nice thing about these are they are Purple, so if I order my boards again from OSH Park, they will match
The hard thing to figure out is when to pull the trigger. Example support for servos. I have support for the Robotis AX-12 (half duplex TTL like servos). I have stuff run to allow full duplex TTL like servos, which I believe the other brand of Serial servos that Robotshop sells uses. But Robotis high end use RS-485 communications. I doubt I want to put an RS485 conversion on my board as I don’t have any of these servos, and likely won’t.
Wondering if I continue along the Servo serial route, wonder if with my board design if maybe I should maybe allow the use of maybe two USARTS to be used for Servos as a way to allow for faster servo outputs and response.
Also trying to decide if I should leave a 5.1v zener diode on the TTL bus. I think the ones I ordered last time were different size than the pads I put on the board. Trying to figure out a good one that is not too big or too small. Nice if it was slightly bigger than an SMD 0805 as to make it easy to use.
Then Dale would love Arduino shield connectors.
Wonder if it might be nice to build on MicroSD support. Maybe …
I’ve been thinking quite a bit about this particular topic of form factors and fitting boards into tight places. I think having small boards like the BotBoarduino is wonderful, and it enables making some really cool small robots. I plan to do just that, in fact, over time!
However, sometimes, it comes time to rethink form factors for things, including robots. There is nothing wrong with having boards that have different form factors for different uses or robots. It’s much easier to design a new robot around a new, possibly larger, board, than to retrofit such a new board into an older robot design. As always, one has to really think hard on a new feature if it is going to cause an increase in board size. I understand this perfectly.
However, one also has to think hard on the advantages such a feature, like maybe Arduino shield headers (as an example), would bring to the board, as well as to future robot designs. It’s true that such a new board might not fit into an existing robot design, but how much more capable would a new robot design built around this new board with the new feature be? At some point, we have to move forward with brand new designs, but we do not have to leave the older designs to gather dust.
There are always places an older design can be updated and freshened. I expect the BotBoarduino to be around for a very long time! Look how long the SSC-32 has been around, with very little changes in more than the firmware and processor, and it is still BY FAR the BEST multiple servo controller in the hobby robotics market.
If I can ever afford to build a walking robot, the T-Hex is very high on my list of those I would choose for this reason and more.
You may be getting stuck inside the box a bit here, Kurt. Don’t think in terms of existing Arduino shields. Think in terms of what you can do with custom Arduino shields. If what you want and need for a project isn’t available, create it! I’ve seen you do this many times, with some wonderful successes! Build in the features you want and need, just like you are doing with your Teensy3 carrier board. I wish I had your skills with board design.
I do hope you make that .3 version, Kurt. I think it would be a shame if you didn’t do it. Yes, I’m a fan of your stuff.
I’m going to order at least two more Teensy3.1 with pins, and one without pins, next month. I just can’t afford it this month, because I have a large Lynxmotion order I’m awaiting delivery on for tomorrow (Friday). I am totally into this little board, and the more I work with it the more I like it! I have to wire up a USB cable to one of my current Teensy3.1 boards, because I pulled the USB connector off it. The other one is on W.A.L.T.E.R. next to the display and sensor breadboard.
Have you seen these Perma-Proto Boards from Adafruit? I’m going to use them to make some of my circuits permanent, like the display board with rtc (less sensors) on W.A.L.T.E.R. now. For me, these boards are the next best thing to being able to design and fabricate my own PCBs.
Could this be made switchable, so you could use the ports for either the servos or as regular UARTs? If so, then, it would be a worthwhile feature to add.
Well, um, YES, of course I would! Personally, I think this is one of the most exciting features you could add.
This would be nice, but if there were Arduino Shield Headers, it wouldn’t be necessary…
I did not solve everything, but did get it far enough along, that I ordered myself a new batch of 3 boards from OSH Park. $34.65. Can take up to a couple of weeks, but my first batch from there was pretty quick.
Will let you know when I get them and how it is working out. I have included here a zip file, which contains the gerber files I uploaded to them. After I uploaded it, I added the schematics and the layout files plus an excel document with the parts list. There are a few lines that are marked out. These items are replaced in the new version. There is a blank line and a few new items, these are replacement or added parts…
If anyone wants to play along, I can probably mark the project up there so you can order it, or you can probably upload it to them again to order. Or potentially you can use a different fabricator.
Thought I would mention, that I have also updated it just slightly and uploaded the files to the Trossen forum. The zip file I updated today should allow you to order from either OSHPark or Seeedstudio.
Today I also ordered a batch of 5 from Seeedstudio, to see how those work. Will see if they have any issues with the zip file. Cost a little less for 5 versus the 3 I get from OSHPark. But may take weeks to arrive. Note: I believe that I could have saved shipping costs if I ordered $50 worth of stuff.