If anyone wants to edit it later on (when you make a new doc and want to add it), just pm me your email adress, or send me a mail at fredje666 at gmail dot com I'll add you to the people that are allowed to edit it.

« Last Edit: January 18, 2008, 10:32:29 AM by Rebelgium »

Logged

To relax after some hard work on robotics: A very fun free online text based MMORPGorgcrime.net

i think the i2c and power connector should be mounted closer to one corner of the board so 38 x 38mm boards can be plugged in while still staying on the same mounting hole grid.

Ro-Bot-X: have you actually used the right angle header pin sockets in your schematic?do you think they will do what we want? i certainly like the look of them?got a part number for them? also, which Eagle library are they under?dunk.

Ok. First, I am using Eagle with imperial units since I have better snap-on-grid precision. Everywhere else I am using metric units, since I live in Europe (soon moving to Canada, but there they use them too). I am familiar with inches and feet but not at all regarding fractions of inches expressed in 100s or 1000s.

Can we agree on a position of the connectors vertically from the bottom up on a 1.5"x1.5" board? Right in the middle? My grid is 0.05" units, I need an exact position for the connectors...

The right angle header and socket need to be placed a little inward, so the boards that need to be connected get really close together (flush). Since the boards will be double sided, the connectors can be mouted underneath the board. Closer to the edge can be mounted a second connector (vertical) for stacking or wires.

The connectors are from the con-lsta.lbr (female) and con-lstb.lbr (male). The right angle are terminated with W.

Tryed to shrink the board to the minimum 1.5"x1.5" but still keeping the through hole components. I stripped the I2C connectors down to just one and the components barely have enough room to fit on the board. But there were lots of traces not done by the autoroute function.

