Let's Make Robots!

The µBotino Controller V3 PCB


Vendor's Description: 


The µBotino allows a robot builder to easily build a small robot that uses 2 small geared DC motors for driving, directly plug in 6 analog sensors, 5 digital sensors, 5 servos. It has an on board LDO voltage regulator, power switch, reset button, power LED, Arduino pin D13 LED, 16 MHz crystal, ISP programmer connector and FTDI cable connector. The ATmega328 microcontroller has Arduino bootloader installed. The board features 3 jumpers, one to select power for the servo pins (in case you want to use sensors and no servos), one to disable the D13 LED (in case you need to connect a servo to that pin) and another jumper to disable power to the motors (so they don’t move when programming). The 5cm x 5cm size of the board and Arduino software compatibility makes this board a perfect candidate for small robots.

 

You can buy the PCB from here:

http://robotxdesigns.ca/2011/05/30/the-%C2%B5botino-v3-pcb/

 

Assembly guide:

http://robotxdesigns.ca/wp-content/uploads/2011/05/%C2%B5Botino_V3_Guide.pdf

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Will you be wiring up the Auto then with the same components (cap etc), or will you solder in your tweezers for more convenient access?

I only own one set of tweezers and they are chromed so soldering is not my first option. After I fix the leveling problem I will reassess the need for auto-reset. Until then their points are moot.

Hello Rik,
I have 2 Arduino boards.  One is "stock" and includes the auto-reset functionality - some of the details can be lifted from this page on how to retro-fit older boards - http://www.arduino.cc/playground/Learning/AutoResetRetrofit 

My other board is a Freeduino BBB and requires a manual reset a couple seconds after the ide's upload button has been pressed.

 

I read that link. That's how I came to my idea that the DTR trick is nothing but a reset under remote control (controlled by the IDE). They use a capacitor to connect the reset pin to DTR(RTS). Presumably (here we go again!) to debounce the signal change or to isolate the two circuits.

Hi Rik, You are correct, you can use only 3 pins: GND, Rx and Tx. But you have to press the Reset button after about 3 seconds (more or less, you have to experiment) after you click on the Upload button in the Arduino IDE. The DTR pin on the uBotino board resets the board automatically for you if you connect the RTS pin from the DB9... err... no, actually the DB9 connector is usually RS232 voltage level -12...+12V instead of TTL 0...5V. The FTDI board or cable has TTL voltage level. You can use a MAX232 converter if you have one instead of buying a FTDI cable. I recommend the SparkFun FTDI cable or the 5V basic board (a bit cheaper).

OK, thanks. Google already made me suspect I was experiencing two different problems. So let's split 'm up:

- Signal levels: when idle, my generic USB-to-RS232 cable produces ca -6.3 V on the line that carries data from laptop to MCU. That cable works beautifully with Picaxe. I am now guessing (please feel free to comment) that Picaxe inverts the incoming signal before interpreting it. Since Arduino doesn't, I will have to do that externally. Right?

- Reset, RTS, DTR: Do I understand correctly that Arduino always expects a reset (pull low through switch) at the start of the upload? I use that trick often for Picaxe. And that Arduino boards automate this by using the RTS/DTR function, pulling the reset pin low by sinking a tiny current into the serial cable's RTS line?

I tried hitting the reset in the early stages of an upload, but it didn't work. Of course, my non standard momentary switch (aka tweezers) does not really help. And I still have to address the level issue. I would really love some confirmation of my hypotheses  here.

Rik, you are correct at both points.

I have to add that my uBotino board already has the series capacitor from the DTR pin to the Reset pin (that is pulled up by a 10k resistor). The upload process goes like this: the IDE compiles the code, even if you already did a Verify just before you clicked the Upload button, then a message appears with the code size. At that moment, the IDE starts the uploading process, pulling LOW the DTR pin that triggers a reset of the microcontroller. At the reset, the bootloader is activated and it checks for communication with the computer. If found, it starts loading and programming the code. If not, the existing code is executed. After a successful upload, the code is executed immediately. 

Another thing, a MAX232 level converter also inverts the signal, making it a perfect candidate for a RS232-TTL conversion. I have used it on my older boards when the FTDI wasn't so widely used. I can upload a schematic if you want to.

I was thinking that myself. I already own that chip for an unrelated and unfinished project. I'll check the datasheet and consider if the extra circuitry is worth the effort. And I'll need to check if my generic USB-to-serial cable propagates/emulates the low DTR pin.

So this board is my transition from Picaxe to Arduino. And I am only now shedding some of my preconceptions from the Picaxe world.

Am I right in understanding that Arduino needs more than GND-RX-TX lines in the programming cable? Do I really have to make or buy the whole FTDI breakout circus?

I already own a generic USB to serial (DB9) conversion cable. Could I use that one? Is it just a matter of soldering a 6 pin connector to my DB9: GND-nc-vcc-RX-TX-DTR?  Where GND would be GND (DB9-5), nc and vcc would be Not Connected, RX would connect to laptop's TX (DB9-3), TX would connect to laptop's RX (DB9-2)?

Where does Arduino's DTR connect to?