Putting robotics at your service™

Free shipping on orders over $200

Thinking about yet another board design...

Print view Share :
Previous topicNext topic

Page 1 of 4 [ 53 posts ]

1, 2, 3, 4
User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-14 13:26 
I still have many projects going on, but I keep wanting to get back to my Arduino based DIY remote control. The question is which is the best way to go about doing it. My assumption and desire is that this will continue being some form of Arduino and not some BAP based project.

I could continue using my Seeeduino Mega with the prototype shield, which works well, but is a pain in that you have to buy the board, solder on it's connectors, build the shield and then try to get all of them pins in the right holes... Then it is pretty thick. It will fit,especially since the new box is a bit taller, but...

Could go with my new shield, and standard Arduino Mega, which has some of the same issues, Still plan to build a second one and try on standard mega...

BotBoardDuino won't do: only 6 Analog pins (My original uses 8, my Arduino Mega one uses 9). Only 14 digital...

So I started to play arround with yet another all in one board design. My goal was to make it such that I could build it myself. So I want to avoid soldering in an Atmega, or an FTDI chip or others like this with really small pins... So I ruled out an Atmega1280 or like. Could start with Botboarduino and try to work up. This may be the best approach, but instead I thought I would try something different.

So I thought I would try one that is based on the Sanguino board (http://sanguino.cc/hardware), like LinuxGuy wanted. This board uses an Atmega644, which comes in a very big DIP package. Has 64K of memory, 8 Analog and 24 Digital pins, 2 Usarts, which gets me a lot closer.

Note: the Arbotix Controller that Trossen sells is also based on this design. There are issues with this as the SanGuino design is non-standard. Awhile ago the users were restricted to use I think build 0014 of the Arduino IDE. I think the current ones have most of the support in them, but you have to edit the Boards.txt file. I would like to confirm this. May ask up on Trossen...

Here is a first pass design:

The board is currently 3"x2.8".

The bottom IO pins are Digital pins 0-19(Left to right). On the Top Left are 20-23. On the top Right are Analog pins 0-7. Like Arbotix, the FTDI stuff is not on the board. There are 6 pins on the Left that you can plug in the Sparkfun (or equiv) FTDI breakout board. Also you have an ISP plug, which I know Trossen recommends using to program. I put jumpers in that allow you to have XBee on either USART0 or 1. I get the impression that the boatloader can allow you to program the chip using the XBEE at 38400. I have a speaker as I like sound on my remote. I was going to add Buttons/Leds, but not much room for them and I don't use them when the board is inside a case...

Things I am for sure thinking about doing:
a) Add a jumper to disable the 3.3v circuit, including XBee
b) Add more Analog pins. I am thinking of trying to get more Analog pins. Maybe by adding a Analog Mux like what is used on Arc32. Could use a 2x8 Mux from Analog devices. This would use 2 Digital and 2 Analog pins to give me 8 Analog. Will be interesting to see where I can fit it. Also will probably not have 3 pin connections for these, as I don't know where I would fit them, unless I make the board a lot larger. One thought would be to do like Arc32 and overlay them on to Digital pins...

Update:
Since I did this first part, I have hacked up a more revised version of this board, which is I think a half inch longer and currently looks like:
Attachment:
DipTrace-PCB---Sanguino-lik.jpg
DipTrace-PCB---Sanguino-lik.jpg [ 81.52 KiB | Viewed 1946 times ]


I added the jumper to disable XBEE. I added a Mux that did what I mentioned. With the MUX we can have up to 14 Analog pins. Still playing around. May want to add jumpers to disable MUX and reroute the two analog pins that went to MUX back to first 2 pins that Mux routed to...

Again not sure if I will go forward with this. Probably makes more sense for me to simply use my Arduino Mega shield and be done. But now that I added the extra half inch I have more room to add some mmore junk...

What do you think?

Kurt


