Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - LukeZ

Pages: [1]
1
Open Panzer Help / Assembling Boards by Hand
« on: August 09, 2017, 12:24:46 PM »
I know several people are planning or have mentioned building boards by hand, and I've gotten several messages on this topic. I think we need a public place to discuss this.

Most people are not going to want to attempt hand builds, but for those that do here is a place to discuss your experiences and ask questions. It doesn't matter if you are building the TCB, Scout or Sound Card, post here and I will try to help as best I can.

Good luck!


2
News & Announcements / List of Open Panzer Threads Around the World
« on: July 17, 2017, 01:27:48 PM »

4
Other Open Source Projects / Standalone Tank IR
« on: January 18, 2017, 06:18:27 PM »
For the fun of it I've taken some code from the TCB having to do with IR, simplified it and packaged it as a self-contained sketch for running on any Arduino Uno/Nano/or other board with ATmega328 processor.

The sketch can be downloaded here: TankIR

What does it do? Basically it lets you send and receive tank IR signals. Sending (ie, "firing the cannon") can be triggered in three ways:
  • Manually with a pushbutton (connect pin D4 to ground)
  • With a positive 5 volt trigger on pin A0 from some other circuit (greater than 5 volt inputs are possible but further input protection will be required)
  • Or the device can automatically fire a repair IR signal in response to being fired at by some other tank (useful as an "automatic tank repair station.")
The sketch can also control a recoil servo which will articulate whenever the cannon is fired (pin D8). Cannon fire will also cause a brief positive signal to appear on pin D6, this could be used to trigger a Taigen High Intensity Flash unit.

Within the sketch is a file called "A_Setup.h" (it will appear as a tab in your Arduino editor). That is where all user settings can be adjusted. Recoil servo end points and retract and return times can all be adjusted, as well as which protocols are sent and which are received.

Leave your Arduino attached to your computer with a USB cable and open the Serial Monitor from within the Arduino IDE to see informational messages printed during operation.


5
Other Open Source Projects / StabiWii Turret Stabilization by Squirlier
« on: January 16, 2017, 11:48:26 AM »
Some users at RCU pointed me to Squirlier's (Christian S.) open source StabiWii project. I thought it might be good to have a place to discuss his project (in English) for those interested to experiment with it. Just to be clear, I don't know Squirlier nor have I worked on his project at all. I am not a developer on his project and I take no credit for any of the work done!

Here are his shared project files: StabiWii at Google Drive
Here is is YouTube page: Squirlier YouTube

As of today the TCB does not have barrel or turret stabilization features enabled. I have worked on it but not reached a functional stage. As I think about it more, I have begun to think a different approach might be best - implement a small microcontroller and sensor board that takes care of all the stabilization functions, and simply plugs inline with the servo/motor signals to the turret. In other words, offload all stabilization work from the TCB into a standalone device that could be used with any tank control system or RC radio.

As it turns out, that is precisely what the the StabiWii does. It does not need to be integrated with the TCB and it could be used in any RC tank regardless of MFU. That is why I have put this thread here in the Other Open Source Projects forum.

From my preliminary investigation, the StabiWii project is a modification of the MultiWii Project. MutliWii has a long history and originally began by using the sensors in the Wii Motion Plus controller paired with an Arduino Nano and community code to control a quadcopter. The StabiWii firmware appears to be designed to run on either a NanoWii Flight Controller (available from Hobby King and perhaps elsewhere), or just a standard Arduino Nano paired with an MPU6050 IMU (both of which could be purchased from SparkFun).

The NanoWii FC has a lot of other features and functions that wouldn't be needed for turret stabilization, and the code is fairly complex as a result. Documentation at this stage appears to be fairly poor, as well as a lot of it being in German. I'm not critiquing the project at all, just stating my observations. It also does not appear that the project has quite yet reached final completion to judge from Squirlier's latest video, although what he has accomplished already is very impressive!

I don't have a NanoWii to play with, but I did download his firmware and it compiled just fine in the Arduino IDE. I was also able to get his GUI configuration program to run, but I have no idea how to use it.

His Google Drive site is a bit confusing, but here is what I downloaded:
  • Go to StabiWii-Beta folder
  • Download three packages:
    • jre-7u79-windows-i586.exe
    • StabiWii - TankConf V26.rar
    • StabiWII -32u4-328P---V26.rar
  • The .exe file will install Java Runtime Environment which is needed to use the Configuration program
  • Un-rar the other two packages, I used 7-Zip
  • The "StabiWii - TankConf V26" is the GUI configuration program. Although I am using Windows 7 x64, I wasn't able to get the "application.windows64" version to run, but the "application.windows32" did work fine. I see also a "StabiWiiTANKConf.pde" file in this folder, I don't know if you have to load that sketch on to your NanoWii in order for it to be configured or not? Unclear.
  • The "StabiWii -32u4-328P---V26" is the Arduino firmware for the NanoWii. It compiled for me without errors in Arduino IDE 1.8.1 by selecting "Arduino Nano" as the target board.

