Discussion forum for UAVDevBoard, Sparkfun's 3-axis IMU-based autopilot board

This is the place to discuss the new open source IMU-based autopilot board by Bill Premerlani.

Views: 14989

Reply to This

Replies to This Discussion

Ok, I got to page 13 step 10 from "UDB4 Quick START GUIDE.pdf.  When I follow these instructions to a "T" it does not program.  When I click "program" the red LED goes off on the UDB4 board and the STATUS LED on the PICkit3 looks like it is both red and green for about 3 seconds.  After that (steps 10-14) I get a solid red LED instead of the flashing red LED.  

I have done this to two of my boards so I know it is not the board.  I have also done this on two different PC's and the same results.  Yes I installed MPLAB X first on both machines and then MPLAB v8.85 after I realized "X" was not working at all for me.  Again I am new to PIC but not microcontrollers.

I just joined the google groups and I will post to the google groups and UDB website next time I have an issue, but I would like to continue this thread in one location.

Hi Jebadiah,  After completing step 10 on page 13, do you get the message:-

"Programming... Programming/Verify complete" ? That is vital for us to know.

The UDB4 will not start to calibrate until it sees a valid set of PWM pulses coming in from the receiver on the FAILSAFE Channel (FAILSAFE is by default on the throttle channel). With no PWM pulses, the UDB4 will light its red LED solid, and nothing will happen.  If you supply the PWM pulses on the inputs, then you should immediately see the green LED come on solid, and the red LED will blink for a few seconds, the rudder and aileron servos will then waggle (signifying gyro calibration complete), and then the red LED will be solid.  The Wiki on the main UDB googlecode pages will provide more detail of all the LED status conditions.

Best wishes, Pete

Yes I go t the message "Programming... Programming/Verify complete".  I am going through the forums and other docs that I have to try and figure out what pin the throttle is on.  The options file says ch 3.  It also says the signal should be between 2000-4000, is the value in Hz and a 50/50 duty cycle?  I have tried this with my function generator on input 3 but does not do anything. 5v pulse?

OK. So you are programming the board.

Throttle is by default on channel 3 in options.h

The Pulse Width Modulation Signal  is a pulse. The Width of the pulse represents how much to turn the servo. Normal widths in milliseconds re 1000ms for full travel one way of the servo, 1500ms is a centred servo, 2000ms is full travel the other way for the servo. UDB4 / MatrixPilot  uses units that are twice the milliseconds. So in the UDB the corresponding values are 2000 for full travel one way, 3000 for a centred servo, and 4000 for full travel the other way.

If you are generating the pulses, try generating them at 40HZ and centred in the middle on channel 3, say a 1500ms pulse.

Most people just connect up their receiver.

There is an option for NO RADIO in options.h, but I believe that may not work in MatrixPilot3.2.1 . It is fixed in trunk.

Best wishes, Pete

Pete, thanks for your help, hopefully I will get it soon.

The servos I have used the past go from 1-2 ms and have a center freq of 1.5ms.  I am assuming that is what you meant.  A 40Hz signal would have a period of 25 ms so I am pretty sure you meant that.

I think I am missing some important document that explains all the basic info such as an actual datasheet.  For example: I see several references in the "Installation and Basic Connecitons" page for connecting to 4 through-holes for RE4, RE2, RE0, RE8.  My board does not have these connections.  If it does they are not labeled as RE*.

I have also not been able to find if this is a 5v or 3.3 volt kit.  That would be info that should be on the front page of a datasheet if one exists.

I have tried the options file with NORADIO as 1 and 0 and still nothing.

I have put the 40Hz 1.5millisecond pulse on all 1-8 inputs and on IN1 and IN2

I do not have a GPS if that means anything.

I am going to assume channel three is Input 3.

I just have the UDB4 board, a power supply, function generator, and an oscope.  I hope I don't need an aircraft or RF transmitters to get data out of this board.

Where do I download the code that it came with?  Seeing the blinking lights again might make me feel better about my purchase.


Most of the specification for theUDB 4 is provided by Sparkfun as they manufacture the board. They also provide schematic of the board.

The UDB4 superceded the UDB3. From your comments, it seems like some our documentation in the WIki need to specifically be updated to say whether it is talking about the UDB3 or UDB4. The RE4, RE2, RE0, RE8 statement is for a UDB3.

The UDB4 accepts a minimum input of about 5V. It has two power regulators on board.  The gyros, accelerometers and dsPIC33FJ256 CPU run at 3.3V.

Please see the power regulator chips model info on the schematic if you would like to gather more info about their capabilities.

With regard to NO RADIO, which version of MatrixPilot are you using ? As I said, it is unlikely to work with MP 3.2.1 . Did you try trunk using subversion ?

The board should half startup without GPS. In that mode you would be able to use manual mode with a transmitter / receiver if you had one. You would see the LED lights confirm IMU calibration completed.

Channel 3 is input 3 on the UDB4.

MatrixPilot is specifially setup to be used for a wide range of applications. You will not need an RF Transmitter or Aircraft. But most of the documentation assumes that. You are an "edge case", as opposed to being a "mainstream use case" and you will need more help initially.

The firmware that came with the board is called the LED test. It is located here.

If you are a developer, and familiar with programming, I suggest you download Tortoise SVN, and use that to download the full trunk of MatrixPilot.

Best wishes, Pete

Hi Jebadiah,

I understand completely your desire to see the UDB4 "do something".

I suggest the fastest way to gain some comfort with the UDB, and to get your feet wet, is to program it with the "roll-pitch-yaw" demo that accompanies all versions of MatrixPilot. You will find it in a separate subdirectory. Here is what you do:

1. Program your board with the roll-pitch-yaw demo. Since you have a UDB4, you may need to go into the options.h file for the demo and change the board type to UDB4.

2. Connect three servos to the servo out channels 1, 2, and 3.

3. If you have removed the solder blob that ties the input and output power rails together, then connect a jumper between one of the power pins of the input row to one of the power pins of the output row. (Power is on pin #2 of each channel of in and out.)

4. Connect a power source, in the range of 4 to 6 volts.

You do not need to connect anything else, just power and 3 servos.

5. Do not move the UDB while it is initializing. One of the LEDs should be blinking during the process, and will stop at the end.

6. When the LED stops blinking rotate the UDB around each of its axes and see what happens.

Best regards,


Pete, thanks for all the help.  Yes I was looking at the schematics but was also looking for a CH3 or throttle pin which I didn't expect to find.  I have been wanting to use a SVN for a while so it looks like this is my opportunity.  I am downloading Tortoise SVN now.

By the way what is a trunk.

Thanks, hopefully in the next couple days I'll be able to get this done.

New Release

UDB5 - PIC UAV Development Board v5


Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service