User avatar
Expert ( offline )
Posts: 253
Posted: 2012-04-16 12:45 
I think this is a great idea! I barely got everything into my controller with the mega/shield combo. Plus I feel like the mega is getting under used in the remote. A one board solution would be incredibly convenient.

I'm not a fan of needing to edit the Boards.txt file to get it working however. Why not use a set of multiplexors with the standard Atmega328 for more analog and digital? A remote doesn't exactly need the large amount of program space. hardware uarts aren't exactly required as the only limitation of softserial is that you can only listen on one port at a time. I'm sure you wouldn't be using more than one communication method at a time. Having an Atmega16U2 onboard for a usb connection would allow you to reprogram the diy remote to act as an hid joypad which would be really cool... Just some of my thoughts on the project...

No matter what you decide I definitely would be interested in buying one of these from you if you ever make a couple...

_________________
Devon Simmons, Former Programmer for Lynxmotion.
I can try to help, but I can only offer you my best effort.


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-16 16:09 
I totally here you. Yep I probably could get this all to work with an Atmega328, which may be the smarter way to go, but I do like challenges :lol:. I also know that there are probably a few other overkills on my current board. Things like do I really need separate VS and VL if I am only going to use this on the remote control? As for Atmega16U2 for USB, I think this would be back to soldering small lead connections, which I am trying to avoid. Also the idea of external connection may be appealing for board that is inside a case

Attachment:
DipTrace-PCB---Sanguino-lik.jpg
DipTrace-PCB---Sanguino-lik.jpg [ 83.16 KiB | Viewed 1906 times ]

My hacking yesterday, put some of the options on a SM 10 position half size switch... So I can turn on/off the MUX and route A6-A7 if needed. Also can disable XBee and route XBee to either serial port... I will also probably change the current stuff and move the LEDS to the right edge, under the XBEE. Except for XBee pros, they will be be completely visible...

Still have some more room, so if I continue down this route, could add a few more things. Some of but probably not all of:
1) Buttons and switches.
2) Thinking of some time experimenting with Bioloid, so could add a few connectors for this, plus the option to make Usart1 be half duplex, like the Arbotix.
3) Could maybe add SDCard connector (Have not looked at the size yet)
4) Simple motor controller...
???

Kurt


User avatar
Expert ( offline )
Posts: 253
Posted: 2012-04-18 10:19 
Which mux were you planning on using? The 4051?

_________________
Devon Simmons, Former Programmer for Lynxmotion.
I can try to help, but I can only offer you my best effort.


User avatar
Guru ( offline )
Posts: 9258
Posted: 2012-04-18 10:53 
I may be interested in making a few hundred of these, but only if they are targeted towards the DIY radio. There is no need for motors or servos, SD cards, bioloid support, buttons and switches... Through hole for the processor is great, but the board must remain as small as possible. My $0.02 worth anyway. :P

_________________
Jim Frye, the Robot Guy
http://www.lynxmotion.com
I've always tried to do my best...


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-18 11:47 
As for Mux, I had a ADG409(http://search.digikey.com/us/en/product ... -ND/820063)

Hi Jim, sounds like an interesting Challenge. Should maybe back up and see what the requirements/desires for the board should be.

1) Power: 1 connection is sufficient as we don't need to driver servos. We don't necessarily need 3 pin headers for each IO pin. Even if we do, we don't necessarily need to split into 4 pin groups and don't necessarily need each grouping of pins to be able to have both VS and VServo...

2) Analog Inputs: Our original DIY used 6 Analog, but when we updated to 3DOF joysticks and 2 sliders, that gives a minimum of 8. Might want additional, including detecting voltage of battery, so 10 would work 12+ would be great.

3) USARTS: Could make do with 1, but 2 would be better. One for the Communications (USB/XBEE) and one potentially for Display.

4) Digital pins: The more the better :lol: - Probably depends on configurations supported.

a) With 16 key keypad: We used 8 pins plus for external buttons we needed another pin Some configurations (touchscreen) may not need this.

