Firmware:
3.3.4 - (3 Apr 2007) support for Walkera PCM radios (tested: WK-0701)
3.3.3 - (9 Mar 2007) changes made to use the new semplified one side
only PCBs: MCLR disabled (config registers: MCLRE = OFF) for
removing pull-up resistor from VDD to RE3; bit INTCON2, RBPU
cleared during initialization to enable PORTB weak pull-up:
in this way the pull-up resistor from VDD to the transistor
collector is not needed anymore. Thanks to Martin R Dare for suggestions.
3.3.2 - (28 Feb 2007) resolved a bug that doesn't allow to achieve
B_MAX_PACKET_SIZE0 = 64 (and that could cause some problem
with the value 32 used before). Renamed FCMEM to FCMEN in
config directives for compiling with MPLAB 7.50. Made new
linker script rm18f2455.lkr for using our qpicprog bootloader
to program the code into the PIC directly via usb. Little
modification added: servo pulses output for Ch1 and Ch2 on
RB6 (ICSP pin 5) and RB7 (ICSP pin 4), for testing servos (work only with a ppm input signal, not pcm or adc).
3.3.1 - (25 Sep 2006) nothing done here: just ported set_assignments and get_assignments utilities to linux.
3.3.0 - (21 Sep 2006) introduced ADC mode: in case the radio is not
equipped with PPM/PCM output it is now possible to directly
connect the potentiometers/switches of the radio to the PIC
analog inputs AN0..AN11 (ADC1 and ADC2 in the PCB) and use the
internal 10bit ADC to convert them. Minor rearrangement to the source.
3.2.0 - (11 Sep 2006) the device becomes full speed to get around
constraints on speed and report size imposed for low speed
devices by USB specifications; this means that now we can have
more proportional channels without loss in resolution: the
current version have 8 proportional axes per joystick (up to
5000 points resolution each) and 8 buttons for a total of 16
proportional axes and 16 buttons (32 controls). The traditional
low speed interface with 4 axes per joystick is still available
by setting INTERFACE_TYPE define to 1; the polling interval for
interrupt transfer is now set to 5 ms (and could also be set to
1ms) to reduce input latency.
3.1.3 - (27 Aug 2006) added the possibility to assign a reversed channel
to
a joystick control by simply negating the relative assignment
code in the eeprom data. You can do it with set_assignments.exe
by
writing directly the relative decimal code with a minus sign
inside
set_assignments.txt. But if you prefer to directly edit the
eeprom
or to change the default code value in the source remember
to
put the one byte 2's complement hex as negated code.
3.1.2 - (19 Aug 2006) implemented futaba PCM1024 Error Correcting Code.
3.1.1 - (30 Jul 2006) added PCM support for Futaba PCM 1024; include
support for Ch9 and Ch10 and implement delta channel position
algorithm; thanks to Rinaldo Dos Santos for recordings and help
for testing.
3.1.0 - (07 Jul 2006) added PCM support for Sanwa/Airtronics PCM1/2;
assignment tables format changed inserting the modulation code
as first table byte for selecting which modulation to use for each
table. Thanks to Shaul Eizikovich (author of SmartPropoPlus) for
precious PCM signal infos and help for testing. NOTE that this support
is experimental: for now it has been tested only with few recordings
of a pcm signal with a soundcard (we have not any PCM radio :-) Shaul
has made recordings and sent them to us).
MAX_CHANNELS reduced from 24 to 12 to free space on access memory:
radios haven't more than 12 channels and PPM and PCM modulations
doesn't allow more than 8 channels at this time. ASSIGNTAB moved to
access memory. Number of assignments is 24 as before: leaved 24
different joystick controls (two joystick, 12 controls each) to
give the maximum assignment versatility. The maximum number of
assignment tables is now 18 instead of 10.
3.0.3 - (14 Jun 2006) added defines for ID_VENDOR ID_PRODUCT and BCD_DEVICE
(see relative device descriptor fields); GET_DESCRIPTOR strings bug
resolved: modifications made for allowing more than 256 byte for all
descriptors (String2 descriptor was in part over this limit causing
bad product string to be returned: bad strings in control panel...):
USB_desc_ptr replaced with USB_desc_ptrL, USB_desc_ptrH and
USB_desc_ptrU; modified Descriptor, ServiceUSB (GET_DESCRIPTOR part)
and SendDescriptorPacket. ID_PRODUCT changed to allow users that
have already installed the bugged version to have the corrected
strings inside control panel -> game controllers: it seems that
windows doesn't correct them once corrected in the firmware, even if
you try to uninstall the peripheral inside device manager and
reconnect it and let windows reinstall it; it seems to keep the
strings set during first installation; changing ID_PRODUCT windows
will see the peripheral as a completely new device... (the alternative
is to manually delete some keys in the system registry like this:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\MediaProperties\
PrivateProperties\Joystick\OEM\VID_04D8&PID_0103 but it could
be more difficult and dangerous).
3.0.2 - Assignments can now be set via USB. Added three vendor specific
requests to the firmware and on the pc side two C programs for
setting/getting assignments data to/from eeprom. Assignments
tables can be stored on the pc inside text files. Data format on
eeprom is left unchanged. C programs use LibUsb_Win32 0.1.10.1
filter driver for communicating with the device.
3.0.1 - Changed the assignment tables method: assignment tables are coded
into eeprom 256 byte data memory: from 1 to 10 different assignment
can be prepared into eeprom to suite different radios/simulators needs.
At any time it is possible to change which table to use by simply
changing last eeprom byte (TableSelect byte). Now assignment tables can
easy be changed using programmer software without the need of modifying
the source and recompiling it.
3.0.0 - Descriptors and code modified to make a composite device: the device
is now seen from the host as two joystick with 4 axes and 8 buttons
each. Now the device has two hid interfaces, one uses EP1 the other
EP2 for a total of 16 byte sent every 10ms. The 24 channels are
mapped to joystick axes and buttons using the usual two assignment
tables, one optimized for futaba/hitec the other for jr/graupner.
The firmware is now based on the last Bradley A. Minch framework
version (lab2 firmware) and include all his correction (till current
last update: 01/19/2006).
2.0.1 - Code modified to easier changing of max number of channel read by the
firmware through the define MAX_CHANNELS and resolve some minor bugs.
2.0.0 - Initial RCJoystick NG release: RCJoystick ported to 18f2455/2550
thanks to Bradley A. Minch framework (initial public release)
set_assignments.c
3.3.4 - (3 Apr 2007) added Walkera PCM
3.3.3 - (9 Mar 2007) -
3.3.2 - (28 Feb 2007) corrected bug with more than 10 tables.
3.3.1 - (25 Sep 2006) set_assignments and get_assignments ported on
linux with very little modifications to the source: the same
source work now on windows (linked against LibUSB-Win32) and
on linux (linked against libusb). Linking it against libusb
should be smoothly ported on all OS supported by this: FreeBSD,
NetBSD, OpenBSD and Darwin/MacOSX. Also corrected a bug with
error messages reported by libusb/LibUSB-Win32 (wrong call to
usb_strerror).
3.3.0 - (21 Sep 2006) support firmware ADC mode (see firmware source).
3.2.0 - (11 Sep 2006) added INTERFACE_TYPE define to select which type
of interface to communicate with: 8 axes per joystick or 4 axes
per joystick, depending on what firmware is loaded in the PIC.
3.1.3 - (27 Aug 2006) added the possibility to assign a reversed channel
to
a joystick control by simply negating the relative assignment
code
in the eeprom data. Added also a delay before exit to allow
user
to read success or error messages in case the window close
itself when the program exits.
3.1.2 - (19 Aug 2006) -
3.1.1 - (30 Jul 2006) added Futaba PCM 1024 support. Uses LibUsb_Win32
20060518 snapshot filter driver that corrects a bug with XP
utility "USB Safely Remove Hardware".
3.1.0 - (07 Jul 2006) added PCM support for Sanwa/Airtronics PCM1/2;
assignment table format changed inserting the modulation code
as first table byte for selecting which modulation to use for
each table. MAX_CHANNELS reduced from 24 to 12 and MAX_TABLES
incremented to 18; the number of assignable joystick controls
is the same as before (24); see firmware source revision history
for further details.
3.0.3 - (14 Jun 2006) added defines for ID_VENDOR and ID_PRODUCT;
ID_PRODUCT changed to reflect changes in firmware for correcting
string bug (see firmware source).
3.0.2 - First release with RC Joystick 3.0.2 firmware.
get_assignments.c
3.3.4 - (3 Apr 2007) added Walkera PCM
3.3.3 - (9 Mar 2007) -
3.3.2 - (28 Feb 2007) -
3.3.1 - (25 Sep 2006) set_assignments and get_assignments ported on
linux with very little modifications to the source: the same
source work now on windows (linked against LibUSB-Win32) and
on linux (linked against libusb). Linking it against libusb
should be smoothly ported on all OS supported by this: FreeBSD,
NetBSD, OpenBSD and Darwin/MacOSX. Also corrected a bug with
error messages reported by libusb/LibUSB-Win32 (wrong call to
usb_strerror).
3.3.0 - (21 Sep 2006) support firmware ADC mode (see firmware source).
3.2.0 - (11 Sep 2006) added INTERFACE_TYPE define to select which type
of interface to communicate with: 8 axes per joystick or 4 axes
per joystick, depending on what firmware is loaded in the PIC.
3.1.3 - (27 Aug 2006) added the possibility to assign a reversed channel
to
a joystick control by simply negating the relative assignment
code
in the eeprom data. Added also a delay before exit to allow
user
to read success or error messages in case the window close
itself when the program exits.
3.1.2 - (19 Aug 2006) -
3.1.1 - (30 Jul 2006) added Futaba PCM 1024 support. Uses LibUsb_Win32
20060518 snapshot filter driver that corrects a bug with XP
utility "USB Safely Remove Hardware".
3.1.0 - (07 Jul 2006) added PCM support for Sanwa/Airtronics PCM1/2;
assignment table format changed inserting the modulation code
as first table byte for selecting which modulation to use for
each table. MAX_CHANNELS reduced from 24 to 12 and MAX_TABLES
incremented to 18; the number of assignable joystick controls
is the same as before (24); see firmware source revision history
for further details.
Now get_assignments.exe doesn't ask anymore before overwriting an
existing file to avoid continuous annoying prompts... but if you
prefer it to ask simply uncomment the define PROMPT_OVERWRITING
and recompile.
3.0.3 - (14 Jun 2006) added defines for ID_VENDOR and ID_PRODUCT;
save_assign_tables modified: more complete comments written into
get_assignments.txt; ID_PRODUCT changed to reflect changes in
firmware for correcting string bug (see firmware source).
3.0.2 - First release with RC Joystick 3.0.2 firmware.
|