Member #64567

Member Since: March 19, 2009

Country: United States

  • PID is a great thing to get into -- there's a deep literature on the subject and you can get into it as far as you want to.

    Your control of the difference between the left and right speeds is a good idea -- I've had success controlling individual and joint speeds like that to get small robot chassis to run straight (this is generally pretty hard to do). It helps if you calibrate your motors and give them both control inputs to get them running nearly at the same speed to begin with -- the control system will have an easier time that way.

    I've generally used a separate processor for motor control that can handle all the interrupts involved, as well as odometry calculations to give an estimate of where the chassis is as it runs. That requires trig functions, so I generally need a processor with floating point support. If you don't need odometry you just need to worry about raw speed enough to handle the interrupts. In that case, too, you need I2C or SPI client support so that the motor controller can talk with your main processor.

    One thing to watch out for with encoders, I've found, is that the distances between the edges you read may not be uniform. That means (depending on the actual encoder) you sometimes can't get a good speed estimate using single edge transitions. At times I've had to count edges and use the time of an entire revolution of the encoder to judge the motor speed. You can see this effect in the speed estimate -- it will bounce all around using single edges, then settle down when you start using the full encoder rotation. This is just something to watch out for.

    Good luck with this going forward.

  • What pins are used to connect an SD card to this board? And can I use a standard SD card breakout board for this (SPI and power pins)? Thanks.

  • Can this board be programmed with the J-Link EDU Base programmer, or does it require the Atmel-ICE programmer/debugger?


  • Thanks for the reply. One further thing -- do you use Atmel Studio for development, or something else (I'm a PIC developer used to MPLAB X; I'm not sure that covers SAMD parts)? Thanks again.

  • I see a debugging socket on the board (unpopulated). What is the pitch of the socket? What debugger does that require? Also, if I load my own code through the debugging socket, does that invalidate the UF2 bootloader, or can it still be used?


  • Great, thanks.

  • This board looks terrific. One question about power: if I have external 5v and 3.3v power supplies, can I power the board with them, instead of the onboard voltage regulator and the USB input?


  • Ok, I got it -- need to set the ctrl_reg0 ee_w bit. With that set the image registers change properly.

  • I'm having trouble setting BMA180 registers (eg, the range and bandwidth registers at 0x35 and 0x20) using a UBW32 PIC32 board.
    I can read the version, gain, range, and acceleration values alright (using SPI with control byte with leading bit 1) but after writing (control byte with leading bit 0), a read returns the same value the register had before the write. I'm writing directly into the setting register, not the EEPROM register -- the data sheet says this is read/write, but I can't get the write to work.
    Any pointers on what I might be doing wrong will be appreciated; thanks in advance.

  • Win7 doesn't recognize this board as a mouse -- I get an 'unknown device' error, says device gives code 43. Any ideas as to how to deal with this?

No public wish lists :(