Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 38

Thread: Dynamixel device board

  1. #21

    Re: Dynamixel device board

    for each 'clean' rail
    There is no such thing as a "clean rail" :-) Power and ground carry ALL THE SIGNALS.

    a switching reg at 2.25MHz, the quality of routing
    My prediction: If you use the components and layout exactly as recommended in the data sheet, you'll do OK. If you deviate, you'll be building an oscillator, not a power converter :-)

  2. Re: Dynamixel device board

    clean-er then
    Instead of huge noise and ripple, this one will have.. much less noise and ripple

    And concerning routing, I should be able to stay close enough from the recommended layout. I hope.
    Personal blog:
    USB2AX documentation:

  3. Re: Dynamixel device board

    I think I have found what I wanted for power, with the previously mentioned switching reg and two small fixed LDOs ( LD6805K/33P for 3.3V and TCR2EE50,LM for 5V).
    And the escape plan for the BGA to make it possible to route with 6mil technology is implemented

    Click image for larger version. 

Name:	dynext_v2.0_prev02.jpg 
Views:	137 
Size:	99.9 KB 
ID:	5470

    I'm now looking closely at the pinout of the board, and I wouldn't be against some feedback - there are so many possibilities...

    The use cases I think about for this board are these:
    - just plugging 2 micro servos on the board, powered from the board
    - just plugging analog thingies on the board, powered from the board
    - connecting an I2C thingy
    - connecting a serial thingy
    - connecting an SPI thingy
    where thingy is whatever the board has to talk to, like Robogeek boards, other breakout boards, sensor, IMU, etc

    The idea is that for the 2 first ones you should be able to just plug the thingy, no wireing involved, like the Geekduino Sensor shield.
    For the other ones, the board should be used like an Arduino pro mini / Teensy...

    So I think of using the pattern SIG-VCC-GND for 7 pins,on the right in the picture.

    Bottom to top, I'm thinking:
    - 2 "high power" lines, for servos. SIG = pins that can have 16bits resolution PWM [PB1, PB2], aka 9 and 10. Power = 5V "dirty" (actually 5.3V or something like that), ~900mA
    - 5 analog-capable lines. SIG = A0-A4 [PC0-PC4]. Power = 5V "clean", ~180mA
    The A4 analog line (top of he board) would have A5 [PC5] next to it, to get SCL-SDA-VCC-GND arrangement for I2C thingies.
    Just next to it, I would then probably put AREF to gather every analog pins together.

    The top line, from the mounting hole to the right border, would look like (not sure about 3V3):
    GND - 3V3 - AREF - A5 - A4 - 5V -GND

    On the 11 remaining pins, I would put, in no particular order yet:
    - 5V "clean", GND
    - Reset [PC6]
    - Pin 0/1 (uart) [PD0, PD1]
    - pin 2/3 (for external interrupts) [PD2, PD3]
    - Pin 10/11/12 for SPI [PB3-PB5]

    Not sure yet if Reset should impact the Cortex M0 too (shared reset line) or not.

    Other connections that can be useful sometimes, for programming the Cortex M0, etc, will have pads here and there.
    I would then have 1 pin left on the board, and at this point the 28-pin ATmega328p only has 5 pins left:
    - (PCINT20/XCK/T0) PD4
    - (PCINT21/OC0B/T1) PD5
    - (PCINT22/OC0A/AIN0) PD6
    - (PCINT23/AIN1) PD7
    - (PCINT0/CLKO/ICP1) PB0

    One will be connected to the LED (in the original arduino they use the same pin as SCK, so that's not an option here... >_>), one to the cortex-M0 for signalling.

    Not sure what to do with that last pin... Any idea?
    Last edited by Xevel; 03-29-2014 at 12:05 AM.
    Personal blog:
    USB2AX documentation:

  4. #24

    Re: Dynamixel device board

    There's a real question about 5V or 3V3 I/O. The world has moved to 3V3 a long time ago, and then it was dragged kicking and screaming back to 5V because of Arduinos...
    In the best of worlds, this would be selectable.

  5. Re: Dynamixel device board

    Good point.

    It's not so trivial to implement really well though. The ATmega is not rated for 16Mhz @ 3.3V, that's not great to rely on overclocking. And unfortunately some of the few pins of the LPC11A02 that are not 5V tolerant are part of the SPI, so I need to take care of that in a way that would work in both cases.

    There are respectable Arduino clones that allow to change VCC from 5V to 3.3V at 16MHz. The ones I've looked at use a crystal whereas I plan on using a ceramic oscillator (same kind as the one on the Arduino Mini Pro), not sure if that aspect would be affected.
    I should change for a 2.5x2mm crystal (or a 2x1.6 one), it's "only" around 40ct more.
    Personal blog:
    USB2AX documentation:

  6. Re: Dynamixel device board

    I'm going to stay with 5V for now. 5V is more complex than 3V3, and having both options is making things too complex. We'll see after MW.
    I need to move forward.
    Personal blog:
    USB2AX documentation:

  7. Re: Dynamixel device board

    Alright, I finished v2 of the board, PCBs are being made and should be ready in a little more than a week.
    I hope this one won't need major modifications, 4 layers + gold finish + stencil gets quickly expensive compared to hand-soldered 2 layers PCBs...

    Click image for larger version. 

Name:	dynext_v2.0_top_view.png 
Views:	136 
Size:	153.7 KB 
ID:	5480Click image for larger version. 

Name:	dynext_v2.0_bottom_view.png 
Views:	123 
Size:	122.6 KB 
ID:	5481

    Schematics (PDF)

    Size: 17.8mm x 34.3mm - less than a millimeter longer than an Arduino Pro Mini.

    I finally went with the 1A switch reg previously mentioned (TPS62160DSG), that will be adjusted between 5.2 and 5.5V - I have to test what is the smallest value that gives satisfactory results. For 5V and 3.3V I changed to two separate 200mA LDOs ( TCR2EE50,LM for 5V and LD6805K/33P for 3.3V), it's cheaper, and smaller when you factor in the resistors that the adjustable dual LDO would have required.

    Two right-angle DXL connectors under the board, facing inwards so that even when the cable is plugged it does not go past the border of the board.

    The main connectors expose A0-A5, 0-3 and 9-13 of the Arduino-compatible part.
    11 and 13 are used for SPI and have a voltage divider to go from the 5V of the ATmega to 2.5V for the LPC (that's enough to register as a HIGH level on the LPC11A02, since its HIGH threshold is 0.7xVCC = 2.31V).
    I also moved the LED from 13 to 6 to make it actually available to the user.
    5 (called SSEL/ISP/5 on the schematics) is used as Slave Select for the LPC in normal operation, and can also serve to put the LPC in ISP mode if held low when the LPC resets or boots up.

    A0-A4 each have SIG-5V-GND connectors, on the "clean" 5V rail (limited to around 150mA).
    9 and 10 have SIG-5V_DIRTY-GND connectors, on the ~5.4V directly from the switcher (limited to around 800mA). This makes it possible to power two small servos or power-hungry devices that does not require precisely 5V and can work with a little bit of ripple.

    On the top of the board, there are two 4-pins headers with GND-5V-GND-3.3V and GND-RST-AREF-A5.

    For the LPC, there is a 1.27mm header to reprogram it with SWD. It does not follow the standard as it would have required a 10 pins connector (too big and half of the pins would have been unused), yet exposes the necessary 3V3, LPC_RST, SWDIO, SWCLK and GND.
    There are also test points for the various signals of the LPC, and one (labelled TP) that is only here as a GPIO (useful for non-intrusive debugging and performance evaluation).
    Under the board, there is a 1.27 set of pads with SSEL/ISP/5, GND, TX and RX, to make it easy to reprogram the LPC using the serial bootloader that the chip has in ROM.

    As you can see the silkscreen is a little clipped here and there (AREF, GND, RST are hard to read), I'll try to fix it in a revision. All Ground are square, that's a little help until it's fixed.

    I should get the PCBs (1.6mm, 4 layers, gold plated to avoid problems with the BGA) in a little more than a week.
    Last edited by Xevel; 04-01-2014 at 03:44 PM.
    Personal blog:
    USB2AX documentation:

  8. #28

    Re: Dynamixel device board

    Not bad! Although I agree on the silk screen -- that will be hard to read once you have the black insulation on there for the headers.
    I've taken to put my pin-outs on the bottom of the board to help out with that, but you're putting circuitry there, too!

  9. Re: Dynamixel device board

    Yeah, that silkscreen is not great. The thing is, for the next version, I'll have more info on what works and what doesn't, and a previous layout to start from.

    When I start a new board like that I go with what i judge to be the biggest acceptable size for each component, then I pack everything in the corners. Only at the end do I try to find some room for the silkscreen...

    Here at the end I found out that, contrary to what I expected, there was some room left in the middle. The next version of the board will probably see components migrating towards the center to make room for the silkscreen, 0201s getting back to 0402s, and the inductor reverting to a footprint for which multiple sources can be found (that 2x2.5mm 2.2uH inductor is a little bit too specific... there's only one of the catalog distributors that has one model listed).
    Personal blog:
    USB2AX documentation:

  10. Re: Dynamixel device board

    Joy (at least so far)!

    Click image for larger version. 

Name:	2014-04-11 03.39.16.jpg 
Views:	149 
Size:	95.1 KB 
ID:	5506Click image for larger version. 

Name:	2014-04-11 03.39.48.jpg 
Views:	150 
Size:	72.3 KB 
ID:	5507
    Two possible ways to put the headers: on top or on the bottom side.

    As far as I can tell, the process - even with the 0201 and WLCSP - went smoothly. It's not that any more complicated than 0402 and QFNs: you put the part at the right place, checking alignment on all sides and nudging it a little it it's not aligned well enough until it is... For the WLCSP,, instead of looking at the side of the pads (the little part of the pad that can be seen frm the side), you look at the balls with a very shallow angle (which can only be atteigned when ther is NOTHING around the chip, even an 0201 will block the view...). A fun little thing also when putting the WLCSP down is that since its balls have to go on top of the solder paste (= the higher point on the landscape under the chip), you can sort of feel if it's misaliged as the balls are in the "valleys" between solder paste blobs.
    One board on which solder paste application had been a little blurry had two solde bridge on the ATmega (removed by just touching them with the tip of the iron), and an 0201 resistor tombstoned (corrected by hand: remove the resistor, re-solder it starting with the pad that did not reflow as it's the one with the most thermal mass).

    Test are for later, sleep now.
    Personal blog:
    USB2AX documentation:

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. What's special about the USB2Dynamixel and USB2AX as a CDC device?
    By jwatte in forum Arbotix, Microcontrollers, Arduino
    Replies: 4
    Last Post: 06-13-2013, 09:42 PM
  2. Implementing a custom Bioloid Device from an Arduino
    By Xevel in forum Software and Programming
    Replies: 3
    Last Post: 02-14-2011, 08:25 PM
  3. Volumetric Cubing and Weighing device
    By php in forum Sensors
    Replies: 1
    Last Post: 09-05-2009, 01:40 PM
  4. Question(s) Human Input Device For CAD Design
    By srobot in forum Robotics General Discussion
    Replies: 1
    Last Post: 10-02-2008, 05:38 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