b) Display. depends on hooked up:
b1) Serial display - Need 1/2 pins to hook up to USART or software usart
b2) Parallel - It has been awhile since I used one, but maybe (6-8) pins. This would be the cheapest solution and don't have to worry about corruption of data, like using non hardware USART serial...
b3) SPI/I2C - Not sure if we are interested in any devices that hook up this way or not...

c) Analog/Digital Mux: 1-3 pins if we choose to use a mux or multiple ones...

d) More buttons: Example joysticks with button(s) on top. Other buttons, like fire buttons. Can add additional Row/column to how we process key pad, or can add one per...

e) Speaker

So for a configuration like our original, except with 3DOF joysticks, 2 sliders, serial LCD we would use:
Analog: (9 including detecting voltage)
Digital: (2 Usart (XBee/USB), 9 keypad, 1 speaker, 1-2 for display, 2 for MUX)
So about 25 total pins. Could probably use Parallel display and make it cheaper...

Assume I start still with the same processor Atmega644. This gives me 2 USARTS, 24 Digital pins and 8 Analog pins. Add the Mux to get us at least 12 total analog pins. Connections for XBee. Drop a lot of the power distribution stuff... Maybe drop some of the configuration stuff. Not sure if I should leave in the stuff to allow XBEE to be on either USART. Probably would make it easier to code/debug.

Thoughts?

Kurt

Edit: Forgot to mention - I was not sure about adding either an I2C EEPROM or SD card if that would be useful or not. Could potentially create versions of remote where for example you have different logical configurations for different robots, with messages and the like... Probably not overly important, but just another idea...


User avatar
Guru ( offline )
Posts: 9258
Posted: 2012-04-18 12:12 
I agree with every single point. I like the mux idea for additional channels. A speaker is a must. May want to ensure it can take an Xbee pro. No need to separate the IO in groups of 4. Parallel display takes 7 pins, it needs to be an option. The socketed processor is great for options and potential upgrades. I like it!

_________________
Jim Frye, the Robot Guy
http://www.lynxmotion.com
I've always tried to do my best...


User avatar
Expert ( offline )
Posts: 253
Posted: 2012-04-18 16:22 
Here's my two cents

A. still pushing for a standard Arduino chip. If jim is going to sell these these we can't have people making changes to the IDE i can see the phone calls now.

B. PLEASE put an atmega16u2 on the board. I want to be able to use my diy as a controller for an rc flight sim.

C. As for the display, the graphical display jim ordered a while back has to be modified to work in serial mode. 4-bit mode was pretty buggy, but 8-bit mode was flawless. maybe you could put a coproccessor on the board for an 8-bit parallel display?

D. small idea that jim probably wont like but, Building a charging circuit for a lipo battery that runs off the usb would be great. That way all you have to do to charge the thing is plug into an external port on the controller and walk away... Plus a small lipo would decrease the weight vs a nickel-metal pack.

E. Think about adding four of five extra digital pins. Some people might want some more communication methods.. For example I have Xbee/Airmod/Micro heli/bluetooth all in my controller because i want it to control everything... (even considered an ir transmitter to make it a tv remote :lol: )

_________________
Devon Simmons, Former Programmer for Lynxmotion.
I can try to help, but I can only offer you my best effort.


User avatar
Guru ( offline )
Posts: 9258
Posted: 2012-04-18 16:54 
Dev5994 wrote:
Here's my two cents

A. still pushing for a standard Arduino chip. If jim is going to sell these these we can't have people making changes to the IDE i can see the phone calls now.


I'm on the fence on this one...

Dev5994 wrote:
B. PLEASE put an atmega16u2 on the board. I want to be able to use my diy as a controller for an rc flight sim.


Options are an off board usb interface (sparkfun) to keep the board tiny. The FTDI chip we have been using, or the 16U2. Not sure about the cost comparison between FTDI or 16U2. Both would need to be programmed to be functional.

Dev5994 wrote:
C. As for the display, the graphical display jim ordered a while back has to be modified to work in serial mode. 4-bit mode was pretty buggy, but 8-bit mode was flawless. maybe you could put a coproccessor on the board for an 8-bit parallel display?


