Project Updates for 4/2/2013
Apr 02, 2013
I added the code that shows the features enabled and shows the lights for active RC channels. After a number of program crashes, I narrowed down the rogue code and had it check for bad values and display error messages to the log about why it was encountering those values. After that it started working. I optimized the code a bit by replacing parts with more efficient code as I figured out some better ways to do things. After getting that working, I tried making some channels inactive and a bug in the PIC program was immediately apparent. This is exactly why I'm developing my Android interface...
Project Updates for 4/1/2013
Apr 01, 2013
[img android_interface1.jpg||left]It's been a little over a week since my last update, but I've been working on on my robot. I actually made a lot of progress just tonight. Over the past week and a half I've completed several important items including coming up with a basic layout, which turned out pretty much what I sketched out on paper. The code for returning requested data is now complete on the Arduino side. I'm working on getting the Android interface to update based on the returned values.
I currently have the switches changing to the correct values, with which the command is issues upo...
Project Updates for 3/23/2013
Mar 23, 2013
I ended up attaching an external LED, which worked great. After doing lots of reading and internet searching, I've finally come up with a solution that has everything working nicely. I found a very nice Android Library called usb-serial-for-android. This was written with the main purpose of communicating with the android. Additionally, this library includes drivers for communicating with many Arduino devices including FTDI based arduinos like my Diecimila, which will save me a lot of time. Although the documentation is sparse, I was able take the example program and intergrate it into my own p...
Project Updates for 3/19/2013
Mar 19, 2013
Today I figured out how to update a text field from a thread by using the TextView's .post() method. I ended up creating a function that I can just call with the string and it tells the UI to update the text field. Anyhow, after I did that, I found a few errors in my code and fixed those. I looked into the USB specification documentation to figure out exactly what exactly the commands I found online to send to the arduino did. After some analysis, I found that it sets the Serial Line to 9600,1n8. However, my arduino was trying to talk at 57600, so I figured out the correct bytes to send it to...
Project Updates for 3/18/2013
Mar 18, 2013
I haven't had much opportunity to work on this over the weekend, although I did end up replacing the touchscreen glass that fits over the LCD on an android tablet that had cracked and that was very successful. I finally did some work on it today. I'm starting on working on the communications between the Arduino and the android. I set up the code to set up the serial connection and perform a bulk transfer. It's not quite working yet, but when I was trying to debug it by having the program print the status to a text field, it kept crashing until I remembered that you aren't supposed to access t...
Project Updates for 3/14/2013
Mar 14, 2013
So, for the past couple of days, I've been focusing on the Android code. There's a lot of learning to do, but as I gain a better understanding, I also understand new concepts that previously looked foreign to me.
Yesterday, I took some USB examples I found and figured how to integrate them into my code. It's not working yet (I had to comment out a bunch of the code), but it's closer. I ended up adding some code to request permission to use the device and that went ok.
Today, I ended up figuring out about interfaces and endpoints. You have devices, interfaces and endpoints that are in a tree hi...
Project Updates for 3/12/2013
Mar 12, 2013
I went ahead and put the new code on the old board, but it worked fine, so I knew it had to be something to do with the differences of the boards. I started a new Arduino project file and kept slowly adding things in with it working fine until I got to the SPI stuff. Looking closer at the Arduino documentation revealed that the boards did not use the same pins. However, the 6 pin ICSP headers had the SPI pins on them and were consistent between boards. I went ahead and made some modifications to my shield and wire harness so that it was able to plug into the ICSP header rather than be wired to...
Project Updates for 3/11/2013
Mar 11, 2013
It's been a while, but I've been getting back into the robotics project again. There are a couple new things. First of all, I kind of broke the ICD2 board by plugging it into an incorrectly wired USB port. When trying to replace the USB chip, I lost some traces, so I may have to remake a board in order to get that reworking, but that's on hold for now.
The current project is connecting my Android tablet to the Arduino and using that for testing/debugging purposes. To do that, I'm learning Android programming. So far I've made a program that runs in host mode on the tablet and detects when the ...
Project Updates for 10/27/2010
Oct 27, 2010
Well, I did get some more work done on the servo replacement board. However, due to too many components being required, I won't be able to make a board that fits in the miniature servo. However, I do have the option of taking the original board out of the robot and putting it back into the original servo and then putting the board I'm designing into the robot. I'm almost done with the servo board, but have been side-tracked lately with working on putting MacOS on my laptop.
Some good news however. I ordered an upgraded ATMEGA328 chip for the arduino and received it today, so now it has twice a...
Project Updates for 10/11/2010
Oct 11, 2010
The last couple days I've been working on the servo replacement board. I've been using the new ICD for programming the chip and it's been working well. Unfortunately, with the PIC12F683 chip, using the ICD2 for debugging purposes requires a debug header, which is a small board that interfaces between the chip and the ICD. In order to get the PIC so small, they had to remove some functionality such as the debug circuitry and the header basically functions as the debug circuitry they removed from the chip. Additionally, with so few pins hooking up an LCD display is impractical, although I found ...