i think we need Eagle templates of the different board sizes.what do think of the ones attached? (i don't seem to have right angled header pins in my Eagle libaries but the header pin on the left edge should be a right angle one.)

let me know if you want me to email you the Eagle files. (can't attach them here.)

If I remember corectly, the pull up resistors need to be at the Main Microcontroller unit right? I guess we should include them for each board that also has UART, but install them only on one board for each system. Right?

Should the Motor modules be Master/Slave or just Slave only? Also Master modules should provide 5V power for the slave modules, right? ( I guess the Main MCU, the Sensor Module - maybe others too - need to have 5V regulators onboard to power the sensors and other devices connected directly tho the boards, not necesarily on the I2C bus.)

Can we also build a RS232 to I2C interface module? (I don't really want to change the tiny26 for something bigger just for the UART...)

Since I am working on a robot that will use a Tiny26 Modified Servo Controller, I will build this module untill we decide on the DC Motor Controller characteristics. The ones I have showed are just samples, to see the possibilities. A small size board will be enough for the modified servo controller but not enough for a DC motor controller, unless we go SMD. I would really like to have the modules small.

If I remember corectly, the pull up resistors need to be at the Main Microcontroller unit right? I guess we should include them for each board that also has UART, but install them only on one board for each system. Right?

hey Ro-Bot-X,i'm guessing you approve of the board templates?they seem like the most logical layout to my mind but if anyone has any reservations the sooner we decide on a standard layout the better.

Quote

If I remember corectly, the pull up resistors need to be at the Main Microcontroller unit right? I guess we should include them for each board that also has UART, but install them only on one board for each system. Right?

correct. i think it's worth including space for them on the standard template for i2c Master modules but the resistors will only need soldered in on one module on the whole bus.as there will always be at least one master on any i2c bus there is no point including space for the pull up resistors on any slave module.

Quote

Should the Motor modules be Master/Slave or just Slave only?

either. as we are making these i2c multi-master nodes we can have more than one master on the bus.in this configuration a master can operate as a master or slave device.i will point out that debugging a module with a UART is far easier as you can plug it straight into your computer and send debug info over the UART.

Quote

Also Master modules should provide 5V power for the slave modules, right? ( I guess the Main MCU, the Sensor Module - maybe others too - need to have 5V regulators onboard to power the sensors and other devices connected directly tho the boards, not necessarily on the I2C bus.)

one of the modules needs to have a 5V regulator but i don't think all masters on the bus need one.i envisaged power regulation being done by a separate module. the power module would not need to be on the i2c bus although i think it would be an advantage so you could query it for the main battery voltage and sent it commands to switch off the power.

Quote

Can we also build a RS232 to I2C interface module? (I don't really want to change the tiny26 for something bigger just for the UART...)

easily done.the test code i have written for the atmega8 acts a a router between it's UART and the i2c bus. with the addition of a max232 level shifter chip you can plug it straight into a PC serial port and in hyperterminal type out packets in the format discussed in the design doc: http://docs.google.com/Doc?docid=ddp2r5j8_21dgt72qgz&hl=en

Quote

Since I am working on a robot that will use a Tiny26 Modified Servo Controller, I will build this module until we decide on the DC Motor Controller characteristics. The ones I have showed are just samples, to see the possibilities. A small size board will be enough for the modified servo controller but not enough for a DC motor controller, unless we go SMD. I would really like to have the modules small.

so if you are planning on having your PCBs custom made i don't see the point in through hole components. with a little practice SMD components are easy to solder.if you want to make the PCBs yourself using the toner transfer method i would suggest making your vias and pads far larger.as for the small board sizes, the problem with us standardising the module size is there will often be some wasted space on a board.

in other news, i have built one of my test boards and will be trying it out later today. if all goes well i'll post the code and schematics later today (hangover permitting).

Modified servos for continuous rotation are somewhat like DC motors but with a different command. A regular servo has a closed loop feedback. This feedback tells the motor to move if the desired position is not reached. By modifying the servo, we break this feedback loop, so the motor thinks it still has to run to reach the desired position.

Encoders give feedback to the microcontroller just like the pot does for the servo. Only encoders are like a multi-turn pot and the feedback is not done at the motor controller, but directly at the microcontroller. But the thing works the same. We set a desired position and the motor runs to reach that desired position. By doing this we can make the robot go a certain distance, then turn to change course or just stop.

So, encoders can be added to have a feedback loop for any kind of motors the robot uses. Well, maybe they can be omited for stepper motors. The stepper motors rotate a little bit for each step and then stop and hold that position. But the steppers need to be stronger than the max power needed, otherwise they may loose steps.

The templates are fine, but I had to move the holes closer to the corners for the parts to fit.Are there small size AVRs that have both UART and I2C? Smaller than Mega8? I don't want tu use a big micro where I can use a small one. I guess the code may be debuged on a mega8 and then ported to a smaller micro. That's what I intend to do. Only I don't know programming verry much. I can easily do it on Bascom or Arduino, but not yet in plain C. (If I show the code in any of these languages will someone be able to port it to plain C?)

I guess I could use a PIC 16F88, it has both UART and I2C if I remember corectly. I'll check that, and I will make a board with it (again, I can program it in PBasic).

Perhaps we should choose some microcontrollers for these modules. Do we want to use the same microcontroller for all the modules, for simplicity of code? ATmega8 is perfect for this... but maybe too much for some modules and too little for others.

A module that hasn't been mentioned in the list is an LCD driver module.

I would like to do this module, starting with a basic alphanumeric LCD and maybe progressing to a graphical LCD.I'm just waiting to get a working LCD.

PIC 16F88 can be used to make a serial LCD from a parallel one. Tiny26 can do it with I2C interface. Mega8 can do both interfaces. Which one do you want?

It happens that I have an old Athena microcontroller that can be programed to be a serial LCD driver. Athena is based on PIC 16F628 and is loaded with a bootloader and firmware by it's manufacturer, Kronos Robotics. The LCD instructions are hardcoded in the firmware, so a little program can make it work.

I will be using a PIC16F series chip to do it, since i have an ICD2 and nothing to program any other brand MCU.

The first LCD module will be really simple, just making it possible to talk to parallel LCD modules with I2C. Maybe it could be a general purpose display driver and drive 7 segment displays and led bars. I dno...

The second one will be for displaying graphics on graphical LCD displays.

It doesn't matter which MCU each module uses really, as long as the I2C is well specified there will be no problem. It might be best designing modules that use both AVR and PIC though, to give people with only an AVR programmer, for example, to use every module.

I like the Tiny861, thanks Dunk! It has the Mega8 flash size (even a bootloader may be installed...), with little modifications Arduino can be used to program the device. So a motor controller prototype can be easily made to work with it instead of Tiny26. I'll have to see if I can get one around here to play with.

Edit: Strike all that... It seems it doesn't have USART... But Tiny2313 has! I will remake the motor modules to work with Tiny2313.

So, for small modules should we use Tiny2313 and for bigger modules Mega8 or Mega168? Please someone suggest similar MCUs from Microchip...

With this being a project in a community full of hobbyists, the design and making of the modules will not be done on a schedule. People just do it when they have a bit of free time. There are allready a few modules in developement, but there are lots more modules planned (see http://docs.google.com/Doc?docid=ddgqp9wc_0gpbcwmgm&hl=en).