Translation, 4 bit mode is more difficult to program for. ;) Adding another processor is not in the scope of this board.

Dev5994 wrote:
D. small idea that jim probably wont like but, Building a charging circuit for a lipo battery that runs off the usb would be great. That way all you have to do to charge the thing is plug into an external port on the controller and walk away... Plus a small lipo would decrease the weight vs a nickel-metal pack.


This radio is low power so to keep costs down I was planing on just using 4 AA batteries. ;)

Dev5994 wrote:
E. Think about adding four of five extra digital pins. Some people might want some more communication methods.. For example I have Xbee/Airmod/Micro heli/bluetooth all in my controller because i want it to control everything... (even considered an ir transmitter to make it a tv remote :lol: )


More digital IO is always a good idea.

_________________
Jim Frye, the Robot Guy
http://www.lynxmotion.com
I've always tried to do my best...


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-18 19:08 
Dev5994 wrote:
A. still pushing for a standard Arduino chip. If jim is going to sell these these we can't have people making changes to the IDE i can see the phone calls now.

I hear you, but currently that leaves either Atmega328 (or less) or Atmega1280+. Personally the 328 is too limited in that I would have to have lots of multiplexers to get the IO lines I would like, let alone the other stuff... And as I mentioned at the start of this, I would like a board that I can solder myself, and the Atmega1280/2560 have lots of little pins to solder. That is not to say that it can not be done, but???

As for support calls, I am not sure. Trossen sell their robots using the Arbotix Board that is also based off of the same chip. A lot of the support is already in the underlying files, so probably only have to update the text file. Also may depend on how this project is sold. If this is part of a full kit that has everything in place with XBee, keypad, generic LCD... , then potentially could have boards flashed with default radio code and some users will worry about reprogramming. For those who it really is DIY then, my guess this is not a real big issue. It will be more interesting on what we suggest is the default and/or prefered way to program the processor.

Dev5994 wrote:
B. PLEASE put an atmega16u2 on the board. I want to be able to use my diy as a controller for an rc flight sim.
Again this very small difficult to hand solder stuff. For my own board I was planning to not have either this or the FTDI chip on board, but do like the Arbotix and some other boards and simply have the pinout to allow you to use something like the Sparkfun breakout board to connect to it. This has the added benefit that we can add a simple cable to the case or the like. and or/ remote an ISP connection. Also I have the impression that the boaloader on these can download programs over XBEE, which would be great!. Still open to other suggestions, but I trying keep the board easy to make. If we put the Atmega16U2, would need to add second ISP connection for us to be able to update that processor as well

Dev5994 wrote:
C. As for the display, the graphical display Jim ordered a while back has to be modified to work in serial mode. 4-bit mode was pretty buggy, but 8-bit mode was flawless. maybe you could put a coproccessor on the board for an 8-bit parallel display?
May have enough IOs with what I suggested to do full 8 bits, else probably choose a different display :lol:

Dev5994 wrote:
D. small idea that jim probably wont like but, Building a charging circuit for a lipo battery that runs off the usb would be great. That way all you have to do to charge the thing is plug into an external port on the controller and walk away... Plus a small lipo would decrease the weight vs a nickel-metal pack.

I personally would not touch this. I have avoided LIPOS up till now as they can be dangerous. Personally will stay with NIMH, will probably build with simple plug like old ones that allow me to plug charger in, which disconnects the battery from ground...

Dev5994 wrote:
E. Think about adding four of five extra digital pins. Some people might want some more communication methods.. For example I have Xbee/Airmod/Micro heli/bluetooth all in my controller because i want it to control everything... (even considered an ir transmitter to make it a tv remote :lol: )
Yep lots of IOs are nice.

Thats all for this round :D

Kurt


User avatar
Expert ( offline )
Posts: 253
Posted: 2012-04-18 22:53 
kurte wrote:
Also I have the impression that the boaloader on these can download programs over XBEE, which would be great!.


