Registration Notice

Due to increased spam, forum registration must be manually approved by a moderator! Please see this post for instructions.

*

Offline LukeZ

  • 1205
    • View Profile
  • France
TCB - To Do List
« on: December 06, 2016, 06:58:31 PM »
In no particular order of importance, here are some items that might be nice to add. If you want to take on one of these projects, feel free to start a thread on a single topic.

  • Smartphone Integration: In a dream world we'd have the equivalent functionality of the OP Config program in a phone app. But perhaps a more achievable starting point would be the creation of a simple telemetry app to read parameters from the TCB over bluetooth. Presently the TCB spits out all kinds of information when the Debug option is set, none of which are formatted in any consistent way, but a true telemetry protocol could easily be implemented. What we need is someone with app-writing skills to create the display interface.
  • OpenTx Telemetry: Another option for delivering telemetry to the user is integration with OpenTx (and potentially other open source transmitter firmwares such as ersky9x). Smartphone telemetry may be more broadly useful but either one would be cool and neither precludes the other.
  • Barrel stabilization: various ways to skin the cat on this one. A considerable amount of work was already done using the Adafruit BNO055 9-DOF IMU, there is also a lot of code in the main sketch currently commented out that handles the barrel stabilization and even simulating up and downhill gravity. The big issue: the default communication protocol used by the sensor is I2C and the default Arduino I2C library (called Wire) is "blocking" - meaning it uses delays for communication timing, delays during which other code can't run. This is a really poor implementation that simply won't work with the TCB. Attempts to create a non-blocking I2C library were ultimately unsuccessful, hence the reason these features are presently disabled. Other options would be to use the same sensor in serial mode and communicate over Serial 1 (Aux) port. This is possible but needs a substantial bit of code written since there is no serial library available for the BNO055.  Another option I've considered is to offload entirely the barrel stabilization to another processor - combine a cheap Arduino Nano/Mini/Trinket/Digispark/whatever with an inexpensive fusion sensor like the MPU-9250 and have it connect inline with the barrel elevation servo. This is essentially what Squirlier's StabiWii project does, but his project is not straightforward to implement for various reasons including poor documentation.
  • Accel/decel presets: See the Inertia & Momentum section of the Wiki for a discussion of presets, and check out the comments in the OP_Driver library, specifically under the GetDriveSpeed function in OP_Driver.cpp, where two example presets are given, one for acceleration and one for deceleration. Creating a preset is not difficult, making it "feel" like a specific drive response different from other settings is the part that takes lots of trial and error. For example the two presets already coded I don't think make a huge different to the end user when you enable them.
  • Two-stick Control: In which each tread is operated by independent channels on the transmitter, and "mixing" for steering is accomplished by the user's thumbs. I have decided it does not make sense to integrate this feature, the simplest reason being that you do not need the TCB to accomplish it. Read this thread for more.
  • Gear Selection: See the Manual Transmission discussion thread for more. The manual transmission has already been implemented inasmuch as we can now select forward, reverse and neutral gears and use the throttle stick only as a speed command rather than also a direction input. But we could possibly get more fancy and allow multiple forward and reverse gears (speeds) to be selected, along with synchronized engine sounds and potentially other realistic effects.
  • OP Config compiled for Mac: OP Config is written in Qt and theoretically it is possible to compile it for other operating systems besides Windows. I don't have a Mac environmnet in which to test this, nor am I interested in learning Mac-talk. But if someone has a Mac, and is familiar with Qt, please feel free to compile a version for that OS.
  • Better Function Assignments in OP Config: The TCB function list has now risen to over 100, and that's getting to be a lot to scroll through in a single drop-down box. A better way of selecting those might be nice, even if just perhaps adding a prior drop down to pre-select a category or group of functions. The other thing that makes this process tedious is the fact that aux radio channels are listed by number ("Aux Channel 6") which isn't very informative; it might be nice to give aux channels names like "Top left knob" that would then appear in the trigger list. However this raises other issues since those names would need to be saved somewhere, but probably couldn't conveniently be saved on the TCB itself due to memory constraints. So that is a complication for sure.
  • Ability to Edit Function-Triggers in OP Config: Right now if you change your mind about a Function-Trigger pair in OP Config you have to delete it and add the modified pair to the list. It would be nice to be able to click on an existing pair and have the ability to edit either the trigger or the function.
  • Test Mode in OP Config: Provide the ability to initiate any feature of the TCB (and Scout and Sound Card) from OP Config while connected with USB, for example have a list of actions such as Fire Cannon or Turn On Light 2, etc... This would allow the user to test TCB features independent of a radio. This feature would require a major re-organization of the TCB firmware and is unlikely to be accomplished in my lifetime. The firmware changes would not be as bad for the Scout and Sound Card since those can already be controlled via serial commands, but then again those devices are not presently even available so the time investment for such features on their behalf is negligible.
  • Support for other Serial Controllers: Although more expensive than the Scout/Sabertooth controllers, and offering extra features that don't benefit anything when used with the TCB, there are two classes of controllers that could nevertheless be used with the TCB if libraries were written for them: MotionControl RoboClaw controllers (dual line only), and Pololu TReX controllers.
  • Dual cannons: It was suggested here to create dual cannon functionality. If you want two synchronized cannons, this is already possible, but multiple independent cannons are not presently implemented.
  • Expanded IR Battle: Although it would not be compatible with the Tamiya standard, it is possible to create alternative "damage" effects during IR battle other than simply a reduction in drive speed. For example speed reductions that affect the left/right treads unequally, or the ability to steer or move in only a single direction, even turret mobility can be be "damaged." These effects could be mixed in semi-randomly with the generic speed reduction profiles to add some diversity and interest. On this topic a community discussion would be useful to set the parameters and brainstorm ideas.
  • Track recoil: Done, see here for details.
  • Manual transmission: Done, released with firmware version 0.92.13, see here for more details.
NO SUPPORT THROUGH PM - Read why
Need a forum account? Read here
Open Panzer FAQs

*

frogboots

Re: TCB - To Do List
« Reply #1 on: December 17, 2016, 01:55:28 PM »
First, cool project, I'd love to get my hands on some boards to play with.  I've been browsing the source code and there are some features the folks I run with have been asking for for a long time.

On your TODO list, have you considered hooking the telemetry into OpenTX for the Taranis radios?  It could make pre-battle easier to setup and verify.

Thanks
rjf.

*

Offline LukeZ

  • 1205
    • View Profile
  • France
Re: TCB - To Do List
« Reply #2 on: December 17, 2016, 04:56:43 PM »
On your TODO list, have you considered hooking the telemetry into OpenTX for the Taranis radios?  It could make pre-battle easier to setup and verify.

This is certainly a possibility. Strategically I think for roughly the same effort development of a telemetry app for smartphones could benefit more end users. Not everyone has a Taranis, or is using OpenTx with it, or wants necessarily to mess with programming on their radio - but everyone already has a smartphone (ironically except myself).

On the other hand, the OpenTx/Taranis community consists of precisely the sort of smart, experienced, computer-savy RC hobbyists that this project needs, and if OpenTx integration got them involved or served as a gateway for those people into the world of open source RC tanks, it would be well worth it.

I've added this to the list.

By the way - congrats on being the first user and the first one to post!
NO SUPPORT THROUGH PM - Read why
Need a forum account? Read here
Open Panzer FAQs