I received the V0.2 prototype boards for the Jetduino last week and I put one together last weekend and began testing. Things went really well with the board, and for the most part it works great! This time when I was getting the solder paste ready I taped down the free ends with some Scotch tape. This kept tension on it, but since it was Scotch tape it still came up easily when it was time to pick up the stencil. This produced much better results than just trying to hold it down with my hand.
I also did not heat it for as long this time. It was the Grove SMD parts that were giving me problems with not wanting to reflow. I assume this is because of their much greater mass than the other electronic parts. So I decided to turn it off before they had fully reflowed. I then soldered them on by hand. In the future, if I need to do these Grove SMD connectors I will not even bother putting them on for the reflow part and will just do them by hand afterwards. I did have one of the GPIO level-shifted pins this time not want to work, so I believe I still had some damage and turned the heat off just in time to prevent further damage. Otherwise all the Jetson and Arduino lines work great. I was able to test digital read/write from all the Jetson and Arduino pins, and analog read/write from the Arduino pins. I also tested standard and smart servo control on the Due, and serial and I2C communications on the Jetson and Arduino.
As you can see in figures 2 and 3, the issue with the Arduino interfering with the mounting standoffs for the Jetson was also fixed. Everything fits in there perfectly now with the exception of one of the antennas. I tested the antenna placement in my mockup, but I guess I was off a little when I drilled the holes because the HD SATA cable just barely interferes with the last antenna cable, keeping it from going in. That was a bummer, but otherwise things looked really good. I was also able to switch to a smaller 35mm standoff to get the Jetduino in tighter to the Jetson. I am using a 25 mm standoff to mount the DC-DC converter.
Several of the major problems with the initial Jetduino prototype were related to the power system. Instead of using a bult-in 12V regulator, I included the MyzharBot power filter circuits on the board, and provided screw terminals for both raw battery power and filtered power. You can use the filtered power to either go directly to the Jetson TK1, or to run it to a DC-DC up/down converter which then goes to the Jetson. The converter mounts on top of the Jetduino as shown in figure 2.
I tested both cases. I was able to use a 3C 11.1V LiPo battery to power the Jetson directly without a converter. I was also able to use the converter to power the Jetson with both a 3C and a 7.4V 2C battery. I used the 2C battery to power a set of standard servos while the DC-DC converter provided a steady 12V power to the Jetson. I also used a DC power supply and was able to use the converter to power the Jetson all the way down to a 6V input. I did not want to risk going any lower than that, as the Arduino has a 6V input minimum. However, if you are not using the Arduino then you would probably be able to go down even lower and still power the Jetson okay. Using the DC-DC converter gives you a tremendous amount of flexibility for your input supply.
The only issue I had with the power system is that I choose some smaller screw terminals for the filtered power ouptut, and I really did not like them. (Green screw terminal shown in figure 2.) They were a bit flimsy and the hole was so small it was difficult to get a decent gauge stranded power wire into them. In the final version I will use the same larger blue screw terminal throughout. This will also have the benefit of eliminating a different part type.
Another feature that was added to this version of the board is headers for attaching buttons for startup/shutdown, and reset of the Jetson, along with headers for external LEDs to inform you when the battery and Jetson are on. These all worked great. in my testing I was able to connect up a simple push button to the the header for the Jetson power to turn it on, and then to have it cleanly shutdown. A second push button connected to the reset header allowed me to do a reset of the Jetson, while the LEDs gave me visual feedback on whether the Jetson or battery power was on/off.
I am very happy with the functionality for this version of the board. I think it will work well for a robotics interface to the Jetson TK1. However, as I was getting ready for the crowdfunding campaign I started getting more serious about figuring out final pricing. This turned up a problem. The board as it is currently designed is simply too expensive. I would need to sell the board for about $100 to make it feasible, and that is just too much money. I have been working to streamline the board to eliminate or replace expensive parts and to remove some of the features of the board, while keeping the core still there. For example, in the last set of tests I mentioned I was going to add an extra ADC chip directly connected to the Jetson. I did not even put the parts for that on this prototype because I had already decided to eliminate it going forward. This is redundant because you can use the Arduino. I have been looking for things like this to remove to lower the costs. I would also like to have a stripped down, dirt-cheap version of the board, and full-blown version. I believe I am close to having the new design ready. When this is finished in the next few days I will create a new post describing the changes, the differences in the two board versions, and the targeted prices for each. My price target for the low cost base version is $35-50, and for the full version it is $55-70. This price would include the Jetduino main board and connector board, a 10 cm 40-pin GPIO ribbon cable connector, four 35mm nylon mounting standoffs, four 6mm nylon standoffs, and twelve nylon M3*6 hex head bolts, three 2mm spacers for HD mounting, and a DC 5.5x2.1mm power connector.
Now that I have a version of the Jetduino with a usable power system I plan to start a new blog/video series for a JetduinoBot. I will start by mounting the Jetson/Jetduino on a DF Robot 4WD base with motor encoders. So at first it will be an indoor only robot. Once I get that working I will look at moving it to a base for outdoor use as well. Initially I am planning on using a Kinect as the vision depth sensor. I would prefer to use the Asus Xtion Pro Live like MyzharBot and JetsonBot use, but I cannot find anywhere that is selling them anymore. Another option would be to use a Lidar Lite (assuming they ever start making them again), or a ZED stereo camera. I may try a few different things, assuming some of these things become available again sometime soon. All the components will be glued together using ROS of course. I am really excited to finally get to the stage where I can start doing some of the fun vision based navigation. My goal is to build a video series similar to what JetsonHacks did with his JetduinoBot, showing things at each stage during the development so you can follow along and build your own JetduinoBot if you want!
After I get the JetduinoBot rolling around I plan to mount a Jetson/Jetduino on my Phantom II hexapod. I plan on calling this one the JetduinoHexBot. In my spare, spare time I have been working on a spiking neural network simulator built on the ArrayFire GPU library. This is a library that lets you use high-level array syntax to perform number crunching on CUDA and OpenCL systems. I plan to use this to build a biologically realistic neural network to control the movements of the hexapod. My goal is to have it learn how to walk and produce life-like movements. I will be producing a video series on this as well. So if any of this sounds interesting and you have still not signed up for my newsletter, then please sign up so you can be notified as new videos and posts come out.
Notify me of followup comments via e-mail
Please subscribe to my Newsletter!
NeuroRobotic Technologies is dedicated to creating the next generation of intelligent, adaptive robotic systems by building autonomous controls systems that mimic the brains of real animals.