6
This thread will follow my attempts to create an open source sound card based on a Teensy 3.2 microcontroller featuring a 32 bit ARM processor (72 MHz Cortex-M4). It costs about $20 so represents a lot of power for very little money, and it's also very small.

All Teensy devices (there are several versions) are Arduino compatible and can be programmed using the Arduino IDE if you install the free Teensyduino add-on. Development can proceed rapidly because all the standard Arduino libraries can be used, and there are lots of Teensy-specific libraries available as well.

The greatest thing about this board is that it runs the Teensy Audio Library. This is an entire toolkit for building audio projects using a Teensy processor. They have a workshop you can go through that will probably blow your mind. I attended one of these in person last year for the express purpose of learning how we could leverage these resources for an Open Panzer sound card.

The workshop examples use a Teensy 3.2 mated to the PJRC Audio Adapter board. This board outputs CD quality stereo sound (16 bits, 44.1 kHz) and basically just consists of an SD card slot and an SGTL5000 codec chip. This chip takes I2S audio data from the Teensy (not to be confused with I2C) and with the onboard DAC converts it to analog audio. It has a built in headphone amp so you can listen on headphones without any extra hardware. But if you want to drive a speaker you have to add an amplifier circuit to the line-outputs. The SGTL5000 also has a lot of audio processing and signal conditioning features that can be manipulated through convenient functions in the Audio Library.

The Audio Adapter board is a bit overkill for our purposes. We don't need headphone outputs, we don't need stereo sound, and we probably don't need the majority of the signal processing capabilities. We do need however to drive a speaker and that requires yet another chip. However it would not be hard to create our own board with the SGTL5000, SD card, and a small Class D IC.

We do however have other options...


7
TCB Dev / Testing TCB Firmware with Stock Arduino Mega
« on: January 14, 2017, 12:26:34 PM »
It occurred to me that now, prior to physical release of the TCB, some people may have already on hand an Arduino Mega. The TCB uses the same processor as the Arduino Mega (ATmega2560) so the firmware will compile just fine on that board.

If you have an iBus or PPM receiver, you can connect it to your Arduino Mega with 3 pins (PPM to Mega pin 3, or iBus to Mega pin 15). Unfortunately SBus uses an inverted serial protocol, and before the processor can read this information the signal has to be "un"-inverted. This requires a transistor and two resistors which are on the TCB board but of course absent on the Arduino Mega. If you want to implement this transistor inverter yourself see the TCB schematic, it is very simple and most any basic transistor would work (the SBus signal would also go to Mega pin 15). But otherwise, stick with iBus or PPM receivers.

The Sabertooth can be connected to your Mega with two pins.

Additionally you could also hook up a Benedini TBS Mini to the Mega with only a few jumpers.

See the diagrams below, the first shows only a receiver and Sabertooth, the second adds the Benedini.

You don't need to use the Arduino editor for any of this.

  • Plug your Arduino Mega into your PC using a USB cable.
  • Launch OP Config (download it here)
  • Select the COM port assigned to your Mega
  • Go to the Firmware tab of OP Config, click the "Get Latest Release" button, and then click the "Flash" button. After this process is complete, your Mega is running TCB firmware.
  • You should now be able to connect to your Mega using the "Connect" button in OP Config.
  • If you have a receiver connected, you should also be able to run through Radio Setup.
  • Make sure Drive Motor type is set to "Sabertooth Serial ESC" on the Motors tab of OP Config.
  • Create some function triggers if you like, and adjust any other driving settings you might like.
  • Write settings to your Mega using the blue arrow button.
  • Drive your tank around like a boss!

Important Circuit Info: You will notice in the diagrams below we have Arduino pins A12 and 33 connected to ground. On the actual TCB board these pins are assigned to physical switches. Pin A12 is Dipswitch 5 and we set it to ground in order for the TCB to know it should be communicating over USB rather than an alternate serial port. Pin 33 is the Fight/Repair switch and we set it to ground in order that the TCB remain in Fight mode. This one doesn't really matter so much for the testing done here but Repair mode can have some confusing side effects without all the rest of the circuit present, so just jumper it to ground.

8
Open Source Sound Dev / Guidelines for Posting in this Forum
« on: January 11, 2017, 06:28:11 PM »
This forum is for discussion of ongoing development of an Open Panzer sound device - in other words, the creation of new firmware and hardware.

If you have general questions about operating your existing Open Panzer products, or need help with a problem or bug, please post in the Open Panzer Help forum instead.

9
Scout Dev / Guidelines for Posting in this Forum
« on: January 11, 2017, 06:26:11 PM »
This forum is for discussion of ongoing development of the Scout ESC - in other words, changes to the firmware or hardware, or alternate ESC designs.

If you have general questions about operating your Scout, or need help with a problem or bug, please post in the Open Panzer Help forum instead.

10
TCB Dev / Guidelines for Posting in this Forum
« on: January 11, 2017, 06:25:06 PM »
This forum is for discussion of ongoing development of the TCB - in other words, changes to the firmware, hardware or OP Config.

If you have general questions about operating your TCB, or need help with a problem or bug, please post in the Open Panzer Help forum instead.

11
News & Announcements / Project Status
« on: December 17, 2016, 11:19:18 AM »
December 6, 2016 -

After several years of internal development, it's time to hand this project over to the "community" - a community which maybe doesn't yet exist, but we hope will come into being soon.

It is important for you to know, that as of today there is no way for you to purchase any of our products, unless you want to build them yourself. Although we have made dozens of prototypes, assembly is simply too time-consuming and complicated to make these by hand for sale in any quantity and right now there is no manufacturer lined up for production.

The original intent was not to publicize the project until people could actually purchase the TCB - if you can't get one, what's the point? But getting a manufacturer to invest a substantial amount of money in a production run, without knowing the potential demand ahead of time, is a tough sell. Talks are ongoing with several different manufacturers but so far none have made a firm commitment, and I can't predict when or if any will.

So it is time to take the opposite approach - make the project public, let people examine and discuss the capabilities of the Open Panzer project, and let things take their course. 

Everything we design is completely open source. If you are a manufacturer and want to produce these boards, all the designs and bill of materials are freely available on our Downloads page. Have at it! We do ask that you respect the copyright and maintain attribution.

To the tankers and hobbyists - I created this project because this is what I wished existed when I started building model tanks.  I hope you like it. Please read through the Wiki to see what we've made and start some conversations in the forums if you have questions.

Please remember that like the rest of you my time in this project is volunteered, and no one (so far!) has paid me anything. The work accomplished to date is my gift to the RC community, given freely. I will continue to invest in, advocate for, and lead development, but the future of Open Panzer belongs to you!



LukeZ

12
TCB Dev / TCB - To Do List
« on: December 06, 2016, 04: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.

  • Open Panzer Sound Card: The Benedini TBS is an excellent sound card of which the only possible complaint anyone could have is the cost. It works great with the TCB. All the same, an open source model sound solution is clearly the next big undertaking the Open Panzer project should embark on. We have an entire board in the forum devoted to discussing this.
  • 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.
  • 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.
  • 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.
  • Track recoil: Done, see here.

13
Open Panzer Help / Read Me - Posting Guidelines
« on: December 06, 2016, 02:08:39 PM »
Posting Guidelines
To post on the forum you must be a registered user.

To help prevent spam, new users will be required to pass a visual verification and answer a question before their post is allowed. I know this is a pain in the butt! But the requirement automatically disappears once you have reached a few posts.

For those who don't know, the English word for Panzer is tank


How to get Questions Answered
  • Read the Wiki!
  • Did you really read the Wiki?!
  • Post your question in the appropriate forum.
  • Do NOT send a PM (private message) or email to admins or moderators! Unless they specifically tell you otherwise, moderators will provide no support via PM. Questions and answers written in a private message only benefit the two people communicating, no one else. The entire point of the forum is to provide knowledge for everyone who visits, now or some day in the future. By posting your question here and having it answered publicly, you can help others who will have the same question in the future.

14
Scout Dev / Scout ESC - To Do List
« on: December 06, 2016, 02:02:49 PM »
The Scout ESC in its current state is fully functional with the TCB, general RC radios, and other microcontrollers. There are however always things that can be added, here is a list:
  • Add serial commands 6-13 and 16-17 compatible with Sabertooth protocol (low resolution commands, mixed-mode driving, ramping, and adjustable deadband): See this document for the Sabertooth reference: Sabertooth 2x12 Reference. These commands would not be used by the TCB and aren't useful for the Open Panzer project specifically, but could be used in robotics applications.
  • Characterize empirically the board heat profile at various currents, and improve the fan control algorithm: presently the board will engage the fan when onboard temperature measurement reaches 40*C (~100*F) and the fan will reach full speed by 70*C (~160*F). This range was selected somewhat arbitrarily and there is nothing intelligent about it. In all honesty, during our testing on 1/16 scale models we had a hard time drawing enough current to even get the fan to come on, implying the entire fan functionality is not perhaps really needed in most applications. A temperature-vs-current graph would be good information to have if someone can come up with a suitable current-draw test load.
  • Test various fans and decide on a specific model: As mentioned before the fan rarely if ever comes on with the typical currents drawn by a 1/16th scale tank, so I've not done a lot of testing to find the ideal fan. The connector on the board is plug-and-play with standard 2-pin 40mm PC case fans. If someone does a temperature-to-current test it would be interesting to see how effective a fan is at cooling.
  • Design a case: a case (3D printed or otherwise) would be nice, perhaps one with a fan mount.

As a reminder, here is the GitHub page for the Scout firmware. If you choose to add some code for #1 feel free to submit a pull request.

Pages: [1]