James Cotton
f491c924d6
Start updating the OSX UDP simulation to use a separate thread for receiving
...
but it needs two - one as a task (where the com callback occurs) and another
for the physical process stuff that doesn't need to suspend (like teh TCP
thread does)
2012-04-03 09:17:55 -05:00
James Cotton
5d0e513678
Fix small deg/rad issue in generating gps data
2012-04-03 09:17:55 -05:00
James Cotton
df6bc4deff
Enable guidance on simulation and add wind model
2012-04-03 09:16:31 -05:00
James Cotton
fdfaac6559
More tweaks to OSX simulator
2012-04-03 09:16:31 -05:00
James Cotton
ca535c2632
Fix bugs in simulated sensor data. Now works well with INSGPS.
2012-04-03 09:16:31 -05:00
James Cotton
84040d25b4
Add attitudesimulated object to capture the simulated state
2012-04-03 09:16:30 -05:00
James Cotton
09ce6e1ab4
Restore the original Revolution FreeRTOSConfig and make the osx simulation
...
scheduler not start high priority tasks when they are created because I can't
reliably get the starting task to stop (because currently in a swapping mutex I
think).
2012-04-03 09:16:30 -05:00
James Cotton
6df9691609
Bring back the original module files and remove comments from FreeRTOS
...
debugging
2012-04-03 09:16:30 -05:00
James Cotton
82a2987b2c
More improvements to the osx simulation FreeRTOS port. Only tick the tick
...
handler when we have confirmed the running thread has halted. This is more
like what would happen on a single core machine.
2012-04-03 09:16:30 -05:00
James Cotton
543500ed78
Improve the simulated sensors to produce (I think) consistent data now
2012-04-03 09:16:30 -05:00
James Cotton
0b342ea3d6
Changing the tick counter to only happen after current thread is suspended
...
seems to fix stability issues
2012-04-03 09:16:30 -05:00
James Cotton
fbd8695d7d
Check in WIP for osx simulation
2012-04-03 09:16:30 -05:00
James Cotton
c1726e30e5
Make pios_tcp uses two threads - one for the socket stuff and another within
...
FreeRTOS to receive the data.
2012-04-03 09:16:30 -05:00
James Cotton
75262b400a
More osx simulation work
2012-04-03 09:16:29 -05:00
James Cotton
da294384b6
Getting closer on osx simulation
2012-04-03 09:16:29 -05:00
James Cotton
a2bc7b8668
Osx Simulator Not running quickly but at least it's staying up
2012-04-03 09:16:29 -05:00
James Cotton
898a595d81
Delete old files
2012-04-03 09:16:29 -05:00
James Cotton
adad006530
More work on OSX simulation
2012-04-03 09:16:29 -05:00
James Cotton
99e246f151
More of the 7.0 files for OSX simulation
2012-04-03 09:16:29 -05:00
James Cotton
356802b5ac
Update to FreeRTOS 7 for OSX sim
2012-04-03 09:16:28 -05:00
James Cotton
0d3a6d94d8
Delete some old files
2012-04-03 09:16:28 -05:00
James Cotton
491df5d130
Small update to the osx wdg
2012-04-03 09:16:28 -05:00
James Cotton
51f0c3453b
More work on osx simulation engine
2012-04-03 09:16:28 -05:00
James Cotton
3c0b65fbf8
Implement a simulated watchdog to catch when the chip would have reboot
2012-04-03 09:16:28 -05:00
James Cotton
28cab678ce
Simulate a more complete QC model.
2012-04-03 09:16:28 -05:00
James Cotton
9d5dbe4bfe
Create stub for TCP connection of simulation
2012-04-03 09:16:28 -05:00
James Cotton
6aa1f1e344
Had some debugging outputs (logged to file) still enabled
2012-04-03 09:16:28 -05:00
James Cotton
f1aa3b658e
Add a new sensor simulation mode that essentially has a gyro rate that is rate
...
desired and the accel based on the current attitude.
2012-04-03 09:16:28 -05:00
James Cotton
ce54c4205d
Disable a print from the port that was causing rashes
2012-04-03 09:16:27 -05:00
James Cotton
6df2df6eec
Get rid of the mutex when enabling/disabling soft IRQs. This isn't ideal but
...
it seems to be triggering deadlocks.
2012-04-03 09:16:27 -05:00
James Cotton
6adc74f6f9
Check in the fake sensor data module
2012-04-03 09:16:27 -05:00
James Cotton
dee17f8fd4
Enable task run time monitoring in osx simulation
2012-04-03 09:16:27 -05:00
James Cotton
0e815540ff
Patch from Stac that processes module names without using sed. Also enable
...
diagnostic stuff for simulation.
2012-04-03 09:16:27 -05:00
James Cotton
2391385788
Remove the pauase in the idle task. Increases load but also stability.
2012-04-03 09:16:27 -05:00
James Cotton
e97c1bc016
Include the module include file before any uavo ones
2012-04-03 09:16:27 -05:00
James Cotton
dfa39b59bf
Rename the pios_config file for simulation
2012-04-03 09:16:26 -05:00
James Cotton
cb7b475d03
Remove the need ot have two ways of listing the modules for simulation
2012-04-03 09:16:26 -05:00
James Cotton
76bdd09795
Rename the pios_config file for simulation
2012-04-03 09:16:26 -05:00
James Cotton
e79a6e292b
Add watchdog flag for simulated sensor task
2012-04-03 09:16:26 -05:00
James Cotton
e0fbdaf9fe
Move the pios_board_posix file to something more general
2012-04-03 09:16:26 -05:00
James Cotton
c8a64ccbc7
Need to use slightly different code to generate the InitMods.c function for
...
simulation because of the Attitude/Revolution format.
2012-04-03 09:16:26 -05:00
James Cotton
1763d0c72c
Switch to conditional signaling. Seems more robust.
2012-04-03 09:16:26 -05:00
James Cotton
f0e84088c1
Simulated LED now flashing.
2012-04-03 09:16:26 -05:00
James Cotton
5589ca60db
Check in compilation files for OSX simulation. Update to work on revolution
...
tree.
2012-04-03 09:16:26 -05:00
James Cotton
ea5b733ac8
Fix the soft timing in pios_delay. Also disable LED printing messages.
2012-04-03 09:16:26 -05:00
James Cotton
dd5a71c48d
Add watchdog flag for simulated sensor task
2012-04-03 09:16:25 -05:00
James Cotton
ae2f1e95f6
Move the pios_board_posix file to something more general
2012-04-03 09:16:25 -05:00
James Cotton
5fd569829c
Need to use slightly different code to generate the InitMods.c function for
...
simulation because of the Attitude/Revolution format.
2012-04-03 09:16:25 -05:00
James Cotton
5901a07eb1
Switch to conditional signaling. Seems more robust.
2012-04-03 09:16:25 -05:00
James Cotton
99b81c7159
Simulated LED now flashing.
2012-04-03 09:16:25 -05:00
James Cotton
4e64b27034
Disable matlab simulation for now
2012-04-03 09:16:24 -05:00
James Cotton
cfd92de87a
Add explicit casts in manualcontrol to avoid compiler warnings/errors
2012-04-03 09:16:24 -05:00
James Cotton
7ba32f8735
Check in compilation files for OSX simulation. Update to work on revolution
...
tree.
2012-04-03 09:16:24 -05:00
James Cotton
5827e3f565
Add box around logo path
2012-04-03 03:42:37 -05:00
James Cotton
bfb0c6935e
Make pathplanner use callbacks on the waypoints and their index to pick up
...
changes from the GCS while flying
2012-04-03 03:42:37 -05:00
James Cotton
c26cceb47b
If the waypoint index is changed then update teh position desired. This should
...
probably be done with change callbacks because currently changing the waypoints
themselves doesn't update position desired.
2012-04-03 03:42:36 -05:00
James Cotton
6d1c36680f
Scale the max velocity as a magnitude on teh vector instead of independently on
...
each direction
2012-04-03 03:42:36 -05:00
James Cotton
5b3cc4876e
In simulations a higher GPS noise is required for the INS
2012-04-03 03:42:35 -05:00
James Cotton
32f76db8ae
Only update position desired when you change waypoints active
2012-04-03 03:42:35 -05:00
James Cotton
ba1ade33cb
Get navigation working and program hardcoded flight path
2012-04-03 03:42:34 -05:00
James Cotton
62117430cf
Flip the sign of throttle in the guidance altitude control
2012-04-03 03:42:34 -05:00
James Cotton
7f226867c6
Some bug fixes for revo attitude estimation.
2012-04-03 03:42:33 -05:00
James Cotton
d4488512c0
Add RTH waypoint action
2012-04-03 03:42:33 -05:00
James Cotton
3eac69e953
Create stub for waypoint navigation
2012-04-03 03:42:32 -05:00
James Cotton
c8ceea72e6
Increase the telemetry queue size from revolution
2012-04-03 03:42:32 -05:00
James Cotton
af9f36d7df
Improve the attitude initialization for all of the modes
2012-04-03 03:42:32 -05:00
James Cotton
3888d6ff69
Changed settings that makes updates smoother
2012-04-03 03:42:31 -05:00
James Cotton
319b53a342
Make sure full initialization routine for INSGPS occurs each time it is
...
restarted.
2012-04-03 03:42:31 -05:00
James Cotton
372f959c37
Refine some stack sizes
2012-04-03 03:42:30 -05:00
James Cotton
54880c83a0
Fix some task sizes and the memory limits
2012-04-03 03:42:30 -05:00
James Cotton
a83fb019f6
When in complimentary filter mode pass the GPS information straight
...
through to Position Actual
2012-04-03 03:42:29 -05:00
James Cotton
98b1a21921
Fixup: Shouldn't update gps until home location is set
2012-04-03 03:42:29 -05:00
James Cotton
7a3ec3e173
Some code cleanup to get rid of some warning messages
2012-04-03 03:42:29 -05:00
James Cotton
23625904c5
Remove the now unused ECEF and Rne fields from HomeLocation. Also reenable
...
calculation of the WMM and HomeLocation from the GPS code for revolution.
2012-04-03 03:42:28 -05:00
James Cotton
71d0180d45
Use the sensor variances from object
2012-04-03 03:42:28 -05:00
James Cotton
ce2d1f94f6
Better hardcoded constants for INS variances
2012-04-03 03:42:27 -05:00
James Cotton
de7fc81795
Fixes to the GPS LLA to NED translation
2012-04-03 03:42:27 -05:00
James Cotton
e32ab9342c
Shuffle some stack sizes around
2012-04-03 03:42:26 -05:00
James Cotton
4cadb7ec0e
Forgot to initialize revo settings object
2012-04-03 03:42:26 -05:00
James Cotton
337d5b7079
Enable guidance in revo. Update manual control to set the position desired
...
when the switch is flipped.
2012-04-03 03:42:25 -05:00
James Cotton
0eedaa1250
Change how we convert LLA to NED. Now it is done with a taylor expansion
...
around the home LLA coordinate to avoid the conversion into ECEF coordinates.
This has the benefit of not requiring double precision math and uses less
operations.
Now we should remove the Rne and ECEF fields from HomeLocation as they are
unused
2012-04-03 03:42:25 -05:00
James Cotton
e8cc7748af
Clean up some unused variables in attitude code
2012-04-03 03:42:24 -05:00
James Cotton
a9aa6b696b
Add object for setting the fusion algorithm
2012-04-03 03:42:24 -05:00
James Cotton
1911c7360d
New NEDPosition object which is the transformed GPS location
2012-04-03 03:42:24 -05:00
James Cotton
e3c36ac99a
Change requires for GSP updated to be set to true (wrong sign on PDOP check)
2012-04-03 03:42:23 -05:00
James Cotton
1630267324
Some small updates to 16 state INS
2012-04-03 03:42:23 -05:00
James Cotton
9e4651ab80
INS working on Revo
2012-04-03 03:42:22 -05:00
James Cotton
7e36d086de
More work on INS algorithm to force constants to single
2012-04-03 03:42:22 -05:00
James Cotton
137429d92d
More work for the simulation
2012-04-03 03:42:22 -05:00
James Cotton
96edea9d4b
Some fixes to GPS parsing
2012-04-03 03:42:21 -05:00
James Cotton
55ee568fe2
Work on the INS algorithm
2012-04-03 03:42:21 -05:00
James Cotton
7034a45e44
Force more calculations to explicitly being float
2012-04-03 03:42:20 -05:00
James Cotton
8c8224c122
Use a bigger event queue for overo logging to avoid event system warnings, and
...
add code to shortcircuit formatting a packet if it will not fit.
2012-04-03 03:42:19 -05:00
James Cotton
e82323af32
Make revolution work with the FreeRTOS queue based MPU6000 driver
2012-04-03 03:41:52 -05:00
James Cotton
bb41bc1472
Add no for DIAG_TASKS to make file to make it easier not to miss.
2012-04-03 02:07:04 -05:00
James Cotton
d7cb232315
Add MPU6000 accel range to config structure. Also put in correct values.
2012-04-03 02:07:04 -05:00
James Cotton
3346e848e0
Attitude error timeout was 2 ms when sensors at 500 Hz. Caused lots of errors
...
and overwhelmed event system.
2012-04-03 02:07:04 -05:00
James Cotton
3f22ef8c66
Slow MPU6000 on CC3D to 500 Hz
2012-04-03 02:07:04 -05:00
James Cotton
35854b35f6
MPU6000 accel value coming out twice as high as it should. Need to store scale
...
in cfg structure to fix this properly.
2012-04-03 02:07:04 -05:00
James Cotton
8032130769
Slow down gyro a bit on CC to give the CPU some breathing room. Might need to
...
come down more.
2012-04-03 02:07:03 -05:00
James Cotton
a960f3d07e
Switch the MPU6000 driver to using a FreeRTOS queue. Need to update Revo code
...
to take advantage of this.
2012-04-03 02:07:03 -05:00
James Cotton
1415728762
Get the MPU6000 CC3D working. Right now the ADC system is commented out, which
...
will break regular CC.
2012-04-03 02:07:03 -05:00
James Cotton
a0b7453580
Make the firmwareIAP variable not a global
2012-04-03 02:07:03 -05:00
Stacey Sheldon
9b33be5d65
ef: pad any gaps between the BL bank and the FW bank
...
The Entire Flash (EF) image for revo has a gap between
the end of the BL bank and the start of the FW bank.
This fills the gap with 0xFF and properly aligns the
FW image in flash.
2012-04-01 22:39:27 -04:00
Brian Webb
df0a1c2ac1
Upgraded Brian-Metadata-Mods to current next.
2012-04-01 12:25:13 -07:00
Brian Webb
496a323b7f
Fixed indentaion.
2012-03-31 07:59:44 -07:00
Stacey Sheldon
eab923fee0
revo: move fw image into 128KB sectors
...
This saves the more versatile 16KB and 64KB sectors
for other purposes.
2012-03-28 21:52:43 -04:00
Stacey Sheldon
f971fc14d5
openocd: update to latest git snapshot (f1c01333)
2012-03-27 00:53:27 -04:00
Stacey Sheldon
91cffb1809
f4 usb: don't skip yield from ISR
...
Function was returning prior to the code that might
need to yield from within the ISR.
2012-03-27 00:18:44 -04:00
Sambas
93ad5d2660
stuff
2012-03-26 19:23:16 +03:00
Corvus Corax
0742c88a98
enabled optional rtation of Revolution board
2012-03-26 05:25:52 +02:00
Corvus Corax
d32dd0ccd4
Fixed fmod() versus fmodf() usage in flight/...
2012-03-26 04:16:54 +02:00
Sambas
4c6ee740e2
Merge remote-tracking branch 'remotes/origin/james/revolution' into osd_test_v1
2012-03-25 14:28:25 +03:00
Brian Webb
1669f00456
Merge remote-tracking branch 'origin/next' into Brian-PipXtreme-V2
2012-03-24 15:21:16 -07:00
Brian Webb
23f6c8af73
Merge remote-tracking branch 'origin/next' into Brian-PipXtreme-V2
2012-03-23 20:49:12 -07:00
Stacey Sheldon
730defb698
f4 flash: fix flash voltage range setting in bl_helper
...
F4 boards are powered by 3.3V which corresponds to
VoltageRange_3. Fix this to match actual VDD so we
get faster erase/write times.
2012-03-22 22:37:31 -04:00
James Cotton
8059004755
Make sure if an event has a null handle and the queue is full we don't try and
...
query UAVObjID
2012-03-22 10:46:30 -05:00
James Cotton
c7ff2a46c7
Merge remote-tracking branch 'origin/laurent/modelview' into revolution
...
Conflicts:
flight/CopterControl/Makefile
ground/openpilotgcs/src/plugins/config/config.pro
ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
2012-03-22 02:58:24 -05:00
James Cotton
2f8049e20a
Update the bootloader hw version for the mpu6000 board and make the sensor code
...
and initialization respond appropriately. Enable hte L3GD20 and BMA180.
Let the board type determine which is used.
2012-03-22 00:41:37 -05:00
James Cotton
6350ec575e
Merge remote-tracking branch 'origin/os/features/stick-deadband-next' into next
...
Conflicts:
ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
2012-03-21 16:03:40 -05:00
James Cotton
e7ca02c038
Initialize mag before mpu6000. Seems more reliable but I don't know why.
2012-03-21 03:42:15 -05:00
James Cotton
e4290d678b
Reenable the pressure sensor and other modules
2012-03-21 00:49:29 -05:00
James Cotton
720684c248
Flag to enable pressure/mag
2012-03-21 00:49:04 -05:00
James Cotton
a77a859e5c
Using some config switches to get this board up and running
2012-03-21 00:48:31 -05:00
James Cotton
6b88a278b3
Disable overosync by default. It was triggering event system warnings due to
...
the extra updates from altholdsmoothed. Increase queue size when reenabled.
Also AltHold is is trigger warnings because other tasks starve it during
startup.
2012-03-21 00:29:09 -05:00
James Cotton
f4663b98e4
When the event system or object manager has an error store the object ID in the
...
SystemStats.
2012-03-20 23:18:07 -05:00
Brian Webb
fc2d81cd8c
Added optional ADC initialization to PipXtreme (turned off).
2012-03-19 17:59:05 -07:00
Brian Webb
fdf853a2fe
Cleaned up the PipXtreme makefile.
2012-03-18 19:26:18 -07:00
Brian Webb
823b111d60
Added Reed-Solomon error correction to PipXtreme. The code is a slight modification of rsscode ( http://rscode.sourceforge.net ). Packet acking has also been turned on as the default, so each packet is error corrected, and if errors remain, the packet is NACKed, otherwise it is ACKed. Also temporarily turned off UAVTalk parsing. This was causing the CC to be identified as a PipX due to the PipX sending UAVObjects (I believe) from the system module. The system module is going to have to be modified/replaced for the PipX.
2012-03-18 17:43:29 -07:00
Brian Webb
aba3789d87
Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into Brian-Metadata-Mods
2012-03-18 13:28:11 -07:00
Brian Webb
346ae1bc6e
Removed crc from PipXtreme build.
2012-03-18 10:29:28 -07:00
Brian Webb
620e862022
Moved unused crc.c/h back to PipXtreme directory.
2012-03-18 10:26:47 -07:00
Brian Webb
ecdf150946
Moved RFM22B code from PipXtreme to pios_rfm22b.c driver. The radio is now passing data.
2012-03-18 10:22:05 -07:00
Sambas
13094abc1c
new splash screens and better handler for them
2012-03-16 18:00:16 +02:00
Brian Webb
41c68a6f6b
Updates to PipX configration.
2012-03-15 19:51:46 -07:00
Brian Webb
78b622a8d8
Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into PipXtreme
2012-03-15 19:31:18 -07:00
Brian Webb
b34b849453
Added start at a modified PipX packet handler.
2012-03-15 19:29:54 -07:00
James Cotton
a319a6b14c
Flags to disable mag/baro init
2012-03-14 22:35:09 -05:00
Sambas
ef7758505a
Mapping correct ports
2012-03-13 20:42:37 +02:00
Sambas
be6a4f2a1b
Merge remote-tracking branch 'remotes/origin/sambas/osd_test' into osd_test_v1
...
Conflicts:
flight/OSD/System/pios_board.c
flight/board_hw_defs/osd/board_hw_defs.c
2012-03-12 18:50:32 +02:00
Sambas
4afe0e7c92
usb interrupt fix
2012-03-12 18:26:23 +02:00
James Cotton
0d42303d37
Fix some compilation errors/warnings in attitude.c
2012-03-11 16:30:18 -05:00
James Cotton
c8d1534b87
Convert inline functions to static, let the compiler figure it out. Also some
...
formatting since code was probably written with tabstop = 2 :)
2012-03-11 13:18:08 -05:00
James Cotton
bbbca319d8
Merge commit 'c4df0c0ceff8ba985bb20d815f27910b9e59d992' into revolution
2012-03-11 13:14:06 -05:00
Alessio Morale
c4df0c0cef
Support for port remapping on serial ports
...
Support for receiver configuration (PPM, PWM and DSM)
There are still problems with Flexi port (not sure if related to a problem with my board) and Uart/SBUS that has the input always inverted.
2012-03-11 18:38:49 +01:00
Sambas
2ca27b0a27
USB and bootloader stuff, WORKS!!
2012-03-11 12:04:44 +02:00
Sambas
7c06c0ed93
Merge remote-tracking branch 'remotes/origin/sambas/osd_test' into osd_test_v1
...
Conflicts:
flight/Modules/Osd/osdgen/osdgen.c
flight/OSD/Makefile
flight/OSD/System/pios_board.c
flight/board_hw_defs/osd/board_hw_defs.c
make/boards/osd/board-info.mk
2012-03-11 11:58:06 +02:00
Sambas
cb442f0481
Merge remote-tracking branch 'remotes/origin/sambas/osd_test' into osd_test_v1
...
Conflicts:
flight/Modules/Osd/osdgen/osdgen.c
flight/OSD/Makefile
flight/PiOS/Common/pios_video.c
shared/uavobjectdefinition/osdsettings.xml
2012-03-11 11:39:29 +02:00
Sambas
addda5f29d
USB and bootloader stuff, WORKS!!
2012-03-11 11:31:02 +02:00
Sambas
742f3ff24d
Merge remote-tracking branch 'remotes/origin/james/revolution' into osd_test
...
Conflicts:
ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp
2012-03-11 09:39:51 +02:00
Sambas
ccf5c310c9
Updates
2012-03-11 09:27:38 +02:00
Stacey Sheldon
3782cdc58e
bu: drop CC and PipX from BU targets since they don't build
...
The CC and PipX bootloader updater (BU) builds don't currently
work due to some recent changes in how LEDs are handled.
Remove them from the default BU targets so that the all_flight
target can build clean again.
Also fix a linker warning in OP build.
2012-03-10 20:41:15 -05:00
Stacey Sheldon
6038bfcb40
revo servo: swap servo pins 3 and 4 definitions to match schematic
...
Note non-standard pin numbering on JP3 on the schematic.
2012-03-10 15:06:21 -05:00
James Cotton
820ca6a970
Initialize loop variable OUTSIDE loop so that baro is used still for altitude
...
hold.
2012-03-10 11:28:51 -06:00
James Cotton
f4705551b6
Update task info to cover the AltitudeHold module
2012-03-10 11:14:30 -06:00
Sambas
ee2b12b917
Updates
2012-03-10 09:40:37 +02:00
Dmitry Zaitsev
d45e88515b
firmware: disable Attitude module in simulation
...
this part should be rewritten to completely disable the polling of sensors.
i just do not know how to do it correctly.
2012-03-10 06:02:23 +04:00
James Cotton
690f1b5f29
Enable camera stabilization
2012-03-08 01:37:34 -06:00
Stacey Sheldon
3210bd3f9c
f4 usb_dcd: disable FIFO empty IRQ while waiting for tx completion
...
CPU was being hammered with FIFO empty IRQs if we queued data but
the host wasn't actively draining the FIFO.
This was entirely unexpected so this hack should probably be
removed once we can figure out why this was happening.
This is almost certainly hiding some other issue.
2012-03-07 20:36:37 -05:00
Stacey Sheldon
c4bd286739
f4 usb_hid: track whether we have buffers queued on endpoints
...
Make sure we don't clobber our endpoint configuration by
double configuring an Rx or Tx buffer against it. Wait for
the completion of the previous operation before allowing
endpoint configuration again.
2012-03-07 20:36:36 -05:00
Brian Webb
d73895de7d
Working PipX com relay.
2012-03-07 18:05:42 -07:00
Stacey Sheldon
65fc6104e6
f4 usb_hid: ignore upper layers if USB IF not yet enabled
...
Upper (COM) layer was calling down into the HID layer before
the HID interface had been enabled. This was leading to
interacting with the endpoint Rx and Tx FIFOs prior to init.
The FIFO config was then being clobbered when we the USB IF
was eventually enabled.
2012-03-07 20:01:35 -05:00
Stacey Sheldon
1f37806eab
f4 usb_hid: fix typo in EP IN registration call
...
Code was using the size of the Rx buffer instead of the Tx
buffer when registering. Buffers are currently the same
size so wasn't causing any issues.
2012-03-07 20:01:35 -05:00
Stacey Sheldon
bc3ee6209c
f4 usbhook: drop in/out bit from EP numbers before using as index
...
USBHOOK endpoint callback arrays should not be indexed with the
0x80 (in/out) bit set. Oops.
2012-03-07 20:01:35 -05:00
Stacey Sheldon
6832a62872
f4 bl_helper: clear all flash errors as we unlock the flash
...
Error flags being set were causing flash erase operations to
fail. Not sure why these flags were set though so this might
be hiding some other problem.
2012-03-07 19:53:18 -05:00
Stacey Sheldon
4ea1156e7b
f4 bl_helper: teach bl_helper about f4 flash sector map
2012-03-07 19:53:17 -05:00
Stacey Sheldon
d1d123e4f6
revo bl: turn on USB and add support for OP DFU protocol
2012-03-07 19:53:17 -05:00
Stacey Sheldon
b8fcbad297
revo bl: remove unneeded code from revo BL
...
Clean up BL source tree and makefile.
2012-03-07 19:53:17 -05:00
Stacey Sheldon
c854c3f4a4
usbhook: add support in API for deactivating USB
2012-03-07 19:53:17 -05:00
Stacey Sheldon
cb9c3a9b7e
usbhook: delete dead code
...
Remove old code left-over from porting from F1 to F4.
2012-03-07 19:53:17 -05:00
Stacey Sheldon
e2ab662b5d
sysclk: pass in correct definition for HSE_VALUE
...
The code in RCC_GetClocksFreq() uses HSE_VALUE to determine
the tick rate of the SYSCLK. This in turn is used by the
code in PIOS_DELAY_* to compute delays.
ST Library defaults this to 25MHz for the F4. Our board
actually has an 8MHz oscillator so delays were way off.
Mostly affects the bootloaders since most FW code uses RTOS
delays rather than busy-waiting using PIOS_DELAY_*.
2012-03-07 19:52:54 -05:00
Stacey Sheldon
fdf54ab86c
hid: fix response to HID descriptor
...
HID driver was incorrectly giving back the HID interface
descriptor when asked for the HID descriptor. This should
let OP boards interact better with generic HID layer drivers
and also gives us nicer output in lsusb once the HID descriptor
is read.
2012-03-07 19:52:54 -05:00
Brian Webb
444150269a
Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into PipXtreme
2012-03-05 18:22:08 -07:00
Sambas
91a9e45888
Updates, first UAVtalk client test
2012-03-05 19:53:52 +02:00
James Cotton
61d59828dc
Disable the new features if not revolution and set an error flag. Fixes
...
compilation errors.
2012-03-05 00:24:11 -06:00
Alessio Morale
637af911ef
Merge remote-tracking branch 'origin/james/revolution' into amorale/revolution
2012-03-04 12:31:13 +01:00
James Cotton
7961aba83c
Clean up a few more compiler warnings
...
Conflicts:
flight/PiOS/Common/pios_ms5611.c
2012-03-03 13:32:56 -06:00
James Cotton
91a226fc12
Sometimes the mag stops updating so kickstart it
2012-03-03 13:31:46 -06:00
James Cotton
bc8b72623e
Get rid of some unused variables
2012-03-03 11:54:09 -06:00
James Cotton
b3f620af7c
Merge remote-tracking branch 'revo/stac/openocd' into revolution
2012-03-03 11:52:09 -06:00
James Cotton
f20e5da9ed
Merge branch 'next' into revolution
...
Conflicts:
ground/openpilotgcs/src/plugins/config/config.pro
ground/openpilotgcs/src/plugins/config/configrevowidget.h
ground/openpilotgcs/src/plugins/scope/scopegadgetwidget.cpp
2012-03-03 11:41:41 -06:00
Stacey Sheldon
0684a42fac
build: use board-specific JTAG interface for openocd
...
Removes hard-coding of JTAG interface config in the
<board>_program make macros.
This allows the use of STLINKv2 for F4 boards while
continuing to use the FOSS JTAG revB on F1 boards.
2012-03-03 08:43:01 -05:00
Stacey Sheldon
d78c5d2a9a
openocd: reenable flash commands on f4 boards
2012-03-03 08:43:01 -05:00
Stacey Sheldon
c0c38609ec
openocd: move to newer openocd (dec6b913)
...
This update fixes flash writing on F4 chips
2012-03-03 08:43:01 -05:00
Alessio Morale
226cd09a13
Merge branch 'james/revolution' into amorale/revolution
2012-03-02 21:24:56 +01:00
James Cotton
e3df261213
Merge branch 'stac/revo-usb' into revolution
...
Conflicts:
flight/Revolution/System/pios_board.c
2012-03-02 13:00:13 -06:00
James Cotton
72a93dbae5
Fix from PT for OSX/Windows F4 USB HID to send the full report size even if not
...
all used.
2012-03-02 11:11:36 -06:00
Alessio Morale
e8880d7271
Removed duplicate InitClock for tim_4
2012-03-02 00:55:50 +01:00
Alessio Morale
691e8760bc
Updated OpenPilotOSX.xcodeproj to include Flight as a reference to the actual folder
2012-02-29 23:13:02 +01:00
Brian Webb
a0bdc58e5b
Added framework for rfm22b com device.
2012-02-28 21:30:06 -07:00
Sambas
8e31f84058
V1 beta
2012-02-28 20:32:44 +02:00
Brian Webb
992aa3bec6
Updated PipX branch to use CDC device with a VCP (not working yet).
2012-02-25 09:07:37 -07:00
Brian Webb
e2cb750dc6
First cut on RadioComBridge module, which is intended to pass data from either a USART or a USB port to the PipX radio link.
2012-02-25 07:37:05 -07:00
Brian Webb
01f314724b
Updates to USB configuration on the PipXtreme.
2012-02-24 15:54:26 -07:00
Brian Webb
483a96c31d
Some more cleanup to PipXtreme codebase.
2012-02-24 07:49:41 -07:00
Brian Webb
b69b285f58
Fixed PipXtreme bootloader.
2012-02-23 20:40:24 -07:00
Brian Webb
182f285e60
Added missing startup file for PipXtreme.
2012-02-23 20:06:34 -07:00
Brian Webb
cf34baec69
Some cleanup on PipXtreme codebase.
2012-02-23 19:58:23 -07:00
Oleg Semyonov
2271b95816
Merge remote branch 'origin/next' into os/features/stick-deadband-next
...
Conflicts:
ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
ground/openpilotgcs/src/plugins/config/configtaskwidget.cpp
ground/openpilotgcs/src/plugins/config/configtaskwidget.h
2012-02-23 08:32:27 +02:00
Oleg Semyonov
e62cc8914c
Merge remote branch 'origin/next' into os/features/pid-tuning-from-transmitter-next
...
Conflicts:
flight/CopterControl/Makefile
ground/openpilotgcs/src/plugins/config/config.pro
ground/openpilotgcs/src/plugins/config/configtaskwidget.cpp
ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
shared/uavobjectdefinition/hwsettings.xml
2012-02-22 23:03:17 +02:00
Brian Webb
f0dfba6fc0
Re-baslined the PipX codebase using the experimental Transmitter codebase.
2012-02-21 20:29:06 -07:00
Oleg Semyonov
403e9cd220
TxPID module: add ILimit values to the list of settings
2012-02-21 19:57:10 +02:00
James Cotton
7b548eaa54
Fix bug in the integral for altitude hold where it was accumulating wrong variable.
2012-02-21 00:40:55 -06:00
Brian Webb
43f6458f86
Reduced the sizeof the UAVObject metadata by:
...
1) Combining all binary or mode values into a single byte
2) Adding accessor functions to read/write the flag bits
3) Reduced the size of the time values from 32 bits to 16 bits
2012-02-20 18:45:18 -07:00
James Cotton
900780e10c
Add bias estimation to the altitude fusion algorithm. Necessary to increase
...
the gains on acceleration and velocity feedback terms (they are a problem when
biased).
2012-02-19 11:38:09 -06:00
James Cotton
47fac7e31c
Move the throttle setting code for alt hold into the fast accel loop.
2012-02-18 18:16:15 -06:00
Sambas
ebd2ae7e59
Bootloader, copy from revo, not functional
2012-02-18 22:35:13 +02:00
Sambas
4dd91d08c2
Settings, home arrow tests & other updates
2012-02-18 12:38:50 +02:00
Oleg Semyonov
c721d001c0
Subtract deadband offset from then input to still have fine control
2012-02-18 10:21:51 +02:00
James Cotton
7d4582e5f0
Update the altitude KF to use the updated measurements appropriately and check
...
in the relevant matlab code to check it and genererate it. Produces quite
smooth traces.
2012-02-16 05:33:47 -06:00
Sambas
8f45114b1f
Fixes & cleanup
2012-02-15 21:14:02 +02:00
Sambas
0bc08a48d8
cleanup 'n' updates
2012-02-14 21:42:09 +02:00
James Cotton
c957172f8f
In the case of swapping in userspace due to the buffer being blocked during
...
ISR, make sure the latency is less than 50 us to avoid framesync errors. Still
seeing a few nonsense packets on Overo side but fairly few. Probably need to
add CRC to whole packet now and call it done.
2012-02-14 11:06:16 -06:00
James Cotton
1930d092eb
In the case where the overo scheduler cannot swap buffers (userspace loading
...
it) then set a flag so as soon as the buffer is loaded then we schedule it.
2012-02-14 11:00:29 -06:00
James Cotton
f04c58b0f4
Make the overo transaction occur based on the rising edge of the NSS line.
...
This fixes most of the frame sync problems. However, it's a bit hacky as
there is currently hardware information inside a module.
2012-02-14 10:37:30 -06:00
James Cotton
d018d93e88
Clean up previous commit a bit and make the sampling rate a variable (and adapt
...
the sampling time accordingly).
2012-02-13 01:49:54 -06:00
James Cotton
3acbfbe96c
Convert the pressure sensor code to most of the calculations as int64 to retain
...
precision.
2012-02-13 01:22:48 -06:00
Sambas
8cc876d02a
OSD branch
2012-02-12 22:29:42 +02:00
James Cotton
4717af1afd
Swap telemetry port and gps ports back
2012-02-12 13:55:52 -06:00
James Cotton
f23f53dc4e
Add settings for the altitude kalman filter settings and init the state when
...
first measurement arrives
2012-02-12 09:07:27 -06:00
James Cotton
34ca5777dd
Kalman filter for altitude
2012-02-11 21:08:19 -06:00
James Cotton
d8f0494e57
Merge branch 'revolution' into revolution_overo
2012-02-11 20:02:20 -06:00
Alessio Morale
22b211167c
Ported pios_iap.c to F4
...
restored failed boot count check on pios_board.c for revo
2012-02-11 13:49:32 +01:00
James Cotton
3026527801
Now the desired altitude is relative to when the switch was flipped so that the
...
baro altitude module can use a smoothed altitude estimate for the starting
point.
2012-02-08 23:02:29 -06:00
James Cotton
80d602ef7b
Switch order of some commands to make sure it loads the correct hover throttle
2012-02-08 20:47:10 -06:00
James Cotton
ab41bae071
Separately smooth the error estimate from the derivative
2012-02-08 11:15:33 -06:00
James Cotton
60c951843d
Use backtracking to limit integral in altitude hold and smooth the velocity
...
error. Initialize the throttle integral better.
2012-02-08 10:39:31 -06:00
James Cotton
c6b1d6b8df
Rework the altitude hold code a bit
2012-02-08 09:42:10 -06:00
James Cotton
49a03a868b
Merge branch 'altitudehold' into revolution_overo
...
Conflicts:
flight/OpenPilot/UAVObjects.inc
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
flight/Revolution/Makefile
flight/Revolution/ins.c
2012-02-07 23:00:29 -06:00
James Cotton
6ec0f06c80
Back to 1024 byte packets
2012-02-07 13:02:11 -06:00
James Cotton
2c60447200
Switch back to 512 byte packets and fix bug when writing the header size that
...
was smashing the crc
2012-02-07 11:32:04 -06:00
James Cotton
221a0c5e53
Add the number of dropped updates to the overosync stats
2012-02-07 09:13:26 -06:00
James Cotton
a89d425b23
Reset the received rate for overo sync object
2012-02-07 09:01:58 -06:00
James Cotton
02bec750bd
In the attitude loop need to check all the queues even if unused or the event
...
system will have warnings
2012-02-07 08:46:34 -06:00
Stacey Sheldon
e2939dae2a
revo usb: Add support for USB to Revo
2012-02-07 02:25:31 -05:00
Stacey Sheldon
8b73ae7d16
remove trailing whitespace
2012-02-07 02:25:31 -05:00
Stacey Sheldon
b8c16fe7a5
hw defs: move misc defines and non-const data out of board_hw_defs.c
...
The board_hw_defs.c file should only contain static
const declarations that only describe the hardware.
All other non-const variables should be put into one
of the pios_board.c files.
2012-02-07 02:25:31 -05:00
Stacey Sheldon
3c1b1001f9
f4 usb: Allow USB descriptors to be const through ST APIs
2012-02-07 02:25:31 -05:00
Stacey Sheldon
56102013aa
f4 usb: correct function prototypes in bsp template
...
This file is not actually used but it should still be accurate.
2012-02-07 02:25:31 -05:00
Stacey Sheldon
57f9f6e3d1
f4 usb: configure and build ST USB OTG and USB DEV libraries
2012-02-07 02:25:31 -05:00
Stacey Sheldon
1e79ed6d54
f4 usb: fix invalid reference to stm32f4_discovery.h
2012-02-07 02:25:31 -05:00
Stacey Sheldon
04b81f13a7
f4 usb: fix invalid references to stm32f2xx.h
2012-02-07 02:25:31 -05:00
Stacey Sheldon
266b95561f
f4 usb: rename device template to real config file
2012-02-07 02:25:30 -05:00
Stacey Sheldon
a4ae844f2b
f4 usb: rename otg template to real config file
2012-02-07 02:25:30 -05:00
Stacey Sheldon
58bbe0870d
f4 usb: allow device->host data to be const
...
This allows the application code to pass const
descriptors to the Tx APIs in the STM32 USB
library.
2012-02-07 02:25:30 -05:00
Stacey Sheldon
4b911bb3be
f4 usb: remove unused device class examples
2012-02-07 02:25:30 -05:00
Stacey Sheldon
efbe8bbfdd
f4 usb: convert all line endings to LF-only
...
Line ending changes only. No functional changes.
2012-02-07 02:25:30 -05:00
Stacey Sheldon
6a43d1c7ed
f4 usb: Import pristine STM32F4 USB Library v1.1.0
...
Taken from version STM32F4-Discovery_FW_V1.1.0 of the
library from ST.
2012-02-07 02:25:30 -05:00
Stacey Sheldon
240425ff22
gdb: add config file for revo bl
2012-02-07 02:25:30 -05:00
Stacey Sheldon
1532338847
ef: fix dependencies in entire flash image build
...
ef_$(BOARD_NAME).bin files were not properly depending
on their fw and bl files resulting in the ef files not
being regenerated.
2012-02-07 02:25:30 -05:00
James Cotton
ae01936808
Add the portTickTime into the OveroSync stream
2012-02-06 10:00:02 -06:00
James Cotton
dbcb499d7f
Add object to monitor the overo link status. Current just records the bytes/s
...
being sent and the connected status (based on sending more than 500 bytes per
second)
2012-02-06 09:37:31 -06:00
James Cotton
5b2376dbee
Remove the semaphore for buffer swapping and make this occur during the receive
...
ISR. This leads to a possible condition where a copy is taking place in
userspace and then a buffer swap interrupts it. However, the copy should
always finish before the SPI DMA slave catches up to that place in memory at 10
MHz.
This fixes a common condition where the userspace task (low priority) was not
swapping buffers in time from user space and logs were corrupted.
2012-02-06 08:21:24 -06:00
James Cotton
179e66b754
Refactor how new packets are scheduled to avoid trying to start a transaction
...
from an ISR. This was causing lock ups. It's a bit higher latency probably
(trivially slow) but if we aren't keeping up with the Overo transactions then
using a proper DMA double buffer will be required.
2012-02-04 20:11:31 -06:00
James Cotton
665801662d
In cc3d update sensors add accelbias before scaling to allow more precision in
...
levelinIn cc3d update sensors add accelbias before scaling to allow more
precision in levelingg
2012-02-04 12:12:41 -06:00
James Cotton
4e190f99e2
Improved the revo overosync code to put multiple uavobjects into a packet
2012-02-04 12:06:03 -06:00
Stacey Sheldon
60a2af2e58
ef+dfu: Move EF image generation into separate makefile
...
A separate makefile for EF (Entire Flash) targets allows
the removal of board-specific hard-coded addresses. These
values can now be included from the board-info.mk files
for each board.
2012-02-04 12:03:42 -05:00
Brian Webb
3f66afd74a
Removed emacs mode header from pios_gcsrcvr.c
2012-02-04 08:42:16 -07:00
Stacey Sheldon
4fafbb13ed
makefile: Add EF (Entire Flash) targets for all boards
...
These new build targets will construct a flash image that
includes both a bootloader as well as a firmware image all
in one. Examples:
make ef_coptercontrol
make ef_revolution
This also adds support for a new target for writing this EF
image to boards that support a DFU interface (only F4-based
boards). This can be done by running:
make dfuutil_install
# Boot board with SBL asserted to activate STM32 DFU ROM
# Attach USB cable
make ef_revolution_dfu
Bootloader images are also now padded out to occupy the full
BL flash region.
2012-02-03 00:59:36 -05:00
Stacey Sheldon
ce544cf4ab
gdb: remove cortex_m3 remnants from revo gdb init file
2012-02-03 00:59:31 -05:00
Stacey Sheldon
99f5f20cb2
openocd: add support for stlink on stm32f4 targets
2012-02-03 00:51:31 -05:00
Brian Webb
a314604f9b
Added failsafe to GCS Receiver device.
2012-02-02 19:59:42 -07:00
James Cotton
18a64e261f
Going a bit overkill with this - deinit who SPI block between transactions.
2012-02-02 12:32:57 -06:00
James Cotton
c26154f303
Switch back to 256 byte packets and 0xFF pad the end
2012-02-02 11:40:49 -06:00
James Cotton
03cfb1453a
DeInit SPI DMA between transactions. Somehow if this doesn't happen the next
...
transaction doesn't start at the beginning again. Something is still not quite
right because first few bytes aren't getting across. Need logic analyzer.
2012-02-02 11:37:35 -06:00
James Cotton
77a6abb341
For PIOS_SPI F4 do not enable the TX irq. Also do not wait for the
...
transmission to finish either.
2012-02-02 11:24:14 -06:00
James Cotton
8b1137c6a0
Align the tx and rx SPI buffers from Overosync
2012-02-02 11:23:40 -06:00
James Cotton
0a71a48c57
Sending all FF finally again
2012-02-02 10:36:09 -06:00
James Cotton
80b839d145
The SPI3 TX DMA channel was wrong
2012-02-02 10:13:09 -06:00
James Cotton
29237f97ae
For SPI slave devices we need to handle the interrupt differently since
...
transactions should already be completed. Also reset the callback so in the
case of noise on the IRQ line it will not keep firing interrupts.
I suspect we should probably disable interrupts in this handler to prevent
refiring.
2012-02-02 10:13:09 -06:00
James Cotton
88b9f20cda
Fix nasty bug in the DMA stream configuration
2012-02-02 10:13:09 -06:00
James Cotton
95abb56d5e
Added module to send updates out the SPI port
2012-02-02 09:19:25 -06:00
James Cotton
e434ab94a9
Enable SPI port for revolution to overo communications
2012-02-02 01:42:38 -06:00
Alessio Morale
5449408763
Merge branch 'amorale/timerprescaler' into inoutch8
2012-02-01 00:23:53 +01:00
Alessio Morale
cb2dadd0ea
fix Motor 8 out not working
2012-02-01 00:20:50 +01:00
Alessio Morale
322ced44a1
Solve PWM Input 8 not working
2012-02-01 00:16:48 +01:00
Alessio Morale
820e8ac062
Handle different prescaler values for timers on APB1 and APB2.
...
The PIOS_MASTER_CLOCK has been removed in favor of
PIOS_SYSCLK (the master clock value,168000000 for revolution)
PIOS_PERIPHERAL_APB1_CLOCK and
PIOS_PERIPHERAL_APB2_CLOCK
Look at STM32F4xx_Revolution.h for the list of timer/peripheral and APB them belongs.
2012-01-28 20:04:55 +01:00
James Cotton
a778c45d6f
For L3GD20 sensor task run at the sensor speed
2012-01-28 10:11:30 -06:00
James Cotton
13447ac907
Fix the MPU6000 implementation
2012-01-28 00:21:58 -06:00
James Cotton
e07fca0465
Commit the revolution board_hw_defs.c file
2012-01-26 23:32:36 -06:00
James Cotton
b4435d0b35
For L3GD20 sensor task on revo update gyro once per physical sample
2012-01-26 23:29:12 -06:00
James Cotton
f311700804
Flashfs: Whenever failing out of a transaction unlock the semaphore
2012-01-26 14:14:50 -06:00
James Cotton
85bfa7dcf9
Flashfs: Missed calculation of the header crc for monolitihic write
2012-01-26 13:32:53 -06:00
James Cotton
84dd1dbc40
A bit more lenient settings for CC sensor timings
2012-01-26 13:00:06 -06:00
James Cotton
ad3d470f40
Flashfs and Flash: Add new function to write a series of blocks in one flash
...
write transaction to improve efficieny.
2012-01-26 12:39:35 -06:00
James Cotton
80705cdba1
Flash: Because on CC/CC3D the flash is initialized before FreeRTOS is started
...
we cannot use the transaction lock or the delay while saving.
2012-01-26 11:50:05 -06:00
James Cotton
4fc907ad0d
Add a transaction semaphore to flash and flashfs to make sure multiple saves
...
or loads can't be attempted between threads
2012-01-26 11:36:07 -06:00
James Cotton
8b15fdd88b
Flash: Add a vTaskDelay when waiting for flash operations to complete to
...
prevent blocking the bus from accels
2012-01-26 11:26:19 -06:00
James Cotton
7f38d113eb
Delete more old target stuff
2012-01-26 11:21:34 -06:00
James Cotton
e69a0937bc
Flash: Wrote status instead of read it
2012-01-26 11:17:00 -06:00
James Cotton
69dc5abf0c
Flash: Get rid of some defines and directly reference the cfg structure
2012-01-26 10:56:26 -06:00
James Cotton
6d572986e5
Flashfs: Clean up some of the JEDEC commands and also format whole chip when FS
...
is wrong.
2012-01-26 10:04:49 -06:00
James Cotton
fe7b9a909a
LED: Update the LEDs on revo
2012-01-26 09:11:27 -06:00
James Cotton
7eab883d5c
Fix some small revolution typos
2012-01-25 22:50:19 -06:00
James Cotton
20670d049b
Update pios_led for F4 targets to match the new F1 implementation. Also fix
...
type for F1 in GPIO labels.
2012-01-25 22:50:19 -06:00
James Cotton
727f0befc5
Make the gyro go a bit more regularly to stabilization but needs updating
...
regular CC
2012-01-25 22:50:19 -06:00
James Cotton
e4df3202e0
L3GD20: Update sensor task for revo to use the new queue
2012-01-25 22:50:19 -06:00
James Cotton
205aabe895
L3GD20: Make this sensor push data onto a FreeRTOS queue so that the sensor
...
reading task can block according. Also now the gyro data is sent to
stabilization multiple times per update of the attitude loop.
2012-01-25 01:20:07 -06:00
James Cotton
0da20bb846
Flash: Because most of the commands are a JEDEC standard rename this file
...
pios_flash_jedec and abstract out the methods that can vary between chips.
2012-01-25 00:23:24 -06:00
James Cotton
a02cad6f52
Flashfs: Separate out the sector sizes and magic values into a runtime
...
configurable structure. This makes it easier to deal with different chip
layouts.
2012-01-24 23:56:59 -06:00
James Cotton
1971ba30dc
No longer hardcode baudrate
2012-01-24 23:42:43 -06:00
James Cotton
5ad37e691c
USB: Update the USB configuration structure to include the GPIO that is used
...
for sensing and then load different config for CC and CC3D. Updated the
bootloader as well. Also changed the PIOS_USB_CheckAvailability function to
only return the sense signal and not the transfer_possible flag as this is not
set in time for the bootloader on CC3D for some reason.
2012-01-24 22:15:43 -06:00
James Cotton
bc3703ce33
Need more irq stack for CC3D
2012-01-24 19:48:52 -06:00
James Cotton
104c091590
Correct the range constants for the L3GD20 driver
2012-01-24 19:48:14 -06:00
James Cotton
a25d52785b
Change the bus speed for the L3GD20 to 10MHz and some small cleanups
2012-01-24 19:17:49 -06:00
James Cotton
3880b0ddc3
CC3D and CC use different CS lines for the flash chip. Add a second cfg
...
structure for each SPI interface.
2012-01-24 16:21:48 -06:00
James Cotton
587ec5a615
Revert earlier patch on filesystem for Revolution. Need to make erase command
...
and positioning of filesystem dependent on board type.
Reverted 99123372d0
2012-01-24 16:14:41 -06:00
James Cotton
b6c056fef2
Use the updated L3GD20 format and make attitude.c use the gyro data from the
...
fifo
2012-01-24 15:52:17 -06:00
James Cotton
c9263cb8c0
L3GD20: Dynamically allocate buffer structure when used
2012-01-24 15:51:38 -06:00
James Cotton
5efbfb02fa
Make the BMA180 sensor system acquire from the queue. Correct the orientation
...
and speed it up to 10 MHz communications.
2012-01-24 15:09:20 -06:00
James Cotton
8c208412c9
Give the BMA180 a dynamically allocated device structure and also make it
...
properly bind to a SPI and slave number. Temporarily reducing spi bus to
slowest possible speed.
2012-01-24 14:38:00 -06:00
James Cotton
aec7dd0b00
Initialize the LEDs early in the bootup process
2012-01-24 14:37:04 -06:00
James Cotton
8e79bc2ee2
Temporarily refactor attitude to directly read the sensors instead of pull from
...
their queues until the interrupts are working properly
2012-01-24 11:54:23 -06:00
James Cotton
e9552065a9
Reenable the CC3D sensors
2012-01-24 11:03:33 -06:00
James Cotton
466992a907
Migrate some of the CC board settings to the new board_hw_defs
2012-01-24 10:58:40 -06:00
James Cotton
c242ab8b86
Merge branch 'next' into revolution3
...
Conflicts:
flight/AHRS/ahrs.c
flight/AHRS/pios_board.c
flight/Bootloaders/Revolution/Makefile
flight/CopterControl/System/pios_board.c
flight/INS/pios_board.c
flight/OpenPilot/Makefile
flight/OpenPilot/System/openpilot.c
flight/OpenPilot/System/pios_board.c
flight/PiOS/Boards/STM32103CB_CC_Rev1.h
flight/PiOS/Boards/STM32F4xx_Revolution.h
flight/Revolution/Makefile
flight/Revolution/System/inc/pios_config.h
flight/Revolution/test.c
2012-01-24 10:46:35 -06:00
James Cotton
f029567e66
Remove meaningless settings from CC config file
2012-01-24 10:39:35 -06:00
James Cotton
66293a9788
Merge remote-tracking branch 'origin/stac/led-boottime-config' into next
2012-01-24 10:38:33 -06:00
James Cotton
7c22215e0b
Patch from Sambas to fix F4 on windows
2012-01-24 10:33:07 -06:00
James Cotton
486cdb5dbb
Got CC running again although with altitude and bmp085 disabled as well as the
...
CC3D drivers.
2012-01-24 10:32:42 -06:00
James Cotton
be50c00b7c
Make sure BMA180/L3GD20 can be disabled
2012-01-24 09:23:13 -06:00
James Cotton
4d3af7afbf
Add ID test to ADXL345
2012-01-24 09:23:12 -06:00
James Cotton
946c6a7f1d
Fix small bugs in pios_board.c relating to adxl345 spi configuration
2012-01-24 09:23:12 -06:00
James Cotton
728c05f973
Crude implementation of sensor reading for CC3D
2012-01-24 09:23:12 -06:00
James Cotton
0cb6b13d33
Add BMA180 to CopterControl 3D. Had to reduce the stack space by 256 bytes.
...
Some can be reclaimed by making the BMA180 allocate its fifo dynamically but
I'll do that later when it uses FreeRTOS queues for the FIFO.
2012-01-24 09:23:12 -06:00
James Cotton
11471ff68b
Update drivers for CC to the new EXTI system and SPI calls
2012-01-24 09:23:12 -06:00
James Cotton
a20d654744
Update the attitude algorithm for CC to use the Gyros and Accels UAVObjects
...
instead of AttitudeRaw
2012-01-24 09:23:12 -06:00
James Cotton
4cf82815ce
Get the right pios_iap.c from next
2012-01-24 09:23:07 -06:00
James Cotton
aaf1c5dfdd
Update the F1 SPI library to support multiple NSS lines
2012-01-23 23:27:02 -06:00
James Cotton
5fd458426a
Merge branch 'cc3d' into revolution3
...
Conflicts:
flight/PiOS/inc/pios_l3gd20.h
flight/PiOS/pios.h
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2012-01-23 22:09:45 -06:00
Stacey Sheldon
5907022b6d
Merge remote-tracking branch 'origin/stac/ld-2.22-fix' into next
2012-01-23 23:05:52 -05:00
James Cotton
bcb49cbd33
Merge branch 'next' into cc3d
...
Conflicts:
flight/PiOS/STM32F10x/pios_exti.c
2012-01-23 17:09:47 -06:00
James Cotton
2524662475
Copy the BMP085 back from next
2012-01-23 16:58:07 -06:00
James Cotton
b01d5c6b87
Include the drivers from the common directory
2012-01-23 16:58:07 -06:00
James Cotton
886d5456ac
Update pios_exti for F4
2012-01-23 16:55:54 -06:00
James Cotton
9a12299074
Update the driver cfg structures for the EXTI changes. Make the drivers call
...
the pios_exti_init instead of their individual implementations.
2012-01-23 16:55:52 -06:00
James Cotton
b2a292e9c4
Move all the drivers to the PiOS/Common directory to prepare for refactoring
...
the EXTI calls they make to the portable version
2012-01-23 10:11:46 -06:00
James Cotton
c84240e485
Merge branch 'next' into revolution3
...
Conflicts:
flight/PiOS/STM32F10x/pios_bmp085.c
flight/PiOS/STM32F10x/pios_exti.c
2012-01-23 06:51:30 -06:00
James Cotton
21ae37b3de
Remove BMP085 driver from F4 target
2012-01-23 06:44:25 -06:00
James Cotton
d864b481a1
Fix a few more merge conflicts
2012-01-23 04:47:35 -06:00
Stacey Sheldon
bfe6676eed
exti: rewrite exti layer to improve portability
...
The exti layer now allows drivers to register interrupt callbacks
during board initialization. All details of the driver using a
particular EXTI pin have been removed from the EXTI layer so it
can now be used on any board without board-specific modification.
This includes some nice refinements provided by Mike Smith during
initial review. His original commits have been squashed into this
one.
2012-01-22 23:23:41 -05:00
Stacey Sheldon
dc4aa07a32
board_hw_defs: factor out board-specific hw config definitions
...
Board specific HW configuration is now collected in a single .c
file for each board. This HW configuration is #include'd into
the FW, BL and BU builds for each board.
These new .c files are found in:
flight/board_hw_defs/<board_name>/board_hw_defs.c
Parts of this information were previously duplicated between
the BL and FW builds. This commit cleans up the duplication.
Using a #include on a .c file is a bit ugly but it allows us
to ensure that all of the symbols in the board_hw_defs.c file
are *ONLY* used in the PIOS_Board_Init() function for each
software build.
2012-01-22 19:41:41 -05:00
Stacey Sheldon
6bb4f0c61d
leds: use boot-time config for PiOS LED layer
...
LEDs are now configured based on a board-specific initialization
in PIOS_BOARD_Init().
LEDs are now named:
PIOS_LED_HEARTBEAT
PIOS_LED_ALARM
2012-01-22 18:22:59 -05:00
Stacey Sheldon
3cbf4499e1
ld: make sure current pointer never goes backwards
...
Fixes linking on ld version 2.22.
2012-01-21 21:18:06 -05:00
James Cotton
cc0cbf0381
Enable IAP code on revolution now
2012-01-21 13:22:39 -06:00
James Cotton
fe44a3d37a
Reference correct taskmonitor file compiled in to revolution
2012-01-21 13:22:17 -06:00
James Cotton
e505de7ba0
Remove redundant remap field from merge
2012-01-21 13:22:00 -06:00
James Cotton
838370b3a4
Fix calls to backup registers on F4
2012-01-21 13:21:37 -06:00
James Cotton
bb0bfe0ae4
Merge branch 'next' into revolution3
...
Conflicts:
flight/Bootloaders/CopterControl/Makefile
flight/Bootloaders/PipXtreme/Makefile
flight/Bootloaders/Revolution/inc/pios_config.h
flight/CopterControl/Makefile
flight/INS/inc/pios_config.h
flight/Libraries/taskmonitor.c
flight/Modules/Altitude/altitude.c
flight/Modules/Attitude/attitude.c
flight/OpenPilot/Makefile
flight/OpenPilot/Makefile.posix
flight/OpenPilot/System/inc/pios_usb_board_data.h
flight/OpenPilot/System/inc/taskmonitor.h
flight/OpenPilot/System/pios_board.c
flight/OpenPilot/System/taskmonitor.c
flight/PiOS/Boards/STM32F4xx_Revolution.h
flight/PiOS/STM32F4xx/pios_bmp085.c
flight/PiOS/STM32F4xx/pios_iap.c
flight/PiOS/pios.h
flight/Revolution/System/inc/pios_config.h
flight/Revolution/System/inc/taskmonitor.h
flight/Revolution/System/taskmonitor.c
ground/openpilotgcs/src/plugins/serialconnection/serialplugin.cpp
shared/uavobjectdefinition/systemalarms.xml
shared/uavobjectdefinition/taskinfo.xml
2012-01-21 11:27:03 -06:00
James Cotton
f8e59443b8
If the BMA180 isn't read when an IRQ fires (because the flash chip has claimed
...
the bus) then it won't fire another interrupt until read. For now this is
dealt with in the sensor loop by forcing a read when the fifo is empty.
2012-01-21 10:13:46 -06:00
James Cotton
f6db859e4f
Fix bug in flash driver where it could assert CS line after failing to claim
...
the bus. Also added a "claimed" flag to the device structure.
2012-01-21 09:57:12 -06:00
James Cotton
5dbbfec8a9
Make the BMA180 driver use the appropriate claim method from the ISR. Also
...
slow down this bus to 10 MHz.
2012-01-21 09:57:02 -06:00
James Cotton
ff0bd87f4e
PIOS SPI: Add a second claim bus method for use in ISR. This has no timeout
...
and uses an ISR safe queue claiming method. This avoids deadlocks when ISR
blocks other tasks from freeing the bus.
2012-01-21 09:07:06 -06:00
James Cotton
ec903449cd
Remove line that bypassed the BMA180 startup test
2012-01-21 08:46:32 -06:00
James Cotton
6d72678086
Add timeout in the sensor task for reading sensors to stop the watchdog firing.
...
All sensors should later be converted to use FreeRTOS queues.
2012-01-21 08:32:41 -06:00
James Cotton
476cb4d9c2
Unfortunately for now hardcoding new LED configuration. Need to generalize LED
...
out to a proper run-time configuration. This unfortunately breaks a general
firmware for now.
2012-01-20 15:45:51 -06:00
James Cotton
8935614a3f
Switch the gyro driver loaded based on the board revision flag from the
...
bootloader
2012-01-20 14:52:05 -06:00
James Cotton
a252ee134a
Fix the l3gd20 initialization in pios_board.c and also change the (ugly)
...
hardcoded exti system to use line3 on F1xx for L3GD20
2012-01-20 14:39:05 -06:00
James Cotton
c76e9f2d7a
Updates to the l3gd20 driver for stm32f1xx. Need to eventually merge these
...
drivers with F4 drivers.
2012-01-20 14:36:16 -06:00
James Cotton
4f28c8d48e
Change the init structures to be const in the std periph library for exti
2012-01-20 14:35:27 -06:00
James Cotton
a5d006d1a9
Set up the SPI interface to the l3gd20
2012-01-20 14:20:37 -06:00
James Cotton
8f535bd28c
Import of l3gd20 driver from revo branch
2012-01-20 13:42:58 -06:00
James Cotton
7f284596f2
Attempting to get flash and BMA180 to coexist
2012-01-20 13:33:21 -06:00
James Cotton
1e8811362e
On revolution attach the flash chip to the accel bus now. Also extended the
...
flash chip driver to take in the slave number during initialization so this is
no longer a hardcoded option.
2012-01-20 07:37:47 -06:00
Stacey Sheldon
64202ce092
Merge remote-tracking branch 'origin/stac/i2c_decoupling' into next
2012-01-17 22:35:36 -05:00
Stacey Sheldon
ad141c908a
Merge remote-tracking branch 'origin/stac/usb-composite-device-v2' into next
2012-01-17 22:26:38 -05:00
James Cotton
1b5e776dc5
Hardcoded scale for now since it isn't picking up from the cfg structure.
2012-01-17 19:53:20 -06:00
James Cotton
ce2d0fcbb1
L3GD20 data now running through IRQ -> FIFO
2012-01-17 19:36:32 -06:00
James Cotton
35025303cd
Getting data from gyro.
2012-01-17 19:29:38 -06:00
Stacey Sheldon
bffb184b7a
usb: add standard boilerplate to new files
2012-01-16 21:32:52 -05:00
Stacey Sheldon
ee0895aa77
usb hid: remove stale files from pipx
...
These files are no longer relevent for USB configuration.
2012-01-16 21:31:07 -05:00
Stacey Sheldon
3bda0f450d
bootfault: force fault when no telemetry available on OP too
...
If no telemetry link is configured, this will force the board
to reset before finishing init. The BootFault logic will
catch this after 3 resets and will boot with default hwsettings
on the next reset.
This won't currently ever fire on OP though since we always
configure the serial telemetry interface. This just makes sure
the pattern is present in case anyone decides to compile without
serial telemetry.
2012-01-15 23:04:31 -05:00
Stacey Sheldon
8cd4816d7b
taskmonitor: move taskmonitor into flight/Libraries
...
taskmonitor.[ch] existed as (nearly) identical copies under
CC and OP directories. Both builds now reference the common
version under Libraries.
2012-01-15 21:37:10 -05:00
Stacey Sheldon
387ea77d30
diagnostics: enable DIAG_TASKS on OP board by default
2012-01-15 18:16:50 -05:00
Stacey Sheldon
b05697c2cf
taskinfo: ensure usage of TaskInfo uavo is covered by DIAG_TASKS
...
OpenPilot platform (and thus sim too) was missed when the
DIAG_TASKS macro was broken out from the DIAGNOSTICS macro.
This allowed accesses to the TaskInfo UAVO even though it hadn't
been initialized.
2012-01-15 18:16:50 -05:00
Stacey Sheldon
0575b45378
usb: make USB usage depend on PiOS config
...
USB is not supported on sim platforms. Let PiOS
config determine when we use it.
2012-01-15 18:16:49 -05:00
Stacey Sheldon
c97b108a1f
bootfault: make IAP usage depend on PiOS config
...
The sim platforms don't support an IAP mechanism. Let
PiOS config control when we try to use it.
2012-01-15 18:16:49 -05:00
Oleg Semyonov
912bea559f
Add stick deadband option for Roll/Pitch/Yaw inputs to firmware
2012-01-15 21:13:22 +02:00
Stacey Sheldon
27ceb7ea92
modules: Allow optional modules to be used as built-in
...
Some modules are written such that they can be included
or excluded at runtime. These are added to the OPTMODULES
list in the makefile for a given board.
This change provides a mechanism to allow a build to force
a given module to be built-in (ie. always initialized)
regardless of the configuration in hwsettings.
The main use case for this is to handle a module being optional
on one platform but essential on another.
All modules added to the MODULES list in the Makefile will
automatically result in a matching #define in the form
MODULE_TheModuleName_BUILTIN
being defined in the CFLAGS for all compiled source.
Note that the capitalization of TheModuleName must match
exactly the capitalization used in the MODULES list.
2012-01-14 16:55:55 -05:00
Stacey Sheldon
53e9ef06b4
altitude: add optional altitude module
2012-01-14 15:38:56 -05:00
Stacey Sheldon
717c1311e6
altitude: allow altitude to be an optional module
2012-01-14 15:38:56 -05:00
Stacey Sheldon
bae08fcad0
bmp085: decouple i2c adapter
...
Let the bmp085 be attached to different adapters for different
boards.
2012-01-14 15:38:56 -05:00
Stacey Sheldon
4cb0c41338
bmp085: only use eoc and drdy gpios when available
...
When the bmp085 chip is on an external board, we don't
have access to the eoc and drdy gpio lines. Only use
them when available.
2012-01-14 15:38:56 -05:00
Stacey Sheldon
a0089f072a
i2c: rename main adapter to flexi adapter on CC
2012-01-14 15:38:56 -05:00
Stacey Sheldon
feacec468d
i2c: compile-time decoupling of i2c devices from adapters
...
This allows each device to be moved (at compile time) to a
different adapter. This is the first step to allowing devices
to be attached to different i2c adapters.
2012-01-14 15:38:56 -05:00
Stacey Sheldon
ec6d550225
i2c: allow i2c adapters to remap pin functions
...
Allows us to support more complex pin configurations
for i2c.
2012-01-14 15:38:55 -05:00
Stacey Sheldon
a51bf72bc7
usb: allow runtime selection of USB descriptors via hwsettings
2012-01-14 14:28:15 -05:00
Stacey Sheldon
1d14ab00e1
safeboot: add safe boot support to OP and PIPX bootloaders
...
Application support for OP and PIPX will show up in future
commits.
2012-01-14 14:28:11 -05:00
Stacey Sheldon
2d27c54d48
com_msg: Create new message based COM layer for bootloaders
...
The main purpose of this new COM implementation is that it is
much simpler, and requires less code space. This takes a bit
of the pressure off of the CC bootloader which was right at
the limit of available code space in the bootloader partition.
This is not intended to ever be used by the application.
This driver also formalizes the assumptions in the bootloader's
usage of the COM layer. All messages are assumed to arrive
in atomic chunks from the HID layer.
2012-01-14 14:23:18 -05:00
James Cotton
147cd7eede
Fix correct library.mk file
2012-01-08 09:27:32 +01:00
James Cotton
8b42fbeafc
Revert "Fix case in library.mk to stop Brian bitching :)"
...
This reverts commit d39e818ca6
.
2012-01-08 09:27:13 +01:00
James Cotton
d39e818ca6
Fix case in library.mk to stop Brian bitching :)
2012-01-08 09:10:56 +01:00
James Cotton
ebbe1bd497
Some beginning work on the l3gd20 driver
2012-01-08 09:07:07 +01:00
Stacey Sheldon
b0d1551cc2
Merge remote-tracking branch 'origin/stac/usb-composite-device-v2' into next
2012-01-07 13:35:42 -05:00
Stacey Sheldon
a86abcd140
usb cdc: fix index of first interface in IAD
...
This error resulted in the HID interface being non
functional on windows platforms.
2012-01-07 09:46:12 -05:00
James Cotton
cc47520baa
Checking ID on ST gyro works
2012-01-04 23:23:42 -06:00
James Cotton
0fbcf7723d
Code to disable all gyros. All modules now running.
2012-01-04 22:37:15 -06:00
James Cotton
5ee9c8008e
Temporarily swap serial ports while debugging
2012-01-04 22:19:13 -06:00
James Cotton
0cc18e7dcf
Add files for new L3DG20 sensor
2012-01-04 20:33:54 -06:00
James Cotton
e1c21462b0
Delete another unused file
2012-01-04 19:47:06 -06:00
James Cotton
d5eb38a065
Remove references to deprecated targets
2012-01-04 19:42:45 -06:00
James Cotton
cce351bb9a
Delete references to unused objects
2012-01-04 19:37:38 -06:00
James Cotton
0da6109871
Update the F4 copyright headers to 2012
2012-01-04 19:29:29 -06:00
Stacey Sheldon
3bc45b0036
usb cdc: use proper macro for CDC mgmt endpoint packet size
...
The hard-coded value (16) in the descriptor differed from the
macro (32) which was used to configure the low-level USB HW
block in the STM32.
2012-01-04 00:38:19 -05:00
James Cotton
d2ce7761c5
Add derivative term
2012-01-03 12:37:18 -06:00
Stacey Sheldon
025ed0f43c
Merge remote-tracking branch 'origin/stac/usb-composite-device-v2' into next
...
Conflicts:
HISTORY.txt
2012-01-03 00:02:45 -05:00
Stacey Sheldon
e22bc0c51b
copyright: remove incorrect attribution in boilerplate text
...
These files do not contain content from the ID in the header.
This name seems to have been cut/pasted all over throughout
the openpilot source tree and should be removed from any files
that should not rightfully be attributed to this person.
2012-01-02 23:33:07 -05:00
Stacey Sheldon
8d8715c8c1
copyright: add/correct GPL + copyright boilerplate
...
I missed some of the boilerplate text on some of the
new files I've added recently. Fixed.
2012-01-02 23:28:53 -05:00
Stacey Sheldon
4d2760f11d
cc bl: allow bootloader to force safe-boot into firmware
...
This can be used by the GCS firmware uploader widget to boot
the firmware with a (temporarily) defaulted hwsettings uavo
so that a user can easily recover from a bad/incompatible
hwsettings configuration without wiping all settings.
This uses the same mechanism that the BootFault auto-recovery
code already uses in the CC firmware. The auto-recovery is
triggered by setting the failed-boot counter to a maximum
value forcing recovery on the next FW init.
2012-01-02 14:27:06 -05:00
Stacey Sheldon
481a13609e
com: remove all references to PIOS_COM_ReceiveBufferUsed()
...
The PIOS_COM_ReceiveBufferUsed() function call is no longer
necessary since the same semantics can be achieved using calls
to PIOS_COM_ReceiveBuffer().
2012-01-02 14:27:06 -05:00
Stacey Sheldon
b94f4b49a4
usb: major refactoring of USB descriptors, CDC and HID
...
Summary of changes:
* USB CDC and HID drivers are completely split apart.
* This will allow different max buffer sizes for HID and CDC.
* USB descriptors have been overhauled:
* Proper structs/macros/enums declared for USB (see pios_usb_defs.h)
* Two common descriptor definitions. One for HID+CDC another for HID only.
See pios_usb_desc_{hid_cdc,hid_only}.c for details.
* Long standing bugs in OP USB descriptors became much more obvious with the
new struct definitions.
* Board specific USB initialization is now in pios_usb_board_data.h in each build target.
* Definition of USB descriptors is now entirely indpendent of STM32 libs.
Glue into STM32 libs is provided by pios_usbhook.c.
* Removed a lot of stale/irrelevant USB #defines throughout the tree.
* Improved naming consistency throughout USB code:
* PIOS_USB_HID_* now refers to the HID endpoint code.
* PIOS_USB_CDC_* now refers to the CDC endpoint code.
* PIOS_USB_* now refers to the low-level USB code.
* PIOS_USB_BOARD_* now refers to board-specific USB data
* PIOS_USBHOOK_* is glue between PIOS and STM32 USB libs.
* struct usb_* and enum usb_* and USB_* and HID_* are all types from the USB spec.
* Shrunk the buffer size on the CDC call mgmt endpoint to save some RAM.
* Made a few more USB related variables static to save some RAM.
2012-01-02 14:27:06 -05:00
Stacey Sheldon
7f03195aba
stm32 usb: allow descriptor data to be const through API
...
This allows a few more data structures to be const to save
some RAM.
2012-01-02 14:27:06 -05:00
Oleg Semyonov
77a459af5c
Merge remote branch 'origin/next' into os/TxPID-module
2012-01-02 14:49:54 +02:00
Oleg Semyonov
b01e332e03
CameraStab: rename UAVO field
2012-01-02 14:27:05 +02:00
Oleg Semyonov
65abb8f819
CameraStab: small optimization, freed 8 more heap bytes
2012-01-02 14:27:00 +02:00
Oleg Semyonov
406cff296d
CameraStab: bypass LPF calculation if ResponseTime is zero
2012-01-02 14:26:58 +02:00
Oleg Semyonov
e11904c42f
CameraStab: change ResponseTime type from float to int16
2012-01-02 14:26:56 +02:00
Oleg Semyonov
2eb5130a7c
CameraStab: new camera stabilization mode and low-pass stick input filtering
...
This patch is based on work of Crubier (LPF) and Cossacs (AxisLock mode).
I've just reworked it a bit by adding a dynamic memory allocation for
static module data.
2012-01-02 14:26:54 +02:00
James Cotton
ef05cafaca
Merge branch 'revolution' into altitudehold
...
Conflicts:
flight/Libraries/insgps13state.c
flight/OpenPilot/Makefile
ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
2012-01-01 10:50:35 -06:00
Stacey Sheldon
075eb65603
bootfault: fail initialization if no telemetry link is configured
...
This detects a locked out state and fails the init. The new
bootfault detection code will automatically drop to default
hwsettings after 3 consecutive boot failures. That will put
the board back into an unlocked state where the user can now
enable a telemetry link using the GCS and everything will be
OK.
NOTE: Any configured telemetry link will be considered enough
to boot up. If you only configure a serial telemetry
link but don't know how to hook anything up to it, this
will not save you.
As the ultimate recovery, you can always load firmware on the
board that wipes the settings entirely and start over.
2011-12-31 13:08:30 -05:00
Stacey Sheldon
6c192f67ee
gasp: delete clutter
2011-12-31 13:03:49 -05:00
Stacey Sheldon
e7053c77f0
usb config: remove unused macro for number of endpoints
...
This is no longer referenced and is confusing.
2011-12-31 13:02:43 -05:00
Stacey Sheldon
5c0921e92c
fault: add optional fault insertion module
...
This module and its associated settings uavo can be used
to test various fault conditions during initialization.
To enable the module, add the TEST_FAULTS=YES to your make
command line:
make fw_coptercontrol TEST_FAULTS=YES
Once this module is part of your firmware load, you can
enable it in the hwsettings uavo and then select the
type of fault to insert by editing the faultsettings uavo.
On the next reset, the configured fault will be inserted
into the init sequence to allow you to test the boot fault
recovery code.
With a fault inserted, you should see 3 failed boot attempts
followed by a successful (recovery) boot. You will see the
BootFault alarm set to Critical, and the RAM version of your
hwsettings will be reset to defaults. Since the defaults have
all optional modules disabled, the fault module will be out of
the way during the recovery boot.
You can then "Load" the flash version of the hwsettings uavo
in the object browser, disable the Fault module and then "Save"
the hwsettings module back to the board. The next reset will
boot normally without the fault inserted.
2011-12-30 23:05:39 -05:00
Stacey Sheldon
f4f0dab764
fixup make combridge an optional module
2011-12-30 23:05:39 -05:00
Stacey Sheldon
f886af186d
bootfault: add support for recovery from init failures
...
After 3 failed warm start attempts, the init sequence
will force the RAM version of the HWSettings object
to its defaults. This should allow a user to regain
connectivity to a board that is continually faulting
during init.
This is accomplished by:
- Incrementing a boot counter that is stored in the
STM32 BKP registers. These registers survive a
warm start but are cleared on a cold start (ie. powerup).
- On multiple failures, force hwsettings to defaults
and raise the (new) BootFault alarm to prevent arming.
- Resetting the boot counter whenever the system manages
to successfully run the System Module task.
NOTE: This does not actually change the hwsettings object in
flash. That's up to the user.
This is intended to catch ONLY faults during early initialization.
It should not be used to recover from faults after the application
is up and running.
2011-12-30 23:05:38 -05:00
Stacey Sheldon
b91f40eb94
iap: extend API to support read/write of boot counter
...
Also clean up unused/obsolete definitions.
2011-12-30 23:05:38 -05:00
Stacey Sheldon
1543a6dbd3
hwsettings: allow disabling of USB telemetry entirely
...
The GCS hwsettings config widget now disallows any
configuration that disables both HID and VCP telemetry
over the USB port.
The firmware will allow it if the UAVObj is set manually.
This allows a mechanism to reduce RAM usage by another
500 more bytes if USB telemetry can be sacrificed in
certain configurations.
2011-12-30 23:05:38 -05:00
Stacey Sheldon
45615b5812
com: reduce buffer sizes on com interfaces on CC
...
Now that the COM layer fragments to the underlying
buffer sizes, the COM layer buffers can shrink below
single message sizes.
2011-12-30 23:05:38 -05:00
Stacey Sheldon
2cf1fe93c6
com: don't block forever waiting for a transmitter
...
Not all transmitters will continue to run when disconnected.
USB is one example of this. When the USB cable was disconnected,
any transmitter blocked here would wait forever.
This was particularly noticeable when the telemetry Tx task
blocked forever on USB disconnect. This also resulted in
the telemetry Rx task blocking forever waiting on the UAVTalk
connection lock.
We now block for a max of 5s waiting for space in the transmit
buffer.
2011-12-30 23:05:37 -05:00
Stacey Sheldon
7c03875013
diag-tasks: make taskinfo diagnostics a separate enable
...
This allows task stack analysis without turning on all
of the other diagnostics.
2011-12-30 23:05:37 -05:00
Stacey Sheldon
56c4ff8f40
com-bridge: add support for bridging to flexiport
2011-12-30 23:05:37 -05:00
Stacey Sheldon
60969b57d8
usb-hid: split apart hwsettings for HID and VCP ports
...
This allows the HID and VCP functions to be configured
separately so that additional functions can be more easily
bound to the VCP port.
This change also provides a safety net that forces either
the HID or VCP to be configured for USB Telemetry. This
safety net may vanish in the future once the GCS can check
it. Disabling USB Telemetry entirely would save more than
400 bytes of RAM.
2011-12-30 23:05:37 -05:00
Stacey Sheldon
ab135aa00b
com-bridge: Make com-bridge an optional (and configurable) module
2011-12-30 23:05:36 -05:00
Stacey Sheldon
5b3227d1ff
com: reduce buffer sizes for com layer
...
This saves a few hundred bytes of RAM in a typical
configuration.
2011-12-30 23:05:36 -05:00
Stacey Sheldon
785a7ccd88
uavtalk: convert tx to use blocking send routines
...
The uavtalk layer was previously implementing a poor
version of packet fragmentation based on a hard-coded
max packet size. Since this was hard-coded, there was
no guarantee that it would match the underlying devices.
Now that the COM layer sending routines support fragmentation,
remove fragmentation and use the COM layer directly.
This will support future buffer size reductions in the COM
layer.
2011-12-30 23:05:36 -05:00
Stacey Sheldon
16619584e4
usb cdc: return valid data in response to SetLineCoding
2011-12-30 23:05:36 -05:00
Stacey Sheldon
a68f5a4fc9
com-bridge: detect lost characters on transmit
2011-12-30 23:05:36 -05:00
Stacey Sheldon
80e0be3cec
com: fragment transmitted buffers to match underlying device
...
PIOS_COM_SendBufferNonBlocking() will now fragment its buffer
to match the max size of the underlying device.
This allows the buffer size of the underlying device to shrink
below the maximum message size, thus allowing us to use smaller
buffers on memory-constrained platforms.
2011-12-30 23:05:36 -05:00
Stacey Sheldon
407bec0c95
usb cdc: track oversized rx buffers
2011-12-30 23:05:35 -05:00
Stacey Sheldon
b858cf387e
com: track dropped bytes on rx for usart and usb com
2011-12-30 23:05:35 -05:00
Stacey Sheldon
2040645171
com: Use all bytes in Tx buffer
...
Code would previously fail Tx if we happen to send data
that happened to be exactly the size of the available space
in the tx buffer.
2011-12-30 23:05:35 -05:00
Stacey Sheldon
34af9ac92d
usb_com: NAK rather than STALL on buffer full
...
STALL should only be used to indicate an error has occurred.
NAK is the correct mechanism to provide backpressure.
2011-12-30 23:05:35 -05:00
Stacey Sheldon
e2bb7140fe
usb cdc: allow use of entire rx buffer
...
Previously, the code only allowed n-1 bytes of the
available space to be used.
2011-12-30 23:05:35 -05:00
Stacey Sheldon
86aead52ce
usb cdc: only pass valid bytes from USB rx up to com layer
...
Previously, up to 63 random bytes would be passed to the COM
layer and would be delivered to the application as though
the far end had sent them.
2011-12-30 23:05:35 -05:00
Stacey Sheldon
f54c0552ce
com: make sure we know when a higher prio task is woken
2011-12-30 23:05:34 -05:00
Stacey Sheldon
202b1bd428
com: Always kick rx_start if we got zero bytes
...
This will ensure that we kick rx_start at least once every
time that a user tries to receive bytes from the underlying
device.
2011-12-30 23:05:34 -05:00
Stacey Sheldon
64f498e48a
com-bridge: add usart to usb vcp bridge
2011-12-30 23:05:34 -05:00
Stacey Sheldon
504cf3417f
init: collapse usart definitions for generic usage
...
Telemetry and GPS usarts are generic users of the uart
devices. This collapses the duplicated usart configuration
structs into a single generic one.
2011-12-30 23:05:34 -05:00
Stacey Sheldon
eebdda6276
usb cdc: make HID/CDC configurable in hwsettings
2011-12-30 23:05:34 -05:00
Stacey Sheldon
e6ead85857
usb cdc: fix device descriptor to work on Mac
...
Apple is very particular about requiring the bDeviceClass
to be set to 2 (Commmunication Device) even for composite
devices which seems wrong.
Device is enumerated without error on Mac now. Not sure if it
works though.
2011-12-30 23:05:34 -05:00
Stacey Sheldon
617a30c07c
usb cdc: attach telemetry to CDC rather than HID
2011-12-30 23:05:34 -05:00
Stacey Sheldon
59cb489e01
usb: clean up pios hooks into stm32 usb_core
...
Reduced scope of many variables since they were being
exposed unnecessarily.
Renamed pios_usb_hid_prop code to pios_usbhook to reflect
the fact that it implements all of the callout functions
that are hooked into the stm32 usb library.
2011-12-30 23:05:33 -05:00
Stacey Sheldon
c0259dc616
usb cdc: USB composite device with HID + VCP
2011-12-30 23:05:33 -05:00
James Cotton
25dfb5463e
Add option to switch to using the MPU6000 accel instead of BMA180. Disabled by
...
default.
2011-12-29 02:08:13 -06:00
James Cotton
c080080810
Add ability to change the SPI bus runs at
2011-12-29 00:09:53 -06:00
James Cotton
bf98630851
Add streaming the sensor data out of the serial port
2011-12-26 17:52:45 -06:00
James Cotton
9bf06bbd3e
Force the loading of the sensor gains and biases at the beginning
2011-12-24 16:14:28 -06:00
James Cotton
1092ac3184
Use the scale and bias terms for hte mag and accel
2011-12-24 15:58:12 -06:00
James Cotton
05da41a79b
Get FirmwareIAP object working on revo
2011-12-24 13:15:56 -06:00
James Cotton
569b201b58
Move the bl_helper out of the common directory as it isn't
2011-12-24 13:10:23 -06:00
James Cotton
5d4da2213f
Accidentally used floating point when parsing NEMA. Lost resolution on
...
position.
2011-12-24 10:37:30 -06:00
Oleg Semyonov
7fbbb0e6af
Merge remote branch 'origin/next' into os/TxPID-module
2011-12-24 15:44:16 +02:00
Oleg Semyonov
495a8f2836
TxPID: initialize the AccessoryDesired object before use its handle
...
Also save few bytes of static RAM and add PIOS_Assert(0) for unhandled cases.
2011-12-24 15:37:14 +02:00
James Cotton
0b00e748a9
OP-565: Added the ability to do a trim flight to compute the accels for level flight
2011-12-21 15:25:00 -06:00
James Cotton
dd89d232ba
Add a magnetometer bias term although currently hardcoded to my board
2011-12-15 00:57:19 -06:00
James Cotton
0432dd450e
Enable the mag to be used in the complimentary filter to stabilize the yaw
...
direction
2011-12-15 00:56:50 -06:00
James Cotton
2240ad924a
Fix the orientation of the magnetometer
2011-12-15 00:46:43 -06:00
James Cotton
43ed6cd89c
Need to initialize the HomeLocation object
2011-12-14 14:08:03 -06:00
James Cotton
9148bb2c65
Make sure the sensors module grabs the sesor biases initially.
2011-12-14 10:38:43 -06:00
James Cotton
6dbad243db
Convert the CoordinateConversion functions to all be float until I determine
...
how to use doubles safely on F4.
2011-12-14 02:08:14 -06:00
James Cotton
09864a8cf6
Get outdoor EKF running although need to add in the ability to swap modes
...
(probably).
2011-12-14 02:07:33 -06:00
James Cotton
fd8899018f
Get EKF running
2011-12-14 01:54:06 -06:00
James Cotton
ed7cbd5a6c
Have to initialize the BaroAltitude object ini the init section for it to show
...
up on telemetry
2011-12-13 23:27:26 -06:00
James Cotton
9f50391fc5
Merge branch 'next' into revolution_sensors
...
Conflicts:
ground/openpilotgcs/src/plugins/coreplugin/OpenPilotGCS.xml
2011-12-13 20:50:10 -06:00
James Cotton
a37a17a4fb
Created a separate Sensor module and Attitude module for revolution
2011-12-12 21:40:39 -06:00
James Cotton
53cb5b67d1
Make the revo attitude now use the separate gyro object. CopterControl
...
attitude still needs an update.
2011-12-12 13:28:35 -06:00
James Cotton
d22e0e66dd
Create separate UAVOs for the sensors.
2011-12-12 13:05:40 -06:00
James Cotton
7273f87f9b
Fix NMEA parsing for M4 FPU
2011-12-12 09:47:11 -06:00
James Cotton
a9c61845af
Create a separate task for sensors and attitude on revo.
2011-12-12 00:47:16 -06:00
James Cotton
33a12d829e
Merge branch 'next' into revolution
...
Conflicts:
flight/PiOS/Common/pios_flashfs_objlist.c
2011-12-11 22:55:54 -06:00
Oleg Semyonov
10287e3e29
CC: rename ReceiverPort PPM+Servo (Servo) options to PPM+Outputs (Outputs)
2011-12-11 22:52:51 +02:00
James Cotton
162b0d7f75
Because the UAVO field sorting required for revo changes all the object IDs,
...
trigger a flash wipe on all existing boards with this upgrade.
2011-12-10 14:13:28 -06:00
Corvus Corax
a0cd71abe6
UAVObjects ; Modules/ManualControl: Fixed metadata interface and segfault when retrieving it
2011-11-30 09:20:46 +01:00
James Cotton
44ca9736df
Fix floating point calculation in NMEA parser and delete duplicate of NMEA
...
functions
2011-11-28 09:36:31 -06:00
James Cotton
43fa9e702e
Move DSM to Flexiport and enable GPS on GPS port. Currently GPS module locks
...
up though.
2011-11-28 09:11:13 -06:00
James Cotton
c33816dd79
Force mode switch to be floating point so F4 works
2011-11-28 09:10:26 -06:00
James Cotton
671c7537a0
Reorganize the pios_config.c file for revolution
2011-11-28 08:29:14 -06:00
James Cotton
1af66fc3d2
Get rid of 500 ms delay in startup for the pios_sys so that servos start
...
properly but a delay is still needs to get MPU6000 up right. Fucking POS.
2011-11-27 18:05:20 -06:00
James Cotton
9357960268
Get rid of old bootloader code for revolution using the ahrs spi link
2011-11-27 18:04:31 -06:00
James Cotton
f7f94011ee
Damnit. For higher bus speeds MPU6000 chip must be initialized twice in a row.
...
WTF piece of shit.
2011-11-27 02:35:08 -06:00
James Cotton
deea7cde41
Speed up coms to MPU6000
2011-11-27 01:51:43 -06:00
James Cotton
57e7126979
Increase stack size for manualcontrol. This might need to be applied to main
...
code.
2011-11-27 01:51:23 -06:00
James Cotton
f7d13ebd57
Hack to tweak the gyro gain for now although its too far out at the moment so
...
something isn't configured properly. Possibly it is staying in 250 deg/s mode.
Also make sure if the MPU6000 fifo backs up to pull extra data.
2011-11-27 01:22:37 -06:00
James Cotton
8bbc767a4e
Get the pressure sensor working and reading into Revolution
2011-11-27 00:52:09 -06:00
James Cotton
cd65df013e
Merge branch 'next' into revolution
...
Conflicts:
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-11-26 22:52:32 -06:00
James Cotton
13729f854e
PiOS F4: Fix PWM timer interrupts and enable PWM input
2011-11-26 22:41:41 -06:00
James Cotton
21367d3a22
Spektrum support for Revolution
2011-11-26 22:19:42 -06:00
James Cotton
e24c905ff7
F4 PiOS: Reimplement the RTC logic for F4
2011-11-26 22:13:57 -06:00
James Cotton
b11a4f7405
Clean up the actuator module for floating point usage. Also there was a bug I
...
don't understand where the channels should be scaled AFTER all of them are
computed. It feels like a memory overwriting bug and needs followup.
2011-11-26 16:12:32 -06:00
James Cotton
07e3ad10af
Force some floating point units to be safe
2011-11-26 15:52:25 -06:00
James Cotton
04f4afce46
Set idle load for revo
2011-11-26 15:52:04 -06:00
James Cotton
8c0db424fa
Fix long subtle bug where failsafe didn't show the output values it was using
2011-11-26 15:51:24 -06:00
James Cotton
c70a9a5381
Sanitize the floating point math in systemmod.c to be consistently floating and
...
not double
2011-11-26 15:16:16 -06:00
Oleg Semyonov
1f60f80053
Bring back the ERASE_FLASH option support for SettingsEraseFirmware
2011-11-26 22:57:33 +02:00
James Cotton
d3314f041a
MPU6000: Bring SPI down to 5 Mhz - much closer to spec
2011-11-26 14:56:28 -06:00
James Cotton
99123372d0
TO BE REVERTED: Temporary patch to make the w25x driver work with the revo m25p
...
chip. Need to abstract out the erase commands into a general pios_spi_flash
driver.
2011-11-26 14:55:16 -06:00
James Cotton
8b7aca0dcd
Include the accel bias into revolution attitude function and also make sure
...
downsampling is correct.
2011-11-26 14:40:32 -06:00
James Cotton
11ad135b27
Some changes to MPU6000 driver to make it start more reliably on fresh powerup
2011-11-26 14:12:12 -06:00
James Cotton
1574c96c3a
Add all the pin remappings and pin sources for F4 timers
2011-11-26 03:36:36 -06:00
James Cotton
c57acf6459
F4 PiOS: Must use a different remap command on F4 for timer module to command
...
pin. Include the remap source in the config structure now.
2011-11-26 03:35:26 -06:00
James Cotton
57b381235e
Init the timers and PWM in the board file
2011-11-26 02:19:56 -06:00
James Cotton
de9a8453ef
Configure the board to use PWM input and servo output
2011-11-26 02:19:56 -06:00
James Cotton
3e01c84a15
Add pin mappings for PWM and receiver port
2011-11-26 02:19:56 -06:00
James Cotton
e71030c6ce
Remove testing code for pressure sensor
2011-11-26 02:19:56 -06:00
James Cotton
c118159a6f
Remove refence to deleted object
2011-11-26 02:19:55 -06:00
James Cotton
fae611a01f
Fix bug where clicking back at last screen of input wizard would go back to
...
main screen and then in future buttons hung around for no reason
2011-11-25 11:30:12 -06:00
Oleg Semyonov
6d78b97d92
dsm: update DSM protocol binding details in the comments (no code change)
2011-11-19 17:33:04 +02:00
James Cotton
7637e9f669
Get flash chip working and saving to memory. Also get the I2C working with
...
BMA180 driver.
2011-11-19 00:13:02 -06:00
James Cotton
da75e9fdaf
PiOS: Make I2C return an error code for NACK
2011-11-19 00:11:16 -06:00
James Cotton
a7ef5601e0
Update the MPU6000 FIFO code and also fix the temperature code
2011-11-18 00:24:55 -06:00
James Cotton
6d74e96c31
Got attitude working again. MPU6000 FIFO reading needs a bit of work.
2011-11-18 00:00:55 -06:00
James Cotton
79730d5afa
Try and get the MPU6000 buffer to run down. Staying high for some reason.
2011-11-17 11:23:31 -06:00
James Cotton
0efffef1fa
Work on bringing the Revolution board up
2011-11-17 10:13:34 -06:00
James Cotton
d97e5dbc59
Add SPI MPU6000 driver. Unfortunate hack in HMC5883 EXTI handler to call
...
MPU6000. Need to generalize EXTI ASAP.
2011-11-17 10:12:10 -06:00
James Cotton
8477c2229b
Using real prototype board now. Move telemetry to GPS port for easy-ness right
...
now.
2011-11-17 01:58:51 -06:00
James Cotton
1c7c85635d
Typo with renamed PI
2011-11-16 19:48:13 -06:00
James Cotton
1deb799b6f
Get simple attitude estimation working on F4 INS. Also make MPU6050 return
...
scaling that casts to degrees.
2011-11-16 11:36:04 -06:00
James Cotton
8e79f86716
Make the CoordinateConversions use a floating point PI
2011-11-16 11:35:52 -06:00
James Cotton
aa698f7b0a
Increase the CC IRQ stack to avoid some memory warnings
2011-11-16 09:20:30 -06:00
James Cotton
aeb42332d6
Get the MPU6050 fifo running and read by the attitude module
2011-11-14 11:23:14 -06:00
James Cotton
59507249e1
Hack in attitude to read directly from gyros instead of fifo. All sensors
...
reading now.
2011-11-14 11:12:10 -06:00
James Cotton
1086df5b21
Correctly configure MPU6050 interrupt. However currently not pushing data to
...
the buffer as that seems to fail.
2011-11-14 11:11:40 -06:00
James Cotton
2cc2e55248
Add attitude solution for revo
2011-11-14 10:49:37 -06:00
James Cotton
4c04d01be4
Dos2unix pios_config.h for revo
2011-11-14 10:25:57 -06:00
James Cotton
e32cc92002
For now act like revo is using init call system to fix compile errors.
2011-11-14 10:25:28 -06:00
James Cotton
da679441ec
Duplicate the spektrum (dsm) driver to F4 branch
2011-11-14 10:12:51 -06:00
James Cotton
684715930a
Merge branch 'next' into revolution
...
Conflicts:
flight/OpenPilot/Makefile
flight/Revolution/System/inc/openpilot.h
2011-11-14 10:11:53 -06:00
James Cotton
180d84e373
Update the MPU6050 code a bit more to use the right registers.
2011-11-14 10:09:49 -06:00
James Cotton
2eb89e9b81
No reason for the data read flag in pios_bmp085.c to be a semaphore
2011-11-14 10:07:19 -06:00
James Cotton
76a956416c
Switch revo over to MPU6050
2011-11-13 19:45:06 -06:00
James Cotton
96a098bf74
Add code for MPU6050 driver
2011-11-13 19:44:56 -06:00
James Cotton
1e2fe77e3f
Start migrating the attitude solution to FreeRTOS
2011-11-13 18:51:35 -06:00
James Cotton
0c103f7b2c
Delete F2 PiOS port since unused
2011-11-13 17:33:43 -06:00
James Cotton
fffb6449ac
Delete the old INS target
2011-11-13 17:31:34 -06:00
James Cotton
c44235494c
Update the Revolution board file a bit
2011-11-13 17:23:56 -06:00
James Cotton
938a577d11
Small change to pios_adc so it works when not enabled
2011-11-13 17:14:08 -06:00
James Cotton
ec84fc4058
Get the Revolution bootloader working
2011-11-13 17:13:42 -06:00
James Cotton
2b37d4bbb5
Enable telemetry on revo
2011-11-13 16:10:19 -06:00
Oleg Semyonov
4a99ec3298
code style: move variable into function and free 1 byte of RAM :-)
...
component free heap used
----------------------------
Nothing 2560 -
PWM 2432 128
PPM 2408 152
DSM 2464 96
S.Bus 2448 112
GPS (port only) 2368 192
GPS (port+module) 1312 1248
CameraStab 2096 464
Telemetry 1928 632
2011-11-13 18:27:52 +02:00
Oleg Semyonov
de6e450b5f
Merge branch 'next' into os/TxPID-module
...
Conflicts:
flight/CopterControl/Makefile
flight/CopterControl/System/coptercontrol.c
ground/uavobjgenerator/generators/generator_common.h
shared/uavobjectdefinition/hwsettings.xml
component free heap used
----------------------------
Nothing 2544 -
PWM 2416 128
PPM 2392 152
DSM 2448 96
S.Bus 2432 112
GPS (port only) 2352 192
GPS (port+module) 1296 1248
CameraStab 2080 464
Telemetry 1912 632
TxPID 2272 272
2011-11-13 16:25:58 +02:00
James Cotton
b110e9c549
Style suggestions to cleanup GPS from Stac
2011-11-12 21:31:01 -06:00
James Cotton
f0b22519be
Merge remote-tracking branch 'origin/corvuscorax/CC_GPS' into next
2011-11-12 21:30:53 -06:00
James Cotton
fdcc6c2d41
Fix a bug I made in programming the bootloaders via jtag
2011-11-12 21:29:46 -06:00
Corvus Corax
198c819943
some more makefile cleanup
2011-11-11 11:54:31 +01:00
Corvus Corax
cd473ed1fd
some makefile cleanup
2011-11-11 11:51:45 +01:00
Corvus Corax
aa69027cb2
Merge branch 'next' into CC_GPS
2011-11-11 11:44:11 +01:00
Corvus Corax
61ecc0d310
make optional modules check themselves if they should start or not
2011-11-11 11:39:57 +01:00
Corvus Corax
e03e3c2ed8
removed "special code" to start optional modules
2011-11-11 11:22:54 +01:00
Corvus Corax
5e14e69a08
Revert "OpenPilot: Initialize optional modules based on UAVObject"
...
This reverts commit 9f03ba178b
.
2011-11-11 11:08:49 +01:00
Corvus Corax
9679638244
Revert "Modules/GPS: removed comment line"
...
This reverts commit 109a58ef30
.
2011-11-11 11:07:02 +01:00
Corvus Corax
88f161dd42
Revert "Makefiles: fixed comment line"
...
This reverts commit 0065842de7
.
2011-11-11 11:06:32 +01:00
Oleg Semyonov
8f77d07119
System Module: fix stupid out of memory detection bug
2011-11-07 19:14:55 +02:00
Oleg Semyonov
f5e82b8242
spektrum: rename Spektrum to DSM (DSM2/DSMJ/DSMX used by Spektrum and JR radios)
...
No code changes, just file, variable and define names are changed.
First, it better describes the serial protocol used by DSMx satellite
receivers. Second, many people using Spektrum radio, assume Spektrum
protocol. This is the attempt to address those inaccuracies.
2011-11-04 21:40:34 +02:00
Oleg Semyonov
8ed23c76b7
spektrum: fix OpenPilot MB target (deprecated) after spektrum changes
2011-11-04 20:43:49 +02:00
James Cotton
c0f16d2f44
Revolution: Configure clocks correctly
2011-11-03 20:12:34 -05:00
James Cotton
a2015a4f8d
Compiled and flashing
2011-11-02 13:20:39 -05:00
James Cotton
0ce80e02f5
Compiles now
2011-11-02 02:51:20 -05:00
Oleg Semyonov
481bff2578
spektrum: code style fixes accoring to OPReview-122
2011-11-01 18:48:07 +02:00
James Cotton
0931a518d4
Bring F4 PiOS up to date with some of our timer conventions
2011-11-01 04:39:51 -05:00
James Cotton
48d2e038bb
More work to the revolution build
2011-11-01 04:39:20 -05:00
James Cotton
4d6f810984
Make ADC driver play properly when not included
2011-11-01 03:22:48 -05:00
James Cotton
7eee6bf85b
Create revolution board file
2011-11-01 03:22:19 -05:00
James Cotton
7ee4a0412c
Work on the build process and include FreeRTOS
2011-11-01 03:20:25 -05:00
James Cotton
9607da9c62
Add some drivers to the device specific library for now until the exti problems
...
are fixed
2011-11-01 03:19:58 -05:00
James Cotton
2cc0b301ce
Make some of the StdPeriph function calls const where appropriate
2011-11-01 03:18:59 -05:00
James Cotton
cdb6059752
Coyp over some of how the PH build system works
2011-11-01 01:36:52 -05:00
James Cotton
9bdd021b2e
Make new Revolution target
2011-11-01 01:17:59 -05:00
James Cotton
3388843fb5
Merge in PixHawk F4 work
2011-11-01 01:09:55 -05:00
Oleg Semyonov
a8b36ddd28
HwSettings: disable GPS and telemetry port speed updates at run-time
...
This is to be consistent across the HwSettings object fields which are
read on boot only by convention.
2011-10-31 23:04:17 +02:00
Oleg Semyonov
0116e6a007
spektrum: rework DSM2/DSMJ/DSMX driver for explicit DSMX resolution support
...
- both CC serial ports are now disabled by default (no telemetry);
- serial ports now have DSM2, DSMX (10bit) and DSMX (11bit) options;
- ReceiverGroups now have DSM (MainPort) and DSM (FlexiPort) options.
For DSM2 protocol there is an explicit resolution bit in the stream, so
the DSM2 should be selected. For DSMX there is no such bit, and user
should choose the resolution from the list configuring the spektrum port.
ReceiverGroups have single DSM option which is handled by the same driver.
Downside: this implementation saves received frame first, unrolls by the
end of frame. This should be ok, but may be improved by unrolling channels
on the fly in the rx callback.
Another minor difference is that a ChannelGroup is now bound to port:
DSM (MainPort) or DSM (FlexiPort). This was considered as acceptable
solution in order to not have 6 DSM options for each ChannelGroup and
even more in case of new DSM protocol variations.
Known problem: it is not possible to choose same protocols like
DSM2/DSM2 for two ports. It can be enabled by adding an exception to
common rule, though.
The DSMX throttle channel misbehavior (zero value) is not treated
specially yet. It should trigger the failsafe being out of bounds.
More info and data dumps are required to handle this properly.
2011-10-30 19:29:03 +02:00
James Cotton
f019412209
Various tweaks to get the F4 working
2011-10-26 21:56:00 -05:00
James Cotton
d786c152e3
Merge F4 files from PixHawk branch
2011-10-26 18:23:35 -05:00
James Cotton
0f8ae1e076
Merge branch 'next' into ins
...
Conflicts:
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-10-26 13:18:44 -05:00
Oleg Semyonov
a19bbba858
Merge branch 'next' into os/alternative_spektrum_driver
2011-10-25 11:55:05 +03:00
James Cotton
27bf2b383e
Merge remote-tracking branch 'origin/james/remap_outputs' into next
2011-10-23 18:35:25 -05:00
Oleg Semyonov
4ed23dd891
Output Remapping: renamed PPM_SERVO option to PPM+Servo
2011-10-24 00:34:01 +03:00
James Cotton
23150a48fe
Merge remote-tracking branch 'origin/os/sbus_dynamic_malloc' into next
2011-10-23 15:26:26 -05:00
James Cotton
24d6ae731b
Output Remapping: Added option to just use servo outputs on input lines but not
...
PPM. This saves resources. Good suggestion Os. In this configuration we
could allow 12 channels of output but for now I'll leave it capped at 10 to
lessen resources on the mixer table.
With spektrum and camera stab enabled there was
1632 bytes heap remaining
180 bytes irq stack remaining
2011-10-23 15:21:40 -05:00
Oleg Semyonov
2a98a52f4c
gps: include optional GPS module by default
2011-10-23 00:41:18 +03:00
Oleg Semyonov
6a9208e8c3
Merge branch 'next' into os/TxPID-module
2011-10-22 23:34:58 +03:00
Oleg Semyonov
f71361ca83
Merge branch 'next' into os/GPS-on-CopterControl_next_v2
...
Conflicts:
flight/Modules/System/systemmod.c
2011-10-22 23:00:47 +03:00
Oleg Semyonov
58d0812309
sbus: better frame syncronization, some cosmetic changes
...
In the previous version the decoder could in rare cases get synced from
the middle of data stream in case of data byte equal to the S.Bus start
of frame (SOF) byte (wrong data will be rejected but it was not perfect).
Now it waits for the real start of frame and then checks the SOF byte.
2011-10-22 00:44:09 +03:00
Oleg Semyonov
62bca651d5
spektrum: alternative DSMx (DSM2/DSMJ/DSMX) driver
...
- does not glitch when used in 2-frame mode (DM9, 9503, etc)
- does NOT provides yet DSMX stream decoding - do NOT merge
- uses a bit more time in the interrupt, but frees 16 bytes of RAM.
This is done to help decoding the weird DSMX stream which does not
contain explicit resolution/frame/lost frames info and needs special
processing (to be done yet).
2011-10-21 23:35:17 +03:00
Corvus Corax
167010e8a0
UAVTalk: Fixed bug in parser failing to handle length of multi-instanceobjects
...
UAVTalk (on GCS): Fixed a null pointer dereference when receiving in a NACK
2011-10-21 02:04:29 +02:00
Oleg Semyonov
92b81e3f88
sbus: refactor the code using unified PIOS RCVR driver structure
...
- allow more than one S.Bus receiver (needs hardware support)
- use dynamic memory allocation (frees around 72 bytes of RAM when unused)
2011-10-20 18:23:23 +03:00
James Cotton
e0cc289de0
Remapping inputs to outputs: Drop S2 so there are ten outputs
...
Output 7 = S3 input
Output 8 = S4 input
Output 9 = S5 input
Output 10 = S6 input
Also fix bug that prevented them outputting signal
2011-10-20 06:28:07 -05:00
Corvus Corax
cb8d9c791c
PiOS.posix: fixed missing defines in pios_config. removed platform specific inclde from Systemmod (pios_config.h gets included from pios.h)
2011-10-19 22:28:39 +02:00
Corvus Corax
b00751af91
Systemmod bugfix: UAVObject used without Initialization
2011-10-19 22:28:08 +02:00
Corvus Corax
e244581b18
PiOS.posix: bugfix in pios_udp com driver - data send loop
2011-10-19 13:37:35 +02:00
James Cotton
9312610f3b
Output: Enable two more channels to support octo + camera
2011-10-15 16:59:42 -05:00
James Cotton
ce7f424131
CC: When receiver port is set to PPM_SERVO use the spare pins as outputs
2011-10-15 16:59:42 -05:00
James Cotton
19c9528d80
CopterControl: Create structures to supply more output channels
2011-10-15 16:59:42 -05:00
Corvus Corax
425bc5abbe
PiOS.posix: PIOS_RCVR : fix posix port of pios_rcvr to allow compilation on 64bit systems
2011-10-11 18:07:04 +02:00
James Cotton
9cbb48417a
Merge branch 'long_erase_settings' into next
2011-10-08 14:18:56 -05:00
James Cotton
0f1a6264de
Fix jtag programming of bootloader
2011-10-08 14:14:11 -05:00
James Cotton
5dc0f397a6
OP-499 Erase settings bug: Make hte flash chip read a wrong value for 1 second
...
before wiping settings.
2011-10-07 14:08:56 -05:00
Oleg Semyonov
7800fbe6de
gps: initialize GPS UAVO and start GPS module only if port is configured
2011-09-29 00:41:51 +03:00
Oleg Semyonov
469feecb13
pios: remove some unused #defines
2011-09-28 23:40:12 +03:00
Oleg Semyonov
ed8cf89888
Initcall: fix compilation errors for firmware which does not use Initcalls
2011-09-28 22:57:18 +03:00
Oleg Semyonov
a38c569cd0
HwSettings: move Telemetry and add GPS port speed to the HwSettings object
...
TelemetrySettings object removed (saved 200+ bytes of RAM). Telemetry
port speed moved to the HwSettings object. Added GPS port speed setting.
GCS code updated to reflect changes and support both fields.
2011-09-28 22:11:42 +03:00
Oleg Semyonov
53c098dd08
Merge branch 'next' into os/GPS-on-CopterControl_next_v2
...
Conflicts:
flight/OpenPilot/System/pios_board.c
flight/OpenPilot/UAVObjects.inc
shared/uavobjectdefinition/hwsettings.xml
2011-09-28 22:02:02 +03:00
James Cotton
fef9570e4d
INS: Get bootloader working again
2011-09-27 01:17:14 -05:00
James Cotton
cf6a59468f
Merge branch 'next' into ins
...
Conflicts:
flight/INS/Makefile
flight/Project/OpenOCD/stm32f1x.cfg
flight/Project/OpenOCD/stm32f2x.cfg
make/firmware-defs.mk
2011-09-27 01:02:06 -05:00
James Cotton
f1e70d2ff5
Merge remote-tracking branch 'origin/msmith/OP-578' into next
2011-09-23 16:43:00 -05:00
Oleg Semyonov
a9137e9db1
TxPID: add update mode option as a workaround for GCS interaction
2011-09-19 16:16:28 +03:00
Oleg Semyonov
aad263bdd8
TxPID: enable ramp-shaped throttle-dependent PIDs
...
Besides of knob PID tuning it is now possible to use throttle channel
to ramp-shape PID coefficients. This can be used to lower some PIDs on
VTOL while sinking to prevent wobble.
To use the feature select throttle as control input, choose throttle
range max and min values, assign the instance to particular PID
coefficient and define a range for it. When throttle is lower than
defined throttle range min value (or higher than max), then min and max
PID values will be used accordingly. Changing throttle from throttle
min to max will linearly scale PID value.
Note that it is possible to set MinPID > MaxPID. In that case increasing
control input value will decrease the PID coefficient.
Up to 3 independent instances can be configured. The number can be
increased changing the UAVO definition, but at the cost of extra RAM.
2011-09-18 14:38:50 +03:00
Oleg Semyonov
d923117c25
TxPID: optional module to tune PID settings using R/C transmitter
...
This module will periodically update values of stabilization PID settings
depending on configured input control channels. New values of stabilization
settings are not saved to flash, but updated in RAM. It is expected that the
module will be enabled only for tuning. When desired values are found, they
can be read via GCS and saved permanently. Then this module should be
disabled again.
2011-09-17 22:49:51 +03:00
James Cotton
a1aeab9393
Increase size of framing signal for logging
2011-09-15 10:19:59 -05:00
James Cotton
0d3d5ad094
INS: Get rid of old code that tried to detect when indoor mode wasn't called
...
for a while
2011-09-14 17:30:02 -05:00
James Cotton
acf2aa218b
Merge remote-tracking branch 'origin/stac/upgrade-to-openocd-0.5.0' into next
2011-09-14 11:49:01 -05:00
James Cotton
06190d1d95
Fix altitude hold dead band range
2011-09-13 10:34:56 -05:00
James Cotton
3b399ad44c
Increase gyro bias rate again
2011-09-13 08:30:50 -05:00
Oleg Semyonov
c92870d29e
Remove unused file (versionblob.py)
2011-09-13 16:10:10 +03:00
James Cotton
1783817b96
INS: First pass at altitude hold code
2011-09-13 01:44:53 -05:00
James Cotton
400ba3bd47
Merge branch 'next' into ins
2011-09-12 18:57:11 -05:00
James Cotton
c36297227d
Stabilization fix typo
2011-09-12 11:56:01 -05:00
James Cotton
63bb80649b
Merge branch 'max_rate_for_attitude' into next
2011-09-12 11:51:03 -05:00
James Cotton
00c9d62f6a
INS: Miscellaneous changes for debugging handling and also some stuff for GPS
...
signal loss.
2011-09-12 11:17:17 -05:00
James Cotton
5b836db54c
INS/Guidance: Convert distance to using m instead of cm. This is mainly to be
...
able to use NAN to indicate when values aren't valid from INS.
2011-09-11 23:02:05 -05:00
James Cotton
a682d5deb6
INS: In indoor mode if GPS is found use that to populate PositionActual
2011-09-11 22:53:07 -05:00
James Cotton
8f2fad6918
Fix for merging with the collective channel with the swashplate fix.
2011-09-11 18:53:10 -05:00
James Cotton
6457276438
Merge branch 'input_configuration' into next
2011-09-11 18:52:35 -05:00
Oleg Semyonov
f5369f9338
Input Configuration: support all 18 S.Bus input channels
2011-09-12 02:06:50 +03:00
Oleg Semyonov
7b3056d10f
Input Configuration: fix S.Bus receiver in multi-receiver code
2011-09-12 02:06:48 +03:00
James Cotton
b38081bb1b
Stabilization: When in none
mode zero the integral accumulators for rate and
...
attitude loops. When not using outer loop zero that accumulator.
2011-09-11 16:33:38 -05:00
Mike Smith
deade53c5d
OP-578 - check for CODE_SOURCERY before setting -fpromote-loop-indices
2011-09-11 10:49:09 -07:00
James Cotton
6945f17eba
Make the StabilizationSettings.MaxRate field only apply to the stabilized
...
modes. That way ManualRate can exceed MaxRate.
2011-09-11 12:27:17 -05:00
James Cotton
b8bb2dd2ca
Merge branch 'next' into ins
2011-09-10 17:02:15 -05:00
James Cotton
aad41ebb4f
Merge branch 'mainboard_receiver_fix' into next
2011-09-10 16:01:22 -05:00
James Cotton
01cd2ded57
Mainboard config: The rcvr port is used for PPM/PWM/Spektrum so make these one
...
setting that is mutually exclusive.
2011-09-10 14:20:51 -05:00
James Cotton
4847a04db8
Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
...
TIM5-8. Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update. I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 14:20:40 -05:00
James Cotton
eb191d869a
Mainboard: Get spektrum working again.
2011-09-10 14:19:54 -05:00
James Cotton
c2a8cc3faa
Mainboard config: The rcvr port is used for PPM/PWM/Spektrum so make these one
...
setting that is mutually exclusive.
2011-09-10 14:19:12 -05:00
James Cotton
f725fbe128
CopterControl: Fix build due to changing the AttitudeRaw structure.
2011-09-10 13:56:00 -05:00
James Cotton
2871c75a79
Mainboard: Get PWM working again. Had to add extra timer IRQ handlers for
...
TIM5-8. Also TIM1 was not handled probably (for CC either) as the name of the
IRQ is TIM1_CC and TIM1_UP for the capture compare versus update. I haven't
checked the downstream code that the registers it uses to map from a context to
event is invariant under timer channel.
2011-09-10 13:53:38 -05:00
James Cotton
199db1362d
Actuator: Found a bug in actuator that affects how throttle and pitch curves
...
were used. Basically 80% was always 100%. This should make hovering better
and fix heli swash pitch.
2011-09-09 19:40:58 -05:00
James Cotton
1d2a424296
Mainboard: Get spektrum working again.
2011-09-09 09:42:13 -05:00
James Cotton
3239fdf21b
Merge branch 'next' into ins
...
Conflicts:
flight/CopterControl/Makefile
flight/OpenPilot/System/pios_board.c
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-09-09 08:33:34 -05:00
James Cotton
dfe91af686
UAVObjects: Space allocated in manualcontrolcommand did not match the number of
...
channels in settings. Fixed this and added assertion to catch in future.
2011-09-09 01:17:13 -05:00
James Cotton
22821e3c93
HMC5883: Missed a channel for HMC5883
2011-09-08 22:25:35 -05:00
James Cotton
552022250b
INS: Disable power up checks until these are made more reliable and remove some
...
debugging outputs.
2011-09-08 21:44:27 -05:00
James Cotton
e79e8cdbde
INS data output: Add the latency the logged messages
2011-09-08 03:39:39 -05:00
James Cotton
c87a042195
IMU3000: For now sample at 1k which allows us to bring down the I2C clock rate
...
to 400k
2011-09-08 03:37:51 -05:00
James Cotton
0eb4fd113b
PiOS BMA180: Increase the comms speed for BMA180 and perfom SPI without
...
callback. This takes less time.
2011-09-08 03:28:32 -05:00
James Cotton
d7ea1fc306
PiOS I2C: Swap the expected return value of the F2 pios i2c calls
2011-09-08 01:32:27 -05:00
James Cotton
1a5fd9f30e
Heli: Added an explicit collective channel. Also make the default channel
...
number 0 since that is not invalid.
2011-09-07 01:48:39 -05:00
James Cotton
72625d9971
PiOS RCVR: Make the public API use a 1 based indexing for channel numbers.
...
This may or may not get into next, but if so anyone following it MUST
reconfigure their inputs.
2011-09-06 16:39:08 -05:00
James Cotton
8f7712435f
Merge branch 'safer_failsafe' into next
2011-09-06 16:23:11 -05:00
James Cotton
627c931c79
PiOS I2C: Swap the convention of returned values for I2C
2011-09-06 03:27:20 -05:00
Sambas
a8ef57c6d6
Redo DX8 changes
2011-09-06 08:40:10 +03:00
Stacey Sheldon
1e9bcf8426
openpilot: fix merge of unidirectional gps feature branch
2011-09-04 23:22:29 -04:00
James Cotton
465527a980
INS: Enable GPS parsing. GPS data is processed on INS now. HomeLocation and
...
WMM are not currenly implemented.
2011-09-04 20:03:04 -05:00
James Cotton
7ff5cd7655
INS: Try and get load down on event system.
2011-09-04 16:21:04 -05:00
James Cotton
cd8ebdf427
INS: Store the gyro bias in the settings so it doesn't get overwritten
2011-09-04 15:21:53 -05:00
James Cotton
b1e0366525
Merge remote-tracking branch 'origin/CorvusCorax_unidirectional-GPS-com' into next
...
Conflicts:
flight/OpenPilot/System/pios_board.c
2011-09-04 13:33:52 -05:00
James Cotton
82c5f9f0f4
PIOS_RCVR: Document return values better and use enum for them
2011-09-04 12:37:39 -05:00
James Cotton
533ae9bb41
SBUS: Missed handling the S.Bus failsafe. Now returns PIOS_RVCR_TIMEOUT for
...
either SBus failsafe mode or when no data for 100 ms.
2011-09-04 12:15:34 -05:00
James Cotton
5e2a36aa03
Merge branch 'stac/allocate-device-instances-from-heap' into next
2011-09-04 12:03:42 -05:00
James Cotton
c326c0941d
INS: Work on initialization. Improve the zeroing of the gyros at powerup.
2011-09-04 11:49:15 -05:00
James Cotton
510a1760ca
When disconnected set any accessory channels to neutral. Otherwise the
...
actuator module could keep the pitch at high. However the "right" thing to do
seems very specific. For example negative pitch is probably preferable.
2011-09-04 03:45:36 -05:00
James Cotton
89e640ae7f
Make sure all receiver drivers return correct constants for invalid channels.
2011-09-04 01:24:16 -05:00
James Cotton
51967ae63f
OP-571 PIOS_PWM: Add back the PWM supervisor
2011-09-04 01:17:40 -05:00
James Cotton
20de046292
Force system to be disarmed when a bad configuration is present
2011-09-04 00:43:33 -05:00
James Cotton
d3de8ff0ef
OP-559: Process the arm status when disconnect and allow it to timeout and
...
disarm
2011-09-03 23:57:51 -05:00
James Cotton
697dbf4f5f
OP-568 PIOS_RCVR: Standardize the values that are returned from the PIOS_RCVR and make
...
them symbolic constants.
- A timeout is 0
- A missing driver is 65534
- An invalid channel is 65535
ManualControl: Make it deal with the values explicitly. A timed out value
should not be treated like a minimum duration signal. Instead it does not
updated the scaled value but marks the data window as invalid to trigger the
failsafe.
2011-09-03 23:50:56 -05:00
James Cotton
dae11cf877
INS Logging: Enable temperature reading from gyro and accel (may be removed in
...
future), push it into UAVO and introduced a logging mode for INS that outputs
all sensor data from aux port.
2011-09-03 15:10:47 -05:00
James Cotton
5eaebac8d8
INS: Get the aux uart working. All F2 GPIO pins need to be remapped to work. Good thing to remember.
2011-09-02 17:04:39 -05:00
James Cotton
63f64003e5
INS: Change how the initialization of algorithms is handled to ensure sensor
...
dat always good
2011-09-02 13:50:36 -05:00
James Cotton
c40e5800ab
BMA180: Enable the EEPROM writing on startup so settings take the first time.
2011-09-02 13:28:36 -05:00
James Cotton
e0ed82eef0
INS Settings: Use the calibration data on the sensors
2011-09-02 13:28:01 -05:00
James Cotton
1d04715476
INS: Rework how the sensor calibration behaves and clean up the interface a
...
bit.
2011-09-02 13:24:35 -05:00
Mathieu Rondonneau
ae1dd945b1
Fix win32 sim macro problem
...
This is to get the macro in pios.win32 in sync with sim posix and
real flight.
2011-09-01 21:50:13 -04:00
James Cotton
3b20df22d1
Updates to config gadget for new INS objects
...
Make scope gadget check if object exists before using it. Avoids segfaults
when scoped objects disappear.
2011-09-01 12:21:37 -05:00
James Cotton
612d3336b4
This patch breaks backward compatibility with AHRS solidly.
...
Move the configuration files for INS from AHRS* to INS*. Strip out unused
fields in settings and merge calibration and settings since settings has
basically no information.
2011-09-01 12:21:33 -05:00
James Cotton
37878ed4e8
Get the OpenPilot compiling again using a previvous pios_board until doing a
...
proper merge with next
2011-09-01 03:31:23 -05:00
Stacey Sheldon
eea011c53b
openpilot: fix compile error on OP
2011-09-01 03:31:23 -05:00
Stacey Sheldon
43b31efb76
pios: allocate driver instance data from heap
...
Allocate per-instance data for drivers from the heap
rather than as static variables from the .data segment.
This converts > 800 bytes of RAM from being always consumed
as static data into being allocated from the heap only when
a particular feature is enabled in the hwsettings object.
A minimal config (no receivers, flexi port disabled, main port
disabled) leaves 2448 bytes of free heap. That's our new baseline.
Approximate RAM (heap) costs of enabling various features:
+ 632 Serial Telemetry (includes 400 bytes of Rx/Tx buffers)
+ 108 PWM Rcvr
+ 152 PPM Rcvr
+ 112 Spektrum Rcvr
+ 24 S.Bus (Should be closer to 68 since driver is still using
static memory)
There are still some drivers that pre-allocate all of their memory
as static data. It'll take some work to convert those over to
dynamically allocating their instance data.
2011-08-31 22:35:03 -04:00
Stacey Sheldon
86ce79af1d
openpilot: fix compile error on OP
2011-08-31 21:43:57 -04:00
Stacey Sheldon
2f86e4dd4f
Make PWM/PPM and Servo drivers play nicely together
...
PWM and PPM can now coexist in the same load and be
selected at boot time via the hwsettings UAVObject.
This is basically a complete restructuring of the
way the drivers interact with the TIM peripheral in
the STM32.
As a side effect, the PWM and PPM drivers are now
ready to support multiple instances of each.
This also provides the first step toward being able
to reassign some of the PWM input pins to be servo
output pins. Still more work required, but this is
a good start.
2011-08-27 21:39:56 -04:00
Stacey Sheldon
b3c43da90a
stdperiph: Make TIM related APIs use const pointers
...
This allows the configuration parameters to be stored in
flash instead of copied to RAM.
2011-08-27 21:39:17 -04:00
Stacey Sheldon
a72c657e21
rcvr activity: Speed up activity acquisition
...
Activity detection logic can now move through
the active receivers more quickly.
2011-08-27 20:17:56 -04:00
James Cotton
6514fd95c7
Also initialize the ReceiverActivity object in manual control
2011-08-27 16:08:57 -05:00
James Cotton
c5746335c6
Initialize GCSReceiver object if it is being used
2011-08-27 15:57:09 -05:00
James Cotton
dc340596f5
Merge branch 'next' into GCS_ChangesToUI-RuntimeCFG
...
Conflicts:
flight/CopterControl/Makefile
flight/OpenPilot/System/pios_board.c
flight/OpenPilot/UAVObjects.inc
flight/PiOS/STM32F10x/pios_spektrum.c
ground/openpilotgcs/src/plugins/config/config.pro
ground/openpilotgcs/src/plugins/config/configgadget.qrc
ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro
shared/uavobjectdefinition/hwsettings.xml
2011-08-27 15:26:05 -05:00
Stacey Sheldon
f29b99521e
openocd: collapse JTAG rules for STM32F1 and STM32F2
2011-08-27 10:43:02 -04:00
Stacey Sheldon
5a51077493
openocd: add support for RTOS autodetection
...
This allows things like 'info threads' to work in gdb when
combined with openocd 0.5.0+.
2011-08-27 10:38:50 -04:00
Stacey Sheldon
89d23df8cd
openocd: Add default config for stm32f2x
...
Pulled from origin/james/ins.
2011-08-27 10:37:20 -04:00
Stacey Sheldon
3d22258843
Merge remote branch 'origin/james/openocd' into upgrade-to-openocd-0.5.0
2011-08-27 09:19:46 -04:00
James Cotton
1d77d77832
Merge branch 'stac/use-malloc-failed-hook' into next
2011-08-27 00:24:13 -05:00
James Cotton
274333a9bf
Merge branch 'next' into stac/use-malloc-failed-hook
2011-08-27 00:12:45 -05:00
James Cotton
55f64802d1
Also enable malloc error catching on OpenPilot
2011-08-27 00:12:16 -05:00
Corvus Corax
0065842de7
Makefiles: fixed comment line
2011-08-25 16:28:34 +02:00
Corvus Corax
658ae3f809
Modules/System: removed comment line
2011-08-25 16:26:46 +02:00
Corvus Corax
109a58ef30
Modules/GPS: removed comment line
2011-08-25 16:25:19 +02:00
Corvus Corax
8173c7b7c6
Refactor GPS_PURISTIC into GPS_MINIMAL
2011-08-25 15:44:49 +02:00
Corvus Corax
3690586f3a
Optional Modules: Forced re-generation of mod init.h when makefile has changed
2011-08-25 15:42:11 +02:00
Corvus Corax
1d797bf004
Fixed error introduced by merge
2011-08-25 15:40:45 +02:00
Corvus Corax
c63a10d05e
CopterControl: Fix GPS buffer sizes
2011-08-25 15:37:38 +02:00
Corvus Corax
4bd72923e5
Merge branch 'CorvusCorax_unidirectional-GPS-com' into CC_GPS
...
Conflicts:
flight/Modules/GPS/GPS.c
flight/Modules/GPS/GTOP_BIN.c
flight/Modules/GPS/NMEA.c
shared/uavobjectdefinition/hwsettings.xml
2011-08-25 15:33:23 +02:00
Corvus Corax
54ecf233f3
Modules/PS: typo fix
2011-08-25 15:13:50 +02:00
Corvus Corax
7e396efbbf
Modules/GPS: Assert buffer creation
2011-08-25 15:11:29 +02:00
Corvus Corax
dfdea16065
Modules/GPS: Make GPS COM unidirectional (rx only) and use smaller, runtime allocated heap buffers
2011-08-25 14:46:30 +02:00
Corvus Corax
8b7fea0d19
Merge branch 'OP-567 GPS com layer fix' into next
2011-08-25 13:35:49 +02:00
Corvus Corax
697ac6067e
OP-567 Modules/GPS: Block in PIOS_COM, not in TaskDelay - or we will miss updates!
2011-08-25 13:33:41 +02:00
James Cotton
5f7a9b513a
Merge branch 'sambas/dsmx_stuff' of ssh://git.openpilot.org/OpenPilot into next
...
Conflicts:
shared/uavobjectdefinition/hwsettings.xml
2011-08-24 11:37:30 -05:00
James Cotton
1477ea6e94
Make mag updated flag always true when it's updated. Responsibility of INS
...
algorithm whether to use data.
2011-08-22 03:05:02 -05:00
James Cotton
4e59e697af
IMU3000: Sometimes the irq is called before previous I2C transaction. This
...
isn't good but for now just deal with it. Need DMA I2C driver.
2011-08-22 02:34:40 -05:00
James Cotton
8c16f614f2
INS: Use the data from the BMP085 and feed into EKF
2011-08-22 02:32:40 -05:00
Stacey Sheldon
edc0caf521
heap: set memory critical alarm on malloc failures
...
Activate the FreeRTOS malloc failed hook and use it
to set the memory critical alarm.
2011-08-21 23:14:32 -04:00
Corvus Corax
838149b53f
GPS: homelocation init is optional, satellites must be initialized
2011-08-21 18:20:33 +02:00
Corvus Corax
0ce337b42d
UAVTalk: fix off by one error preventing the largest UAvObject (gpssatellites) from being sent.
2011-08-21 18:15:10 +02:00
James Cotton
e4e952f270
Manual control settings needs to be initialized in OpenPilot board file for
...
spektrum to work
2011-08-21 02:21:09 -05:00
James Cotton
04072accd4
Manual control settings needs to be initialized in OpenPilot board file for
...
spektrum to work
2011-08-21 02:20:10 -05:00
James Cotton
b1c522def3
Merge remote-tracking branch 'origin/next' into ins
2011-08-21 01:34:40 -05:00
James Cotton
38d9df8fcb
HMC5883: Clean up the mag driver
2011-08-21 01:29:55 -05:00
James Cotton
f756e9cbc8
INS: Swap the mag axis
2011-08-21 01:29:24 -05:00
James Cotton
a642f3672c
Report running time per loop in us
2011-08-21 00:54:31 -05:00
James Cotton
e1afc9a19a
Merge branch 'next' into ins
...
Conflicts:
flight/Libraries/inc/fifo_buffer.h
flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-21 00:47:43 -05:00
James Cotton
c82aa64c53
INS: General clean up to deal with new driver formats. Also automatically
...
monitors the EKF rate.
2011-08-21 00:42:06 -05:00
James Cotton
af69e0a1a8
BMA180 driver; Don't externalize the fifo buffer but handle it in the driver
...
layer. General driver cleanup.
2011-08-21 00:40:10 -05:00
James Cotton
8ae53a4f97
PiOS: Cleanup IMU3000 driver a fair bit.
2011-08-21 00:39:20 -05:00
James Cotton
368323fd59
Merge remote-tracking branch 'origin/james/erase_settings' into next
2011-08-20 13:07:01 -05:00
Corvus Corax
1ad65e0718
Fixed include in sysstemmod. pios_config.h should not be included explicitly.
2011-08-20 15:04:00 +02:00
Corvus Corax
9f03ba178b
OpenPilot: Initialize optional modules based on UAVObject
2011-08-20 15:03:31 +02:00
Corvus Corax
4f1f20e801
OpenPilot: Bugfix: For some reason Debugging information didn't work. Symbols are created now
2011-08-20 14:37:53 +02:00
Corvus Corax
d21f6705aa
Disabled double definition of pmlib compilation in openPilot/Makefile - target gencode
2011-08-20 13:11:15 +02:00
Corvus Corax
5ea35bb28c
Make Diagnostic UAVObjects optional in OP and Sim_Posix (but enabled by default)
2011-08-20 13:06:58 +02:00
Corvus Corax
7395a369a9
Optional Modules: Ported optional module concept to OpenPilot and Sim_Posix
2011-08-20 13:02:44 +02:00
Corvus Corax
53d0732fc6
Enable GPS module as "optional module" in CooterControl
2011-08-20 01:25:49 +02:00
Corvus Corax
dfd301571a
HWSettings: Allow late Initialization and Start of Modules as defined in Makefile(available modules) and UAVObject(actually started modules)
2011-08-20 01:24:06 +02:00
James Cotton
952b4e1809
Have to speed up the comms rate for gyro to handle the oversampling we are
...
using.
2011-08-19 14:35:13 -05:00
James Cotton
cefc2b8c2e
Clean up main INS function a bit.
2011-08-19 14:34:56 -05:00
Corvus Corax
b75890fcd4
Merge branch 'next' into CC_GPS
2011-08-19 21:34:38 +02:00
James Cotton
d103541970
IMU3000: Make the IRQ trigger the callback based I2C read. Drop the
...
temperatured data from the FIFO stream. Add some flags to stop the callbacks
trampling over the configuration.
2011-08-19 14:28:33 -05:00
James Cotton
3465eb2f30
PiOS F2 I2C: Add a callback based transfer. This needs merging into the main
...
transfer function like SPI but I will leave that for now to avoid creating a
lot of changes in the main code.
2011-08-19 13:38:11 -05:00
Corvus Corax
85aef9c7b4
OpenPilot: bugfix: Add GPS tx buffer by default (needed until GPS has been refactored to not send or only send when configured so)
2011-08-19 20:22:05 +02:00
Corvus Corax
2062ec0aeb
AHRS_COM: Initialize transpherred objects before using them
2011-08-19 19:52:27 +02:00
Corvus Corax
5e4941f7cb
PiOS.posix: make PiOS.posix bail in case of a Panic with an error message
2011-08-19 18:41:59 +02:00
James Cotton
7444337418
F2 PiOS I2C: Add a poor man semaphore here in case we start calling I2C
...
transfers from IRQ. Also catch the double 0x70084 event which was locking up
the FSM with -Os enabled. I did this in a cheating way (filtering the event
based on state) but it's the cleanest I can see. Hopefully a DMA version of
I2C will fix this.
2011-08-19 11:39:50 -05:00
Corvus Corax
9bba1f7ae9
Posix: fix object initialization where necessary
2011-08-19 18:36:30 +02:00
James Cotton
b0e04e5f79
PIOS SPI: Make sure the non-freertos busy flag inits to zero
2011-08-19 10:52:50 -05:00
James Cotton
03a8bd7674
Statically initialize object handles to null to make sure the uavobjectmanager
...
can catch it and return -1. Do NOT panic when they are null as this is
something that should be caugth at run time in some cases.
Ideally as a compromise in a task start it could have a set of
PIOS_Assert(ObjectNameHandle()) to make sure the minimal set of objects it
needs are there.
2011-08-19 10:12:39 -05:00
James Cotton
ab7e57ad2b
Initialize objects for guidance in the correct place. Init some objects in
...
pios_board_posix since AHRSComms not around.
2011-08-19 09:52:05 -05:00
James Cotton
ced29e221e
Revert "Debugging: Add PIOS_DEBUG_Panic() call wen an UAVObject handle is requested but object is uninitialized, make PiOS.posix bail in case of a Panic with an error message"
...
We do not want to panic in this case as we want the ability to detect if
objects exist at run time
This reverts commit 78e42470d4
.
2011-08-19 09:45:10 -05:00
James Cotton
482bec497b
Revert "Fixed modules that didn't initialize used UAVObjects correctly"
...
Modules should initialize their settings and the objects they source. Not just
everything.
This reverts commit 9ad85e9b7b
.
2011-08-19 09:44:38 -05:00
Corvus Corax
69f10cd6d0
PiOS.posix: bugfix in COM_UDP
2011-08-19 13:54:16 +02:00
Corvus Corax
adfb6eccc2
fixed usage of GPS buffer in sim_posix
2011-08-19 13:20:40 +02:00
Corvus Corax
9ad85e9b7b
Fixed modules that didn't initialize used UAVObjects correctly
2011-08-19 13:20:15 +02:00
Corvus Corax
78e42470d4
Debugging: Add PIOS_DEBUG_Panic() call wen an UAVObject handle is requested but object is uninitialized, make PiOS.posix bail in case of a Panic with an error message
2011-08-19 12:56:26 +02:00
Corvus Corax
01a844e0da
Fixed redefinition of configCHECK_FOR_STACK_OVERFLOW in OpenPilot/System/inc/FreeRTOSConfig.h
2011-08-19 12:11:05 +02:00
Corvus Corax
f86e53bf91
Merge branch 'OP-536_CorvusCorax_ObjectOrientedFirmwareUAVTalk' into next
...
Conflicts:
flight/Modules/Telemetry/telemetry.c
2011-08-19 12:10:40 +02:00
James Cotton
f85ae84ec3
Merge branch 'camera_stabilization' into next
...
Conflicts:
flight/OpenPilot/System/pios_board_posix.c
2011-08-19 01:48:24 -05:00
James Cotton
c7034ef8a6
IMU3000: Fix a constant that made the sampling rate 1kh instead of 8 internaly.
...
No downsample that (in IMU3000) by 8 to get gyros at 1khz. Well about 256 Hz
nyquist and shouldn't cause substantial issues for EKF.
2011-08-18 13:01:51 -05:00
James Cotton
bdb9dc0a54
BMA180: Use DMA for getting the accels and use callback to push it onto the
...
stack.
2011-08-18 12:51:22 -05:00
James Cotton
3b6ffc8afa
PiSO SPI: Implement a poor mans semaphore for non-freertos systems.
2011-08-18 12:51:00 -05:00
James Cotton
294e0cbdff
IMU3000: Change IMU3000 api right now so it only reads one element from the
...
fifo but swaps the endian appropriately.
2011-08-18 11:03:56 -05:00
James Cotton
11ac0707da
BMA180: Reset BMA180 chip at reconfiguration.
2011-08-17 06:49:56 -05:00
James Cotton
29026db5d5
Refactor the INS code out a bit but still a mess.
2011-08-17 06:15:14 -05:00
Corvus Corax
6fe495c088
Merge remote branch 'origin/next' into OP-536_CorvusCorax_ObjectOrientedFirmwareUAVTalk
...
Conflicts:
flight/Modules/Telemetry/telemetry.c
2011-08-17 08:30:32 +02:00
James Cotton
c0ead372e1
INS: Change LED flashing to indicate connected.
2011-08-16 11:30:38 -05:00
James Cotton
71a1cdff62
PiOS SPI: For F2 need to have the same receive and transmit length when using
...
CRC. This wasn't the case on F1. With CRC the last byte of the buffer passed
to PIOS_SPI_TransferBlock is NOT USED. This is the case on both F1 and F2.
Also need to DeInit DMA before enabling or it doesn't enable successfully.
Finally added a timeout which sets a fail on the pios spi transfer in the case
that either of the dma channels fails to enable.
2011-08-16 11:29:15 -05:00
James Cotton
bcca705750
Disable beta hardware bmp085 driver until it's updated. Not necessary anyway
...
since on the INS.
2011-08-16 08:55:02 -05:00
James Cotton
35eef66bfe
OP-557: Add a UAVO access method to erase the entire flash chip. Normally not
...
needed by users because if too much changes I change the FS magic and trigger a
wipe.
Possibly the erase should require a particular "magic" object id value to
execute? This would make it harder to do manually through UAVOs though.
2011-08-15 10:33:27 -05:00
James Cotton
db9c73db45
Get SPI closer to working. The flags in the pios_config should match the
...
stream number, not channel number. Also DeInit DMA section in the init process
which makes debugging and init behavior more reliable.
2011-08-15 04:47:53 -05:00
James Cotton
86b652bbab
Merge branch 'next' into camera_stabilization
2011-08-14 18:07:57 -05:00
zedamota
e736b17cc4
Merge remote-tracking branch 'remotes/origin/next' into GCS_ChangesToUI-RuntimeCFG
...
Conflicts:
ground/openpilotgcs/src/plugins/config/config_cc_hw_widget.cpp
ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
2011-08-14 15:48:16 +01:00
Corvus Corax
b75653a226
PiOS.posix: small corrections and bugfixes to make pios_com_udp work correctly. Telemetry works now.
2011-08-14 14:21:54 +02:00
Corvus Corax
5b240a2675
PiOS.posix: port pios_udp and pios_com to "next"
2011-08-14 14:21:54 +02:00
Corvus Corax
8a47ade16b
flight/Libraries/fifo_buffer: Use platform independent <stdint.h> instead of "stm32xxx.h" to get definition of intX_t types
2011-08-14 14:21:54 +02:00
James Cotton
c5ed82086d
Configure the interrupt information before enabling. Still looping in IRQ so
...
configuration needs work.
2011-08-14 02:00:52 -05:00
James Cotton
02d5e27e93
Got SPI IRQ from mainboard firing
2011-08-14 01:44:44 -05:00
James Cotton
80c2d45d93
Fix the BMP085 interrupt handler and get it producing data. Driver needs some
...
work to abstract away the actual calculation of altitude from pressure and
temperature.
2011-08-13 20:49:07 -05:00
James Cotton
f766ba47aa
Increase the size of the eventdispatcher task and lower the maximum queue size.
2011-08-13 19:21:58 -05:00
James Cotton
a2b76adc33
Attitude: Do not start attitude estimation until accel data appears. This
...
fixes the NaN when AttitudeSettings not available.
2011-08-13 18:53:42 -05:00
James Cotton
ca413415a0
Code to make openocd 0.5.0 work. I'll keep this branch rebased on next.
2011-08-13 18:03:49 -05:00
James Cotton
62f51fc92d
Some improvements to the HMC5883 driver. Still getting funny values but I
...
suspect the chip at this point.
2011-08-13 11:20:32 -05:00
James Cotton
13e5f4123a
Reading gyro registers directly working.
2011-08-13 08:33:46 -05:00
James Cotton
e7990f5d43
Got a hint of some data with this code :)
2011-08-13 07:13:43 -05:00
James Cotton
f82e5dde33
Fix the EXTI IRQ handlers
2011-08-13 07:13:21 -05:00
James Cotton
e1f7a5003d
Fix up SPI DMA streams
2011-08-13 04:54:19 -05:00
James Cotton
8929e2f359
Update some of the DMA settings
2011-08-13 02:46:13 -05:00
James Cotton
77cca9ba30
Move EXTI handlers into other drivers
2011-08-13 01:29:17 -05:00
James Cotton
6d018c046e
Get BMA180 working. Need to move exti stuff into it until pios_exti
...
implemented properly
2011-08-13 01:10:33 -05:00
James Cotton
5619e33292
Bootloader now jumps to functioning code for INS. Consistent with AHRS code.
2011-08-12 22:52:47 -05:00
James Cotton
6529b8360f
Trying to get linker system working for INS
2011-08-12 21:28:02 -05:00
James Cotton
e993fae463
Fix bootloader
2011-08-12 04:32:02 -05:00
James Cotton
e57f774bb8
F2 INS compiles now
2011-08-12 04:30:14 -05:00
James Cotton
1d1f351233
Pios Delay: Add function for measuring time difference between two cycle counts
2011-08-12 04:29:53 -05:00
James Cotton
b3b4fcd007
Fix linker script and get rid of dead code
2011-08-12 03:44:55 -05:00
James Cotton
f247112090
PiOS F2: Move IMU3000 to device dependent :(. Now they all are. Need to
...
abstract as much as possible out since init is almost identicalc and protocol
COULD be device independent.
2011-08-12 03:38:45 -05:00
James Cotton
8c1dd7b929
Make BMP085 driver device dependent and update to new driver style.
2011-08-12 03:38:45 -05:00
James Cotton
9d76efa2aa
Move BMA180 driver to common architecture style.
2011-08-12 03:38:45 -05:00
James Cotton
1dc08e5cf7
F2 PiOS: Small fix to hmc5883 driver
2011-08-12 03:38:44 -05:00
James Cotton
ba413d5dad
F2 StdPeriph: Make the StdPeriph take in config parameters as const.
...
Unfortunately they don't do this upstream :(
2011-08-12 03:38:40 -05:00
James Cotton
ef0cdae622
PiOS F2: Remove clock initialization from usart since it is in pios_sys.c
2011-08-12 02:28:02 -05:00
James Cotton
6310f46705
HMC5883: Update driver for F2. Move to STM32F2xx directory since it is device
...
dependent. Abstract configuration out of board.h file into a standard board.c
structure.
2011-08-12 02:26:51 -05:00
James Cotton
784c7b2646
Merge branch 'next' into ins
2011-08-11 21:52:10 -05:00
James Cotton
ec4e23aff9
Camera Stabilization: Bound outputs to [-1,1] although this should be redundant
...
with checks in actuator.
2011-08-11 14:34:38 -05:00
James Cotton
9c7799dfe6
UAVObject Init: Get rid of deprecated linker init code
2011-08-10 22:48:42 -05:00
James Cotton
c8313d7b3e
Add the camera stabilization files to the Pro build. Not functional though.
2011-08-10 22:31:38 -05:00
James Cotton
bbe3c1533a
Merge branch 'next' into camera_stabilization
2011-08-10 21:57:45 -05:00
James Cotton
ab288e95ab
Stabilization: Small patch so that by default the integral is zeroed while
...
throttle is low (good for quads) but can be disabled (good for planes and also
testing helis).
2011-08-10 03:51:46 -05:00
James Cotton
f23eaa8273
Make the Actuator pull from the CameraDesired fields
2011-08-09 21:47:42 -05:00
James Cotton
f11aa80444
CameraStabilization: Make the CameraStabilization module put the desired
...
position into another object (will help with configuration).
2011-08-09 20:45:38 -05:00
James Cotton
c4e272b9ad
Merge branch 'next' into camera_stabilization
2011-08-09 20:16:45 -05:00
James Cotton
0c2c48bee6
F2 PiOS: More changes for spi to work (not completed)
2011-08-09 12:59:10 -05:00
James Cotton
a097ff784b
F2 PiOS: Getting the I2C driver working again (copying changes from Zippe,
...
thanks again man!)
2011-08-09 12:58:46 -05:00
James Cotton
8be9ac9cc9
PiOS: Move driver out of common directory since it makes calls to configure the
...
EXTI system.
2011-08-09 12:51:26 -05:00
James Cotton
d78450eae8
Move some of the F2 defines into the makefile to make them global. Fixes some
...
issues with grabbing the wrong stm32 configuration file.
2011-08-09 01:19:05 -05:00
James Cotton
27213c7fd9
F2 PiOS USART: Update to the new driver format for coms
2011-08-09 01:18:25 -05:00
James Cotton
ec2121bca8
Attitude: Keep first element of quaternion positive
2011-08-08 21:16:04 -05:00
James Cotton
d23e13716b
dos2unix: fifo_buffer
2011-08-08 08:37:14 -05:00
James Cotton
479ba7c21f
OP-378 INS: Continue getting F2 INS to compile
2011-08-08 08:36:40 -05:00
sambas
9f35b6939c
Bind IO fix
2011-08-07 10:10:52 +03:00
James Cotton
558bdddeaf
INS: Almost got Bootloader compiling *sigh*
2011-08-06 21:27:29 -05:00
James Cotton
a0d77faf4b
PiOS: Move pios_iap out of common. It is STM32F1x specific. Created an
...
STM32F2xx stub version. This needs cleaning up - there is some common code,
most of which can probably move to the bl_helper function.
2011-08-06 20:24:07 -05:00
James Cotton
f23ec059fe
dos2unix
2011-08-06 19:53:46 -05:00
James Cotton
1ccb9a1947
Some changes to BL to get running on F2. Also disables it for now (flash
...
interface is different).
2011-08-06 19:46:41 -05:00
James Cotton
d1c9ac0705
PiOS F2: Commit the F2 port of PiOS from Zippe. Thanks for doing all the hard
...
work man :-D
2011-08-06 19:36:56 -05:00
James Cotton
7720f9ff09
Add F2 support for the new OpenOCD for newer targets. Requires compiling
...
OpenOCD from repo.
2011-08-06 18:21:21 -05:00
James Cotton
0bba13a0e9
Merge branch 'next' into ins
...
Conflicts:
flight/INS/Makefile
flight/INS/pios_board.c
flight/Modules/Altitude/altitude.c
flight/PiOS/Boards/STM3210E_INS.h
flight/PiOS/STM32F10x/link_STM3210E_INS_BL_sections.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_HD_BL.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_HD_NB.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_memory.ld
flight/PiOS/STM32F10x/link_STM3210E_INS_sections.ld
flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj
2011-08-06 17:25:56 -05:00
sambas
1e67b5e3b5
DSMx_binder, hw setting 0 disabled, 1-10 bind pulses. Manual disable after successful bind. Only for flexiport.
2011-08-06 22:16:47 +03:00
James Cotton
fd86c25b49
Make sure OP compiles with new object init structure.
2011-08-04 15:01:54 -05:00
sambas
a454cf844b
DX8 support, BIND3 only
2011-08-04 19:20:05 +03:00
James Cotton
a592e7d398
ManualControlSettings must be also initialized in pios_board.c
2011-08-04 07:47:50 -05:00
James Cotton
bac7836318
Revert "uavobj: shrink metadata struct to save RAM". I was premature merging
...
this to next as it changes the on-the-wire representation and thus doesn't
allow GCS to set the metadata.
This reverts commit a641cd7956
.
2011-08-04 07:17:36 -05:00
Stacey Sheldon
a641cd7956
uavobj: shrink metadata struct to save RAM
...
This update saves 448 bytes of RAM with the current
crop of UAVObjects. It reduces a 19 byte struct to
8 bytes.
Note: This also introduces a limit of 65.534s for the
update periods.
2011-08-03 00:00:50 -04:00
Stacey Sheldon
90b2625deb
rcvractivity: Add tracking of Rx channel activity
2011-08-02 01:27:37 -04:00
Stacey Sheldon
06cdeb7b61
rcvr: support multiple simultaneous receivers
...
Now also supports multiple instances of the Spektrum driver.
These are configured as Spektrum1 and Spektrum2.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
829b8b83f6
rcvr: Add GCS receiver driver for rcvr via telemetry
...
This allows the GCS to emulate a receiver device via the
telemetry link.
Select "GCS" as your input type in the manualcontrol config
screen and calibrate it as normal.
Note: The expected values for the channels are in microseconds
just like a PWM or PPM input device. The channel values
are validated against minimum/maximum pulse lengths just
like normal receivers.
2011-08-02 01:22:04 -04:00
Stacey Sheldon
2f79e4fa76
Merge remote branch 'origin/stac/refactor-usart-com' into next
2011-07-31 09:41:06 -04:00
James Cotton
035b4103c4
Need to initialize the HwSettings before using them.
2011-07-31 09:42:15 +09:00
James Cotton
c5bf0ac657
Merge branch 'stac/refactor-usart-com' into camera_stabilization
2011-07-31 09:13:37 +09:00
James Cotton
568ea13471
Merge branch 'next' into stac/refactor-usart-com
2011-07-31 09:13:27 +09:00
Stacey Sheldon
6b1ec9a54e
bl: fix LED pwm computation with new stopwatch
2011-07-30 16:59:57 -04:00
James Cotton
3df730c64f
Merge branch 'stac/refactor-usart-com' into camera_stabilization
2011-07-30 13:38:43 +09:00
James Cotton
387a22398e
Make it possible to optionally enable the CameraStab module
2011-07-30 12:08:47 +09:00
Stacey Sheldon
8c0b60099f
rcvr: don't init spektrum and sbus rcvrs twice
2011-07-29 22:59:50 -04:00
James Cotton
cb9c6dfb5e
Change the sequencing of telemetry starting to make sure all the objects that
...
were registered in an initialize and then enumerated by telemetry
2011-07-30 11:31:45 +09:00
James Cotton
132e19d613
Change the makefiles - always compile the optional objects but the flag
...
indicates whether they are registered
2011-07-30 11:29:29 +09:00
James Cotton
ae67c51632
Register some missing objects with their modules
2011-07-30 11:28:21 +09:00
James Cotton
2e5a36a4db
Merge branch 'stac/refactor-usart-com' into camera_stabilization
2011-07-30 10:55:16 +09:00
James Cotton
b2d2114ede
Disable auto registration of all objects. Later the uavobj_init linker scripts
...
should be deleted to not carry around old code.
2011-07-30 10:24:46 +09:00
James Cotton
23e9b56839
Dos2unix flight/CopterControl/System/coptercontrol.c
2011-07-30 10:06:35 +09:00
James Cotton
96c2d24253
Merge branch 'next' into camera_stabilization
...
Conflicts:
flight/CopterControl/Makefile
flight/CopterControl/System/coptercontrol.c
flight/Modules/Actuator/actuator.c
flight/Modules/GPS/GPS.c
flight/Modules/ManualControl/manualcontrol.c
flight/Modules/Stabilization/stabilization.c
flight/Modules/System/systemmod.c
shared/uavobjectdefinition/manualcontrolsettings.xml
shared/uavobjectdefinition/stabilizationdesired.xml
2011-07-30 10:06:10 +09:00
James Cotton
333ab645ec
Dos2unix manualcontrol.c to facilitate merging
2011-07-30 09:55:02 +09:00
Stacey Sheldon
c2fb0d8b43
com: allow run-time allocation of buffers
2011-07-29 15:33:14 -04:00
Stacey Sheldon
8b0415d905
bl: alternate stopwatch for small bootloaders
...
The small bootloaders (CC and PipX) are out of flash space
so their stopwatch implementation has been swapped out for
one based on the DELAY clock that takes about 500 bytes less
of code space.
Identical functionality is preserved.
2011-07-29 15:33:01 -04:00
Stacey Sheldon
13f9b0e09d
Merge remote branch 'origin/OP-498_jwhitlock_add-ppm-to-cc' into next
2011-07-28 22:15:01 -04:00
Stacey Sheldon
a3888ecd48
usart: ensure callbacks are bound in the correct order
2011-07-27 23:21:39 -04:00
Stacey Sheldon
5f8760a55c
com: Move buffering out of USART/HID layer and into COM layer
...
This allows the spektrum and sbus receiver drivers to bind
directly to the usart layer using a properly exported API
rather than overriding the interrupt handler.
Bytes are now pushed directly from the usart layer into the
com layer without any buffering. The com layer performs all
of the buffering.
A further benefit from this approach is that we can put all
blocking/non-blocking behaviour into the COM layer and not
in the underlying drivers.
Misc related changes:
- Remove obsolete .handler field from irq configs
- Adapt all users of PIOS_COM_* functions to new API
- Fixup callers of PIOS_USB_HID_Init()
2011-07-27 19:45:38 -04:00
James
60136f0464
Add support for PPM transmitters up to 12 channels. Small array indexing issue in PIOS_PPM_Get.
2011-07-27 00:33:32 +01:00
Stacey Sheldon
b70d5ae148
Merge remote branch 'origin/msmith-delay-timer' into next
2011-07-26 09:04:06 -04:00
Mike Smith
df5569c758
Fix a stupid off-by-one that prevented this code from working.
...
Update to use 32-bit microsecond values.
Remove PIOS_DELAY_DiffuS per consensus (caller can do it easily themselves).
Update the core delay logic per Stac's suggestion to a version that is
resistant to various overflows.
2011-07-25 20:55:48 -07:00
James Cotton
056db1cdda
Merge branch 'bugfix-flight' into next
2011-07-24 07:09:42 +09:00
James Whitlock
6a6ec41809
Build fixes
2011-07-23 22:10:17 +01:00
Mike Smith
480f07a264
Typo fix.
2011-07-23 13:58:56 -07:00
Mike Smith
a89092e275
Update to use the delay API to get entropy rather than reading the timer directly.
2011-07-23 13:53:42 -07:00
Mike Smith
0df3bb2c37
Restore functions lost due to inept merging, and refactor to take advantage of them.
...
Address the following review feedback items:
- use stdint types
- avoid the use of magic numbers (define CYCCNTENA)
- remove expository comment about sneakiness and corresponding code, replace with something simpler based on the API
- remove commented/#if 0 code
2011-07-23 13:53:16 -07:00
Mike Smith
dae4b44100
Remove commented code that refers to the now-obsolete PIOS_DELAY_TIMER
2011-07-23 13:49:36 -07:00
Mike Smith
c3267a3b53
Remove PIOS_DELAY_TIMER definitions from configuration files, as there is no longer a delay timer to configure.
2011-07-23 13:48:40 -07:00
James Whitlock
11c568ec50
Add in a PPM input frame size tracker.
...
Move update of capture values to start of new frame.
Fix an issue with setting channels to invalid.
2011-07-23 01:38:51 +01:00
James Whitlock
7a58b4cceb
A quick clean of ppm code to remove white space and duplicated comments
2011-07-23 01:32:57 +01:00
James Cotton
abee34e551
Getting posix simulation compatible with init and receiver changes
2011-07-22 07:50:06 -05:00
Mike Smith
6bc5339015
Change the pios_delay implementation to use the CPU cycle counter rather than burning a timer.
2011-07-21 23:21:26 -07:00
Stacey Sheldon
a7cce25252
usart: fix lower usarts clobbering higher ones
...
The break statements are clearly missing from this
switch statement.
This would lead to problems when using more than one
USART on CC.
2011-07-22 00:30:49 -04:00
James Whitlock
7ce5daef8f
Clean up of PPM code in master.
2011-07-19 20:46:24 -04:00
Stacey Sheldon
8dbace5ee2
Merge branch 'rcvr_mem_reduction'
...
Conflicts:
flight/PiOS/STM32F10x/link_STM32103CB_CC_Rev1_sections.ld
2011-07-17 17:14:40 -04:00
James Cotton
2da65014c7
Fix typo in servo doxygen header
2011-07-16 03:25:33 -05:00
James Cotton
14370b5ac4
Reenable serial telemetry on OP main board
2011-07-15 19:10:00 -05:00
James Cotton
b83f731c03
Remove all references to vTaskDelay in the flash code as it can run before the
...
FreeRTOS scheduler
Also increaes init stack size from 0x80 to 0x100
2011-07-15 18:16:16 -05:00
James Cotton
01b62cf98f
Fix a typo
2011-07-15 15:30:10 -05:00
James Cotton
72e80d407c
Change the magic value in the object file table. Forces all objects to be
...
erased since all ids are changing - this frees up memory.
2011-07-15 11:11:29 -05:00
James Cotton
d41260d54c
Make the stabilization settings query correctly now by increasing the TX buffer
...
on the CC side to 256 bytes instead of 128 to support large objects (max object
size is 256 bytes)
2011-07-15 10:40:21 -05:00
James Cotton
3d35e249c8
Merge branch 'master' into bugfix-flight
2011-07-15 10:33:54 -05:00
Stacey Sheldon
6580462916
rcvr: specify drivers for groups of channels
...
Each channel was previously tracking a separate driver.
Now, channels are grouped within a channel group to save
RAM used for tracking and to better reflect how channels
are actually mapped.
2011-07-14 23:22:42 -04:00
Stacey Sheldon
442d56c1c5
linker: Add section to record unused RAM
...
Note that this section will be absorbed by the heap at runtime.
2011-07-14 23:22:42 -04:00
zedamota
b005346fab
Windows eclipse workspace. Sorry for the mess, all is good know...I think
2011-07-14 18:16:38 +01:00
zedamota
e559582bb8
Eclipse workspace update
2011-07-14 17:09:58 +01:00
zedamota
c22bc2a675
Merge branch 'bugfix-flight' of ssh://git.openpilot.org/OpenPilot into bugfix-flight
2011-07-14 14:07:28 +01:00
zedamota
16e28900d0
Created new eclipse workspace for windows
2011-07-14 13:34:34 +01:00
sambas
18a5465246
Bugfix: CC flexiport spektrum config
...
Working spektrum bind routine, depending your TX try BIND_PULSES 3,5,7,9 (5 works with DX7)
Boot process takes too long on MB so bind command misses the window (20-140ms).
2011-07-14 14:43:26 +03:00
Mathieu Rondonneau
612a439199
OP-423: simplify the MODULE_INITCALL macro and remove the ordering loops
2011-07-12 20:44:32 -07:00
James Cotton
0aec3b592c
Changing stabilization so that the PIDs are zeroed when not armed, but NOT when
...
the throttle is < 0. This will make things like axis-lock work while armed
without throttle. HOWEVER don't hold your stick in the arming position for a
long time or you can wind up the integrals now.
2011-07-12 14:35:32 -05:00
James Cotton
2c7cfe435f
Somehow this task runs quite a few times at the beginning so dT was going to
...
zero and making the attitude get NaN. Wrote recovery code for that condition
(should never occur) and also force minimum dT to 1 ms (also shouldn't occur)
2011-07-12 14:18:19 -05:00
James Cotton
53ca934b2b
Merge branch 'heli_stabilization'
...
Conflicts:
flight/CopterControl/System/inc/pios_config.h
flight/Modules/Attitude/attitude.c
flight/Modules/ManualControl/manualcontrol.c
flight/Modules/Stabilization/stabilization.c
2011-07-12 13:28:20 -05:00
James Cotton
9e94f9fee9
Fix typo from SISE to SIZE
2011-07-12 12:48:06 -05:00
James Cotton
2fe7ee40b1
Merge branch 'OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint'
2011-07-12 12:44:59 -05:00
James Cotton
c33d3057cc
Dos2unix evendispatcher file
2011-07-12 12:36:20 -05:00
James Cotton
15a2b85729
For OpenPilot use the minimal stack size (512 words) for eventdispatcher as
...
this is necessary for object saving. Creating a new define to override this
for CopterControl down to 96.
2011-07-12 12:34:40 -05:00
James Cotton
557771d3ef
Change to OP MB code to make it work with input changes. Previously tried to
...
register every possible input channel. Slipped through review because
"obviously correct" change fixed previous bug masking this. Woohoo testing :)
2011-07-12 11:41:21 -05:00
James Cotton
59798701a2
Merge branch 'master' into bugfix-flight
...
Conflicts:
flight/CopterControl/System/inc/pios_config.h
2011-07-12 11:40:47 -05:00
James Cotton
3b3b76aa46
Revert "Drop 8 bytes per PID of unecessary information. Also trying to compute"
...
This reverts commit 9c1e523260
.
2011-07-12 11:37:36 -05:00
Mathieu Rondonneau
d38f6167e3
OP-423:
...
Also reduce heap has it does not fit in SRAM anymore (not with current compiler).
(that's ok since if there is more space available, it will be reclaimed).
Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint
Conflicts:
flight/CopterControl/System/inc/pios_config.h
flight/Modules/ManualControl/manualcontrol.c
2011-07-08 06:29:34 -07:00
Stacey Sheldon
b86ef4de82
bootcfg: fix incorrect bounds checking on rcvr registration
...
This was preventing any receivers from registering their
channels.
2011-07-07 23:59:12 -04:00
Stacey Sheldon
2e8d3a9be3
clean up cut/paste cruft
2011-07-07 23:02:09 -04:00
Stacey Sheldon
1f004ee896
ppm: port PPM driver onto new CC driver layers
...
This is a port of a work-in-progress by Sambas onto
the new driver infrastructure needed for boot-time
configuration.
PPM and PWM still don't coexist in a build but this
is closer.
2011-07-07 22:27:57 -04:00
Stacey Sheldon
226f095a2e
bootcfg: remove baudrate #defines for USARTs
...
The initial baud rates of each interface are now forced in the
board init code.
Any modules using USARTs should have fields added to
their settings object to allow the user to change the
baud rate from the default by using the COM layer APIs.
Developers requiring custom baud rates before the settings
objects are in place should locally edit the cfg structs
to specify the desired baud rates.
2011-07-06 23:03:54 -04:00
Stacey Sheldon
a8787ee015
bootcfg: Add support for selecting S.Bus receivers in inputtype
2011-07-06 22:38:23 -04:00
Stacey Sheldon
bf39ab7a22
remove left-over comment about compile time configs
...
No functional changes.
2011-07-06 22:36:15 -04:00
Stacey Sheldon
e82539c654
bootcfg: additional validation during board init
2011-07-06 22:34:59 -04:00
Mathieu Rondonneau
36f28f8037
OP-423: Fixing heap2 (puting back bytes from the post heap stack (used during init) back into the free list).
...
Tested this heap2 at runtime with CC and new compiler since old one (current) triggers strict alliasing error.
That's ok since strict aliasing is disabled on OP, and CC only use heap1.
2011-07-05 21:45:39 -07:00
James Cotton
2d995dc2f7
OP-539: Don't call the gyro setting callback during init because it clears the
...
gyro bias estimation.
2011-07-05 22:27:03 -05:00
Mathieu Rondonneau
9b9b5a1367
OP-423: remove ';' at the end of macro
2011-07-05 19:44:54 -07:00
Stacey Sheldon
dbf7574946
bootcfg: use UAVobj to control boot-time HW config
...
This should mark an end to the compile-time selection of HW
configurations.
Minor changes in board initialization for all platforms:
- Most config structs are marked static to prevent badly written
drivers from directly referring to config data.
- Adapt to changes in .irq fields in config data.
- Adapt to changes in USART IRQ handling.
Major changes in board initialization for CC:
- Use HwSettings UAVObj to decide which drivers to attach to
the "main" port and the flexi port, and select the appropriate
device configuration data.
- HwSettings allows choosing between Disabled, Telemetry, SBUS,
Spektrum,GPS, and I2C for each of the two ports.
- Use ManualControlSettings.InputMode to init/configure the
appropriate receiver module, and register its available rx channels
with the PIOS_RCVR layer. Can choose between PWM, Spektrum and PPM
at board init time. PPM driver is broken, and SBUS will work once
it is added to this UAVObj as an option.
- CC build now includes code for SBUS, Spektrum and PWM receivers in
every firmware image.
PIOS_USART driver:
- Now handles its own low-level IRQs internally
- If NULL upper-level IRQ handler is bound in at board init time
then rx/tx is satisfied by internal PIOS_USART buffered IO routines
which are (typically) attached to the COM layer.
- If an alternate upper-level IRQ handler is bound in at board init
then that handler is called and expected to clear down the USART
IRQ sources. This is used by Spektrum and SBUS drivers.
PIOS_SBUS and PIOS_SPEKTRUM drivers:
- Improved data/API hiding
- No longer assume they know where their config data is stored which
allows for boot-time alternate configurations for the driver.
- Now registers an upper-level IRQ handlerwith the USART layer to
decouple the driver from which USART it is actually attached to.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
6415fc84a5
rtc: allow registration of callbacks on RTC tick
...
This separates the RTC device and interrupt handling
from the devices that rely on the tick notifications.
Drivers can now register tick notification functions
that will be called on each RTC tick event.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
740b5f1584
rcvr: convert PWM, PPM, SBUS and Spektrum to use PIOS_RCVR
...
All receivers now fall under the same driver API provided
by pios_rcvr.c.
This is part of a larger sequence of commits that will
switch the receiver selection over to boot time dynamic
configuration via UAVObjects.
2011-07-05 22:03:25 -04:00
Stacey Sheldon
e77795dc28
rcvr: add generic driver API for receivers
...
Will be used to collapse PWM, PPM, Spektrum and SBUS so we
can choose between them at boot time instead of at compile time.
2011-07-05 22:02:47 -04:00
Stacey Sheldon
0c4facac46
heap: reduce stack size on IDLE and Event tasks
...
The FreeRTOS IDLE task was using 512 bytes of stack.
The UAVObject Event task was also using 512 bytes of stack.
Both have been reduced, recovering 400+ bytes of heap.
2011-07-05 20:13:00 -04:00
James Cotton
010f0255a4
OP-543: When the magic header on file system is bad at init, read multiple
...
times. It's not written as cleanly as I'd like but works for wiping when magic
value changes. Testing will reveal if this stops the lost settings.
2011-07-04 21:44:41 -05:00
James Cotton
ad8876c62a
OP-193: Weak leveling variant on rate mode. Slowly will return to level.
2011-07-04 20:44:55 -05:00
Mathieu Rondonneau
f864d723dd
OP-423: Cleanup and remove recently added *_BL.S startup file.
2011-07-03 18:45:02 -07:00
Mathieu Rondonneau
2daa36aad9
OP-423: Remove *_BL.S
2011-07-03 13:14:42 -07:00
Mathieu Rondonneau
b3740ec025
OP-423: Clean startup and add weak function call for stack swap.
2011-07-03 12:43:38 -07:00
James Cotton
46ae7eb17b
Merge remote-tracking branch 'origin/bugfix-ground' into heli_stabilization
2011-06-30 19:40:22 -05:00
James Cotton
39e646ae1d
Make the rates all work properly in axis lock
2011-06-30 19:38:52 -05:00
zedamota
567e3ffcad
OP-542 Board resets with new Uploader
...
IAP module now checks magic value
2011-06-30 12:17:27 +01:00
James Cotton
a7206361d2
Slightly different way to respond to sticks in axis lock that is much more
...
responsive and avoids overshoot.
2011-06-26 21:59:54 -05:00
Mathieu Rondonneau
fbf0b021c7
OP-423: Replace hardcoded value and get value from memory section (change from code review)
2011-06-25 20:06:33 -07:00
Corvus Corax
fc62f6e522
Module initialisation rework ported to PiOS.posix
2011-06-26 00:25:06 +02:00
Mathieu Rondonneau
6683ce8570
OP-423: Make it more obvious that MODULE_TASKCREATE_ALL and MODULE_INITIALIZE_ALL are macro (for now):
...
- remove the ;
- also encapsulate the macro by {} in his own scope.
2011-06-25 11:40:01 -07:00
James Cotton
4c0245281d
Now we store the gyro bias avoid quashing the initialization correction.
2011-06-25 12:32:06 -05:00
Mathieu Rondonneau
de55c56427
OP-423: Change capital on macro to be uppercase for consistency.
2011-06-24 22:03:03 -07:00
James Cotton
dedbcbfceb
Correct nasty bug on range checking for max rate and use the axis lock rate
...
desired when in that mode.
2011-06-24 11:30:28 -05:00
James Cotton
e6ad21d881
Make gyro bias in deg/s * 100 to calibrate more precisely.
2011-06-24 10:51:07 -05:00
James Cotton
5127d1e7ba
Change actuator memory to 900 bytes since it uses less now.
2011-06-24 10:49:36 -05:00
James Cotton
038f955cb1
OP-410 OP-333: Axis lock (heading hold) implemented
2011-06-24 10:38:26 -05:00
James Cotton
ab7ff56d96
Compute initial gyro bias while calibrating to speed up convergence
2011-06-24 10:38:26 -05:00
James Cotton
c0eff41dc6
OP-410 OP-333: Created an Axis-lock setting for stabilization
2011-06-24 10:38:26 -05:00
James Cotton
0a4bbcc12e
Added a field for initial gyro bias to speed up initialization.
2011-06-24 10:38:26 -05:00
James Cotton
28501842c3
Expose the rate D term which in simulations seems to help damp oscillations for
...
high RateKp terms. However it might be sensitive to gyro noise (vibrations).
In addition it is mathematically similar to lead shapign so probably only use
one or the other.
2011-06-24 10:38:25 -05:00
James Cotton
a09642675c
Tweak the integral calculation so it is scaled in ms internally. This avoids a
...
loss of precision on the accumulation.
2011-06-24 10:38:25 -05:00
James Cotton
373689207a
Add a 1-tap IIR filter into the gyros in the feedback path. This will make the
...
stabilization output a bit more resilient to the high frequency noise from
gyros. However this value shouldn't be too high as it will increase the phase
delay of the feedback loop and decrease stability. Default is 5 ms.
Note: this resests the stabilizationsettings object. Sorry guys.
2011-06-24 10:38:25 -05:00
Stacey Sheldon
d1104d3fdc
alarms: lower heap warning and critical thresholds for CC
...
Free heap on CC is currently 160 bytes so the current thresholds
were causing a continual alarm condition, thus preventing arming.
2011-06-24 10:38:25 -05:00
Mathieu Rondonneau
dcd2774103
OP-423 Fix some comment from code review:
...
- update example module
- use module init macro for POSIX and WIN to make code cleaner.
2011-06-24 06:59:51 -07:00
Corvus Corax
f52f6d30c6
VTalk (flight): Buffers allocated dynamically with size calculated by UAVObjGenerator. Support for tx packet sizes < object size.i
2011-06-24 02:08:20 +02:00
James Cotton
f6312c7798
OP-410 OP-333: Created an Axis-lock setting for stabilization
2011-06-23 14:51:18 -05:00
James Cotton
9aba787b02
OP-193: Check for instance read success was backwards
2011-06-23 03:01:37 -05:00
James Cotton
368d5b649a
OP-193: Output mixer should read from up to 6 accessory channels (may add more
...
in future).
2011-06-23 01:47:55 -05:00
James Cotton
493fcaef2a
OP-193 OP-511: Add settings to scale the camera input output range
2011-06-23 00:47:27 -05:00
Mathieu Rondonneau
703919daf4
OP-423 Reduce IRQ stack limits (CC onlyt)
2011-06-22 06:32:27 -07:00
Mathieu Rondonneau
0ff5e9a46f
Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint
2011-06-21 22:02:13 -07:00
James Cotton
9c1e523260
Drop 8 bytes per PID of unecessary information. Also trying to compute
...
integral in ms instead of seconds to avoid rounding errors.
2011-06-21 17:54:03 -05:00
James Cotton
8976d22fad
Merge remote-tracking branch 'origin/OP-159_os_sbus'
2011-06-21 17:51:22 -05:00
Oleg Semyonov
fba201c8b3
usart: move default port numbers from pios_config.h to pios_board.c
2011-06-22 01:32:18 +03:00
Mathieu Rondonneau
74e5e2015e
Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint
2011-06-20 20:28:12 -07:00
Stacey Sheldon
80709f356f
alarms: lower heap warning and critical thresholds for CC
...
Free heap on CC is currently 160 bytes so the current thresholds
were causing a continual alarm condition, thus preventing arming.
2011-06-20 22:31:05 -04:00
unknown
9e632b532e
Fix win32 SiTL by adding PiOS CRC and another missing function.
2011-06-20 15:48:05 -04:00
Mathieu Rondonneau
fc1e3f574c
OP-423: Split task create and module init in order to postpone task creation once the full heap is available.
...
Also implement some ordering (quite ugly still) in the module init and task creation order so we can decide which module to start/init first
and which module to start/init last.
This will be replaced/adapter with the uavobject list later (once it's implemented).
reserving some space for module init and task create parameters to customize module/task creation (this will be usefull once we get the list and customization from customer).
Changes have been made for OP and CC. Tested comped with CC,OP, sim_posix.
Only ran on bench with CC for couple of minutes (code increase expected but no dropping of stack which is good).
This gives task creation at the time wherethe all heap is available.
2011-06-19 22:35:40 -07:00
James Cotton
17fa227d1f
Fixed typo, thanks Os
2011-06-19 16:51:54 -05:00
Oleg Semyonov
6272210df7
sbus: some code cleanup (no functional changes)
2011-06-19 14:30:13 +03:00
Mathieu Rondonneau
2b11395a67
OP-423 just move stack from systemmod back to heap (200 bytes) that are not needed anymore.
2011-06-18 17:31:29 -07:00
Mathieu Rondonneau
5e3e7cc4e3
OP-423 Fix issue with init not properly started in the right order endup up object thinking other where not init.
2011-06-18 17:28:37 -07:00
Oleg Semyonov
59da5055cd
usart: make USART ports configurable from make command line
...
For CopterControl the following make options are available:
USE_TELEMETRY=[YES|NO|1|3] (default is YES, USART1)
USE_GPS=[YES|NO|1|3] (default is NO, USART3)
USE_SPEKTRUM=[YES|NO|1|3] (default is NO, USART3)
USE_SBUS=[YES|NO|1] (default is NO, USART1 only)
2011-06-18 23:54:32 +03:00
Oleg Semyonov
311902f1f2
sbus: implemented S.Bus stream decoding
2011-06-18 23:19:57 +03:00
James Cotton
724016ffb0
When erasing flash at the end start flashing LED to indicate it is done
2011-06-18 14:32:09 -05:00
James Cotton
2218ff6fe9
Change to object template so when they are already registered it doesn't
...
initialize them a second time (which causes the handle to get lost)
2011-06-18 14:21:14 -05:00
James Cotton
5044ea36de
Start initializing objects in the modules that consume them. Shouldn't affect
...
OP yet but not tested.
2011-06-18 14:20:51 -05:00
Mathieu Rondonneau
b67a38661e
OP-423: merge master into that branch, resolve conflicts and test with CC and bl_CC
...
heap reamining is low (about 500) but stacks can be ajusted (specially the 200 bytes from system) to give the level close to 1Ko if needed.
Merge branch 'master' into OP-423_Mathieu_Change_Init_To_Reduce_Memory_Footprint
Conflicts:
flight/CopterControl/System/inc/FreeRTOSConfig.h
flight/CopterControl/System/inc/pios_config.h
2011-06-17 19:04:09 -07:00
James Cotton
9720a8444f
Make a few things optional if they are mostly for diagnostics to keep memory
...
down
2011-06-17 21:00:21 -05:00
Mathieu Rondonneau
693c6bc5b0
OP-423: fix bl and bu, also fix compiler problems encountered with make all
2011-06-17 18:54:25 -07:00
Mathieu Rondonneau
65cf467ca4
OP-423: move the module initialize funtion into a specific section for OP and CC.
...
- create linker section for those <module>Initialize()
- later this list will incorporate parameters as well. (this probably will be more a OP feature to swap/remove/delete module on the fly.
- this is not done at compile time anymore by Makefile.
- this will allow us to have control on the module start at run-time (not implemented but build the ground for it).
- this simplify the startup (Part of code re-org).
- this change does not affect sim_posix and win32 (since they don't need that)
- ensure it's compiling for PiOS.posix
- port to PiOS.win32 but not tested (not compiled)
- tested on CC
- compile on OP.
- this free ~200 bytes.
- current avalable bytes (is we keep the same remaining bytes on the stack than before) is easily passed the 1.2Ko mark on CC with new gcc (4.5.2)
- this does not include init-reorg for each module (I still think more can be freed)
2011-06-16 22:13:19 -07:00
Corvus Corax
926246b402
UAVTalk: Make UAVTalk object oriented, allowing multiple UAVTalk instances
2011-06-16 16:35:37 +02:00
Oleg Semyonov
aeda61d252
usart: serial telemetry can be disabled to free USART
...
It was tested being merged with OP-472_CorvusCorax_CopterControl-Guidance_v3
branch, Spektrum on USART3 and GPS on USART1 and seems to work.
Currently defaults mimic original behavior, that is, if USE_SPEKTRUM
is not defined - define USE_PWM and USE_GPS. Thsi should be refactored
later to make it configurable from the Makefile.
Also it was not ported to the OP MB: it currently does not support the
S.Bus hardware and still has original behavior with the patch. But this
is one more step to dynamic configuration of ports.
2011-06-16 15:06:01 +03:00
Mathieu Rondonneau
e8cdf22427
OP-423 Port to OP: Claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
...
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...
also move address into linker (CC and OP)
2011-06-15 18:54:35 -07:00
Oleg Semyonov
50e819192b
usart: make CC USART ports compile-time configurable
...
TODO: This should be dynamic in the future.
But for now define any compatile combination of:
USE_I2C (shared with USART3)
USE_TELEMETRY
USE_GPS
USE_SPEKTRUM
USE_SBUS (USART1 only, it needs an invertor)
and optionally define PIOS_PORT_* to USART port numbers
Defaults are:
#define PIOS_PORT_TELEMETRY 1
#define PIOS_PORT_GPS 3
#define PIOS_PORT_SPEKTRUM 3
#define PIOS_PORT_SBUS 1
#define USE_TELEMETRY
#define USE_GPS
Telemetry, GPS and PWM input are enabled by default.
2011-06-15 22:37:44 +03:00
Oleg Semyonov
d8201ec45b
sbus: provide a stub based on Spektrum driver (for CC only)
2011-06-15 22:35:21 +03:00
James Cotton
7d7d03cfd0
OP-193 OP-511: Basic code for camera stabilization. Currently tune range with
...
the servo endpoints and neutral.
2011-06-15 11:18:29 -05:00
Mathieu Rondonneau
ab4e15e9aa
OP-423 also claim (at run-time) the remaining un-used bytes (between heap and end of RAM) that are for data growth (needed at compile time).
...
CAREFULL: the heap section need to be the last section in RAM to avoid overwritting data...
Tested with GCC 4.5.2 this gives 1K of free bytes usable in heap right away (including the 200 bytes saved just by using the new gcc).
This does not include any code re-org yet!
2011-06-14 22:13:30 -07:00
Mathieu Rondonneau
3780de8d3e
OP-423 port to OP (heap2) the previous changes done in CC (heap1) (see c95b199166
)
...
I managed to test CC with heap2 changes and the init stack claimed back to heap once scheduler starts.
the changes of this commit are OP related (just cleanup on CC side):
Arch specific stuff (in reset vector) to hide this from portable code:
- switch back to MSP stack before starting the scheduler so that the sheduler can use the IRQ stack (when/if needed).
- call the C portable function in heap2 to claim some stack back (the number to claim is taken from linker file).
- start the scheduler from reset vector (I move this here from main because it make sense to not go back to C (so that I don't need to copy the rolled stack in case the sheduler returns). This make it more clean.
- Also I have added the call to the mem manager if sheduler return. that way, we don't reset indefinitely if memory runs out. We will go to this handler and figure things out (right now, it's just looping but at least not rebooting. Probably trap NMI would be better (later improvement).
2011-06-14 20:10:53 -07:00
James Cotton
144f36dfb7
Merge branch 'bugfix-flight'
2011-06-14 10:02:55 -05:00
Mathieu Rondonneau
c95b199166
OP-423 do the arch specific stuff (in reset vector) to hide this from portable code:
...
- switch back to MSP stack before starting the scheduler so that the sheduler can use the IRQ stack (when/if needed).
- call the C portable function in heap1 to claim some stack back (the number to claim is taken from linker file).
- start the scheduler from reset vector (I move this here from main because it make sense to not go back to C (so that I don't need to copy the rolled stack in case the sheduler returns). This make it more clean.
- Also I have added the call to the mem manager if sheduler return. that way, we don't reset indefinitely if memory runs out. We will go to this handler and figure things out (right now, it's just looping but at least not rebooting. Probably trap NMI would be better (later improvement).
The part missing for this part is the weak attribute for the function in heap1.c so that we don't have to update everything with empty stub.
I think the weak atrribute for C function called in assembly is arch dependent so I am not sure if this is possible (will look into it, maybe somebody outthere nows).
Right now, it's heap1 dependent and won't work with heap2. I will clean that up the next couple of days.
I did some test and it looks good.
this is without init code re-organization so we don't free as much as we will be it's good starts.
This compile with sim_posix (since it does not affect portable code) so this is really clean.
I only tested this with CC. I will port it for OP when I will work on heap2.
2011-06-13 21:49:17 -07:00
Mathieu Rondonneau
1f54e32ea9
OP-423 also add changes to OP. (I can not test it because I don't have a board so only compile test)
2011-06-13 17:10:14 -07:00
James Cotton
404c026188
Patch from Zippe to use cycle timer for CPU monitoring.
2011-06-13 00:24:30 -05:00
Mathieu Rondonneau
7598e898fa
OP-423 Step-1: split system stack and implement water mark for IRQstack:
...
- use IRQStack for ISRs (at begening of SRAM) (let's call it the irq stack)
- use end of heap for stack needed during initialization (let's call it the init stack).
- the systemStats in GCS indicate the remaining bytes in the IRQ stack (this is realy usefull to monitor our (nested) IRQs.
This is the base ground to provide as much memory as possible available at task creation time.
Next step is to re-organize the initialization in order to move all the init out of the thread's stacks onto the init stack.
This will provide as much memory as possible available at task creation time.
Basically the stack during initialization will be destroyed once the scheduler starts and dynamic alloc are made (since the init stack is at the end of the heap). We will need to make sure we don't clobber the heap during initialization otherwise this will lead to stack corruption.
2011-06-12 20:23:00 -07:00
James Cotton
0f5fe54329
FlashFS: Should clear the 0 sector when wiping flash chip, not 10 bytes in.
2011-06-11 22:31:51 -05:00
Oleg Semyonov
5d0c7fe42e
Merge branch 'master' into heli_improvements
2011-06-11 12:19:07 +03:00
Corvus Corax
a7841a523a
bugfix: forgot to add header file (pios.posix)
2011-06-10 22:04:54 +02:00
Corvus Corax
47a6643318
PiOS.posix: ported PiOS_CRC to PiOS.posix to fix compilation error on OpenPilot introduced by new dependency
2011-06-10 17:16:15 +02:00
James Cotton
4a59c03b0e
OP-493: Unfortuantely have to change stack alarms for this to work :(
2011-06-07 10:31:40 -05:00
James Cotton
bdc9094975
OP-493 OP-505 OP-511: Make up to 6 accessory channels so some can go from
...
ManualCommand to a camera module and some could go from that camera module to
output (i.e. mixing of inputs to pan tilt with stabilization)
2011-06-06 10:56:31 -05:00
James Cotton
1ecd244aff
OP-493 OP-505 OP-511: Fixed bug with the direct mapping where it looked at throttle curve
...
source instead of directly bypassing
2011-06-06 10:53:55 -05:00
James Cotton
6c6906d61e
OP-493: Switch to using Accessory0:2 to match the InstId
2011-06-05 15:38:58 -05:00
James Cotton
99b3a629a8
OP-493: Force three AccessoryDesired objects to always exist. Routing to
...
Mixing channel now works. However Accessory desired instances do not show up
in GCS.
2011-06-05 15:38:58 -05:00
James Cotton
a1336e4d03
OP-493: Make sure accessory desired is not a single instance object
2011-06-05 15:38:57 -05:00
James Cotton
8ebd6a83d6
OP-493: Add support to bypass the mixer and route accessory data straight to
...
outputs. Warning: This has no failsafes like arming. We should discuss if
this is appropriate.
In addition accessory objects can be routed throught the mixer for collective
or flaperon.
2011-06-05 15:38:57 -05:00
James Cotton
a1d60cb77d
OP-493: Use multiple instances when using multiple accessory channels
2011-06-05 15:38:57 -05:00
James Cotton
1365542103
OP-493: Populate the Accessory Desired from TX
2011-06-05 15:38:57 -05:00
James Cotton
4f47c06547
Merge branch 'saving_crc' into bugfix-flight
2011-06-05 15:37:44 -05:00
James Cotton
624baeda5c
Merge branch 'OP-423_Mathieu_GetSet_Uavobjects' into bugfix-flight
2011-06-05 09:48:22 -05:00