Page 1 of 11 12345 ... LastLast
Results 1 to 10 of 107

Thread: YATB - Yet Another Teensy Board :D

  1. #1

    YATB - Yet Another Teensy Board :D

    For the fun of it and to do some experimentation, I put together a new Teensy board, that is the same size and has the same hole pattern as the Arbotix-Pro. A few weeks ago I had a Oshpark fabricate three of them.

    Click image for larger version. 

Name:	Teensy-Arbotix-Pro.jpg 
Views:	217 
Size:	41.8 KB 
ID:	6184

    Yesterday I assembled one of them:
    Click image for larger version. 

Name:	Teensy-Arbotix-Pro-Assemble.jpg 
Views:	251 
Size:	67.2 KB 
ID:	6185

    I did not install the 3.3v voltage regulator, as in my case I don't think I need it. Also I could probably have also avoided using the 5v regulator and simply use USB power to run the whole thing. Especially if I had used one of the new Teensy 3.2's (http://www.pjrc.com/store/teensy32.html), which is the same as the teensy 3.1, except he is now using a different bootloader chip (same one as Teensy LC), which gave him more room, which he used to install a better voltage regulator...

    I made the board to be reasonably close to that of the Arbotix-Pro, such that I could try it out to act like one, but I did not make it 100% compatible. For example I did not add the buttons, Leds, X-Bee... But I did include some of the things from the Pro, like that ability to turn the power on and off to the servos and also used the same IC to protect the processor from the AX-Buss.

    So far I have just done a couple of real simple tests to see if anything works. I know I can blink the LED on the Teensy, I know that I can turn on the servos and that my Servo test that is part of my Teensy Test program appears to work, that is it can move servo ID 0 up and down... Can make noise.

    Next up - Write a simple Arduino sketch, to see how well it might work to emulate the CM730/Arbotix-pro. The code will loop reading input over the USB, and pick out packets. If the packet has the ID associated with this device it will return data or do things. If not it will send the data out over the AX-Buss and if appropriate, it will receive responses from the Servos that it will then echo back over the USB. Not sure yet if I will leave the Teensy configured as a Serial device or if I will configure it for raw HID (which is what I think the USB2AX does).

    I also installed an Adafruit BNO55 9 Axis IMU, and also hopefully have the board setup that I could also try out the Sparkfun LSMDS1 IMU instead. Assuming I build a 2nd board and purchase one from Sparkfun...

    Will see as I go. Anyway Just having fun.

  2. #2
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,135
    Images
    27
    Rep Power
    264

    Re: YATB - Yet Another Teensy Board :D

    Hmm. Beat me to the punch again. Was thinking about picking up a Teensy 3.2 from OSHPark to see how easy they are to use and how well the USB actually works, since a big issue with the CM-730/Arbotix-Pro is their continued reliance on the raw arm-none toolchain and old STM libraries instead of Arduino or mbed. Most arduino boards are a bit big for my taste and the STM Nucleo boards are laid out to fit arduino shields, so Teensy started looking very nice. Was thinking about a small shield for the Teensy with IMU centered inside the Teensy socket, two UARTs with ICs for TTL and RS-485 DXL on the end opposite the USB connector, and everything else broken out to 3-pin servo headers along the Teensy socket.

    Also been looking at options for a Hi-Speed USB dynamixel controller: the FTDI FT232H (plus arduino, mbed, or teensy socket to handle psuedo sync_read/bulk_read of AX servos), or Atmel SAMS70 for a single IC solution. A Teensy or breadboard-compatible Arduino with native Hi-Speed USB would be super.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    bleh

  3. #3
    Join Date
    Jan 2008
    Location
    Norway, Stavanger
    Posts
    774
    Images
    276
    Rep Power
    70

    Re: YATB - Yet Another Teensy Board :D

    Looks like your having fun Kurt!

    Maybe the title should be YAKEB (Yet Another KurtE Board)
    The Adafruit BNO55 9 Axis IMU sure look interesting. It looks like it is twice as fast as the Razor 9 DOF IMU, also smaller formfactor.

    Keep the boards coming Kurt!
    Kåre Halvorsen aka Zenta
    ---------------------------------
    Zenta's YouTube channel
    Zenta's Blog
    Zenta's Instagram

  4. #4

    Re: YATB - Yet Another Teensy Board :D

    Thanks Kåre,

    I have not done anything yet with the BNO55 yet, but looked interesting when some one earlier posted information about it on the forum, so I thought I would give it a try.

    Tician: I have had a lot of fun playing with the Teensy 3.1s. Paul of PJRC does a lot of great work improving the libraries and the platform, so thought I would have some fun with this. I have a few other boards I have done for the Teensy, including a smaller one, which I may at some point rev some with what I learn with this one.

    So far I have not done much with the USB on the Teensy, except to program them and display messages, So I am looking foreword to see what it can do, should be fun.

    Also assuming I can get the functionality to a reasonable point, I will also be looking at the current state of being able to program the Teensy directly from one of the Linux boxes, like the Odroid or RPI2. Not sure if that will imply compiling the code on these boxes or compile the code up on the PC and simply have a code downloader run on the Linux box.

    Kurt

  5. #5
    Join Date
    Mar 2015
    Location
    Texas
    Posts
    336
    Images
    15
    Rep Power
    25

    Re: YATB - Yet Another Teensy Board :D

    This is cool Kurt. Are you able to sense/report the voltage? I'd think that would be a very useful exercise along with getting properly orientated IMU readings. I'd also guess this was a bit more affordable to put together.

    Looking forward to seeing what comes of this
    01001001001000000100110001101111011101100110010100 10000001010010011011110110001001101111011101000111 0011

    My Instagram
    My YouTube

  6. #6

    Re: YATB - Yet Another Teensy Board :D

    Thanks Renee,

    Yes I do have a voltage divider setup on the board (40K/10K) setup to Vin to allow me to read in the system voltage. I will be setting this up to return as one of the logical registers.

    Once I have the basics working, I will then start to play with the IMU and hopefully will figure how to properly set it up.

    But this may take me a little time. I will probably first try it out on my PhantomX and replace the USB2AX. At first I will have it just doing the same simple stuff, where it more or less just forwards data back and forth, plus probably the sync read code.

    Then I will maybe look into adding some support like I did with my custom USB2AX code, where I can have it take care of the servo interpolation. That is I would like to tell it something like: move all of the servo to some new locations in time N, and it will take care of figuring out how many times to update each of the servos. Note sure if I will do it like I did for USB2AX or setup some new way, where for example tell the system, that when you finish your current move, start up this new move... My guess is I will do it a similar way to what I did earlier, which was sort of modeled like the Lynxmotion SSC-32...

    My goal here is to hopefully make the legs/arms work as smoothly under Linux as it did earlier with Arduino/Teensy.

    I may then also try adding some support to have the Teensy maybe query the servos, probably in some round robin scheme for feedback information. Example maybe check servo temps or current positions... If I build this in, I would like to have it setup such that the timings of this will not interfere with the timings for the interpolation.

    Assuming this works OK, I may try a subset of the code on one of my earlier smaller boards as well (minus IMU and other hardware specific things).

    As for cost? I have not added it all up yet for a fully populated board. Also depends on how much I populate.
    Example: voltage converters (from Digikey both the 5v and 3.3v regulators cost $4.30 for 1) But as I mentioned I may not need either of them, if I feed everything through the USB. Some of the things you do need:
    Teensy 3.1 or 3.2: $20
    Adafruit BNO055: $35
    Power connector: $1, maybe $1-2 for caps and like for power
    (ability to turn servo power on and off): Mosfet $4.67, Other transistor: $2, plus a little glue maybe $1
    Servo EMI Protection maybe $1 (.54 for chip)
    Servo connectors: 6*.42 or about $2.50
    Optional speaker (buzzer: $1.31, transistor $.23, resistor: $.10)
    Other IO pin (maybe 1 100 pin breakway connector) $4.37
    Also I don't have one yet, nor do I know how well it would work, but I tried to have the board setup, such that instead of the BNO055 you could use the Sparkfun (https://www.sparkfun.com/products/13284) LSM9DS1 which is about $25

    Assuming I make progress with this board, I may try one with the Sparkfun unit as well.

    Now back to playing around!
    Kurt

  7. #7
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,135
    Images
    27
    Rep Power
    264

    Re: YATB - Yet Another Teensy Board :D

    Another option for getting IMU readings would be some of Kris Winer's Teensy-3.1 micro boards that solder to the bottom SMD header of the Teensy-3.1/3.2 to give you 3/3/3/1-DOF for acceleration, rotation, magnetic field strength, and pressure, respectively. Somewhat tempted to try out the LSM9DS0 micro breakout, but would not be centered on the teensy's footprint and may slip/slide on teensy's pads during soldering so as to not be consistently located relative to another shield holding the TTL/RS-485 dynamixel comms ICs and mounting holes. Also, some of the trace routing on his boards makes me queasy.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    bleh

  8. #8

    Re: YATB - Yet Another Teensy Board :D

    Thanks Tician,

    Looks like a nice simple breakout board for the IMU. For now I will try out my board(s) with the two IMUS (one Adafruit other Sparkfun). I ordered one from Sparkfun which should arrive tomorrow.

    Right now I am playing with my code base to semi emulate the functionality of the Arbotix Pro or CM730. I don't have all of the same hardware on my current board, like Microphones, Leds and Button, but I have brought out a reasonable number of Analog pins and the like...

    Right now I trying to decide on which board I should emulate for logical registers for the Analog pins. That is the Arbotix Pro has:
    Code:
    #define P_ADC0_VOLTAGE        50  // Voltage on board. 
    #define P_ADC1_MIC1           51
    //#define -     52
    #define P_ADC9_MIC2           53
    //#define -     54
    #define P_ADC2                55
    //#define -       56
    #define P_ADC3                57
    //#define -     58
    #define P_ADC4                59
    //#define -     60
    #define P_ADC5                61
    //#define -     62
    #define P_ADC6                63
    //#define -     64
    #define P_ADC7                65
    //#define -     66
    #define P_ADC8                67
    //#define -     68
    #define P_ADC10               69
    //#define -     70
    #define P_ADC11               71
    //#define -     72
    #define P_ADC12               73
    //#define -     74
    #define P_ADC13               75
    //#define -     76
    #define P_ADC14               77
    //#define -     78
    #define P_ADC15               79
    //#define -     80
    #define P_BUZZER_DATA0        81
    #define P_BUZZER_DATA1        82
    And the CM730 (verified from document plus Ticians header file(https://github.com/tician/cm530/blob...dress_tables.h)
    Code:
       CM730_LEFT_MIC_L                  = 51,
        CM730_LEFT_MIC_H                  = 52,
        CM730_ADC2_L                      = 53,
        CM730_ADC2_H                      = 54,
        CM730_ADC3_L                      = 55,
        CM730_ADC3_H                      = 56,
        CM730_ADC4_L                      = 57,
        CM730_ADC4_H                      = 58,
        CM730_ADC5_L                      = 59,
        CM730_ADC5_H                      = 60,
        CM730_ADC6_L                      = 61,
        CM730_ADC6_H                      = 62,
        CM730_ADC7_L                      = 63,
        CM730_ADC7_H                      = 64,
        CM730_ADC8_L                      = 65,
        CM730_ADC8_H                      = 66,
        CM730_RIGHT_MIC_L                 = 67,
        CM730_RIGHT_MIC_H                 = 68,
        CM730_ADC10_L                     = 69,
        CM730_ADC10_H                     = 70,
        CM730_ADC11_L                     = 71,
        CM730_ADC11_H                     = 72,
        CM730_ADC12_L                     = 73,
        CM730_ADC12_H                     = 74,
        CM730_ADC13_L                     = 75,
        CM730_ADC13_H                     = 76,
        CM730_ADC14_L                     = 77,
        CM730_ADC14_H                     = 78,
        CM730_ADC15_L                     = 79,
        CM730_ADC15_H                     = 80
    So on Arbotix-Pro ADC2 is on 55-56 and on 730 it is on 53-54, in particular it is where MIC2 is in this table.

    I assume moving MIC1 and MIC2 next to each other in the table was made to make it more logical?

    Kurt

  9. #9
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,135
    Images
    27
    Rep Power
    264

    Re: YATB - Yet Another Teensy Board :D

    The microphones were largely useless on the DARwIn-OP, same as the CM-510/530's microphone, as they could sense only amplitude. They are useful for little more than sensing finger snaps or claps to either side of the head to begin some process in the user's program (e.g. snap by right ear to start walking). Don't think any of the HROS even have anything resembling the head/eye board of the DARwIn-OP that would actually possess the crap electret microphones, so why bother emulating it?

    Just sent an order to OSHPark for a few tiny experimental breakout boards, and decided to join the purple Teensy-3.2 club. Going to play with the teensy for a while before committing to a seeed-pcb order of the 34x38mm DXL+IMU board. May go back to SPI and/or switch to the LSM9DS1 (probably not going to mess with the BNO-055). PCB name silkscreen points to front of bot with micro-USB-B and TTL-DXL connectors to right and RS-485-DXL connector to the left. That puts the LSM9DS0 in the dead center of the PCB and mounting holes with accel/gyro axes matching standard convention for robots (+X forward, +Y left, +Z up).
    Click image for larger version. 

Name:	teensy-dxl_v0.1.0.jpg 
Views:	193 
Size:	153.0 KB 
ID:	6199
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    bleh

  10. #10

    Re: YATB - Yet Another Teensy Board :D

    Quote Originally Posted by tician View Post
    The microphones were largely useless on the DARwIn-OP, same as the CM-510/530's microphone, as they could sense only amplitude. They are useful for little more than sensing finger snaps or claps to either side of the head to begin some process in the user's program (e.g. snap by right ear to start walking). Don't think any of the HROS even have anything resembling the head/eye board of the DARwIn-OP that would actually possess the crap electret microphones, so why bother emulating it?
    Thanks tician,

    I am not actually going to try to emulate the microphone stuff, but I was first curious about why the two were different?

    But for my own stuff, I will probably follow the CM730ish route, that is I have I think 14 Analog pins brought out. The Teensy has a few other Analog pins, but I used up one for Voltage divider, which has it's own logical register. Plus two others that are used for SCL/SDA.
    The two boards are setup to return 16 analog values where two are Microphones. So I simply want to map my 14 into the other ones...



    Quote Originally Posted by tician View Post
    Just sent an order to OSHPark for a few tiny experimental breakout boards, and decided to join the purple Teensy-3.2 club. Going to play with the teensy for a while before committing to a seeed-pcb order of the 34x38mm DXL+IMU board. May go back to SPI and/or switch to the LSM9DS1 (probably not going to mess with the BNO-055). PCB name silkscreen points to front of bot with micro-USB-B and TTL-DXL connectors to right and RS-485-DXL connector to the left. That puts the LSM9DS0 in the dead center of the PCB and mounting holes with accel/gyro axes matching standard convention for robots (+X forward, +Y left, +Z up).
    Click image for larger version. 

Name:	teensy-dxl_v0.1.0.jpg 
Views:	193 
Size:	153.0 KB 
ID:	6199
    Sure is fun to play around with different boards like that! OSHPark is convenient and I usually get boards back from them faster than when I was doing them with Seeed. I did have a couple of times when I tried both, where the boards from Seeed got her before the ones from OSHPark. My first two purple 3.2s should be here in the next hour or two

    Kurt

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. PhantomX using a Teensy 3.1
    By KurtEck in forum Humanoids, Walkers & Crawlers
    Replies: 301
    Last Post: 11-17-2016, 01:08 AM
  2. Looking for Small Board
    By JeffRo in forum Robot Computers
    Replies: 6
    Last Post: 02-13-2015, 06:32 PM
  3. Question(s) Bioloid USB bus board
    By elaughlin in forum Software and Programming
    Replies: 25
    Last Post: 08-14-2010, 02:14 PM
  4. My new Serial Servo Board with on Board RAM :-)
    By Pinter75 in forum Project Showcase
    Replies: 4
    Last Post: 03-03-2010, 09:53 PM
  5. Project AVR Board for Lego
    By Rudolph in forum Robot Computers
    Replies: 2
    Last Post: 02-10-2009, 03:04 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •