Stacey Sheldon
698ea8e86e
usb util: Add common utility functions for USB descriptors
...
Make a home for generic functions related to USB.
2012-05-19 16:14:10 -04:00
zedamota
eb83afdcf1
Working compliant VCP+HID descriptors for Windows.
2012-05-19 15:40:46 -04:00
James Cotton
848f1b0e29
For some reason the gyro needs 300 ms after reset in order to work after the
...
bootloader jumps to code. Nothing in datasheet to imply what.
2012-05-12 13:00:51 -05:00
Brian Webb
454144f46c
Pairing and saving settings working.
2012-05-06 20:47:21 -07:00
Brian Webb
3cf4fe6512
Reverted some USB changes.
2012-05-05 10:10:40 -07:00
Brian Webb
480371a43e
Resolving merge with origin/next
2012-05-05 09:53:54 -07:00
Brian Webb
e83fec0463
Merged latest origin/next.
2012-05-05 09:40:44 -07:00
Brian Webb
8da4b9c745
Merge remote-tracking branch 'origin/stac/pt-win-vcp-fix' into Brian-PipXtreme-V2
2012-05-02 06:42:30 -07:00
Brian Webb
1048eb7e2c
Added pios_eeprom for saving settings.
2012-04-28 19:29:25 -07:00
James Cotton
f06439ecf5
Fix a bug in calculating air temperature in baro sensor when it goes below 20
...
deg C.
2012-04-22 18:43:07 -05:00
Brian Webb
f726cc6a9d
Added a RTC supervisor timer to RFM22B driver.
2012-04-21 18:31:49 -07:00
zedamota
4968df183a
Working compliant VCP+HID descriptors for Windows.
2012-04-20 08:38:24 -04:00
Corvus Corax
d125abf335
Baro calibration
2012-04-18 10:48:31 +02:00
Brian Webb
62c5036220
Added PipXStatus and PipXSetting UAVobjects and some initial support for them.
2012-04-17 17:36:05 -07:00
Corvus Corax
3da88601a1
Airspeed module works, needs conversion
2012-04-17 20:32:56 +02:00
Stacey Sheldon
6a37e433b6
etasv3: Add driver for Eagle Tree Airspeed Sensor v3
2012-04-17 09:39:00 -04:00
Brian Webb
4936cd8fd2
Added PipXStatus and PipXSettings UAVObjects and added support the sending/receiving UAVTalk objects on the PipX.
2012-04-10 20:22:53 -07:00
Brian Webb
7b49a6b820
Added watchdog to radio com bridge in PipXtreme.
2012-04-07 19:12:49 -07:00
Brian Webb
bc1adb2519
Some cleanup of rfm22 driver.
2012-04-06 17:36:35 -07:00
Brian Webb
fff93910e2
RFM22B device now fully interrupt driven. Packet handeling moved to RadioComBridge module.
2012-04-05 20:24:50 -07:00
James Cotton
e82323af32
Make revolution work with the FreeRTOS queue based MPU6000 driver
2012-04-03 03:41:52 -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
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
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
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
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
Brian Webb
b34b849453
Added start at a modified PipX packet handler.
2012-03-15 19:29:54 -07:00
Brian Webb
d73895de7d
Working PipX com relay.
2012-03-07 18:05:42 -07: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
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
bc8b72623e
Get rid of some unused variables
2012-03-03 11:54: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
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
Brian Webb
a0bdc58e5b
Added framework for rfm22b com device.
2012-02-28 21:30:06 -07: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
Stacey Sheldon
e2939dae2a
revo usb: Add support for USB to Revo
2012-02-07 02:25:31 -05:00
Brian Webb
3f66afd74a
Removed emacs mode header from pios_gcsrcvr.c
2012-02-04 08:42:16 -07:00
Brian Webb
a314604f9b
Added failsafe to GCS Receiver device.
2012-02-02 19:59:42 -07:00
James Cotton
13447ac907
Fix the MPU6000 implementation
2012-01-28 00:21:58 -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
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
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
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
a25d52785b
Change the bus speed for the L3GD20 to 10MHz and some small cleanups
2012-01-24 19:17:49 -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
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
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
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
4d3af7afbf
Add ID test to ADXL345
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
aaf1c5dfdd
Update the F1 SPI library to support multiple NSS lines
2012-01-23 23:27:02 -06:00
James Cotton
2524662475
Copy the BMP085 back from next
2012-01-23 16:58:07 -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
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
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
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
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
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
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
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
a51bf72bc7
usb: allow runtime selection of USB descriptors via hwsettings
2012-01-14 14:28:15 -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
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
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
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
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
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
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
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
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
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
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
33a12d829e
Merge branch 'next' into revolution
...
Conflicts:
flight/PiOS/Common/pios_flashfs_objlist.c
2011-12-11 22:55:54 -06: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
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
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
684715930a
Merge branch 'next' into revolution
...
Conflicts:
flight/OpenPilot/Makefile
flight/Revolution/System/inc/openpilot.h
2011-11-14 10:11:53 -06: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
James Cotton
a2015a4f8d
Compiled and flashing
2011-11-02 13:20:39 -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