This is indeed completely possible. Check this out: http://www.ladyada.net/make/xbee/arduino.html

If you decide to include neither ftdi or a 16u2, it would be nice if you could break out the pins to solder holes as well as headers. then i could just mod the board to use a 16u2 breakout board from sparkfun.

_________________
Devon Simmons, Former Programmer for Lynxmotion.
I can try to help, but I can only offer you my best effort.


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-19 10:03 
Hi Jim and Devon (and others),

I made a pass through the design. Currently my board is about 3.2"x2x65", which I would think would fit fine inside the cases...
Attachment:
DipTrace-PCB---DIY-remote-b.jpg
DipTrace-PCB---DIY-remote-b.jpg [ 128.69 KiB | Viewed 1834 times ]


Devon, I put in a double row for the FTDI breakout pins, so you can hack away. Did not see that breakout board you mentioned, saw the one for 8U2, but...

I grouped the digital pins in groups of 8, the first 2 groups can have VIN. Would be easy to add it to the other group of 8... All analog pins have only +5V

Got rid of the dip switch and converted back to options. 2 3 pin headers with jumpers to choose which USART goes to XBEE. Also a jumper to power the XBee (actually the whole 3.3v system). May want to remote switch to cover to allow you to power of xbee if you are doing something else to save power.

Added other Jumper pins (probably not filled), for things like Reset, and 3 XBee leds. This allows you to easily add a reset switch to the case, and if desired add remote LEDS for showing XBee communications. Note: Jumper is before Resistor so you can choose your own. Could put after instead?

Removed jumper to disable speaker, could add back if wanted...

Started to label stuff on board, still needs some cleanup...

Still thinking about adding I2C EEPROM (need PU resistors and the EEPROM). Could add and decide later if we wish to populate or not.

Still need to make another pass or two, but is probably getting close enough for me to build a board or two and see if I am totally out to lunch or not :lol:

Kurt


User avatar
Guru ( offline )
Posts: 4118
Posted: 2012-04-19 13:36 
That looks pretty good Kurt!

Probably useful for more then the DIY remote.

Alan KM6VV

_________________
Visit:
http://groups.yahoo.com/group/SherlineCNC/
http://tech.groups.yahoo.com/group/HexapodRobotIK/


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-19 17:58 
Thanks Alan,

Yep, I expect that I might find other uses for it as a somewhere in between an Arduino and a Mega...

I think I am done for this round of editing. From the last posting, I did some more text and arrows. Also I did add in the EEPROM, which can be installed or not. Also added in voltage select for the other 8 digital pins.

Also for hack-ability I added an equivalent to VS=VL jumper near the power input connector. Could hard wire a jumper there, but thought there could be cases where someone may want to separate. Example could use choose to add simple add a separate connection to power there if the need should arise. Example maybe choose some high power RC transmitter and wish for separate power/switch... Let me know what you think...

Getting close enough to maybe order a few and see if it works.

Attachment:
DipTrace-PCB---DIY-remote-b.jpg
DipTrace-PCB---DIY-remote-b.jpg [ 133.83 KiB | Viewed 1811 times ]


Kurt


User avatar
Guru ( offline )
Posts: 4907
Posted: 2012-04-20 14:21 
I decided to make a few more changes, as I started the parts list and figured I should make sure there was room for the 40 pin dip Socket. Decided to move larger capacitor out form under it...

Attachment:
DipTrace-PCB---DIY-remote-b.jpg
DipTrace-PCB---DIY-remote-b.jpg [ 134.89 KiB | Viewed 1783 times ]


Also included a zip file here that has the the Diptrace files, gerber files, and a BOM sheet. Just need to do some readme file and the like before I can submit...

Kurt


Attachment:
DIY_001.zip [143.21 KiB]
Downloaded 58 times
1, 2, 3, 4

All times are UTC - 5 hours [ DST ]. It is currently 2014-09-22 02:12
Feedback Form
Feedback Form