mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 22:48:12 +00:00
commit
5a30a96c0c
@ -5,15 +5,13 @@
|
||||
|
||||
There are many different options to upload a .hex firmware file to the MULTI-Module and to set the correct fuses. This document outlines an approach that uses a USBASP programmer and which is equally compatible with OSX, Windows and Linux operating systems.
|
||||
|
||||
1. Follow this section: [Material you need to upload the firmware](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#material-you-need-to-upload-the-firmware)
|
||||
1. Follow this section: [Install the Arduino IDE](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#install-the-arduino-ide-and-the-multiprotocol-project-firmware)
|
||||
1. Follow this section: [Material you need to upload the firmware](Compiling.md#material-you-need-to-upload-the-firmware)
|
||||
1. Follow this section: [Install the Arduino IDE](Compiling.md#install-the-arduino-ide-and-the-multiprotocol-project-firmware)
|
||||
1. Make sure to write down the location of your installation since you need to know where avrdude is installed to configure the AVR8 Burn-O-Mat. For example on a default windows installation, avrdude.exe is located in "C:\Program Files (x86)\Arduino\hardware\tools\avr\bin" where "C:\Program Files (x86)\Arduino" is the installation path.
|
||||
1. Install [AVR8 Burn-O-Mat](http://avr8-burn-o-mat.brischalle.de/avr8_burn_o_mat_avrdude_gui_en.php) which is available for all platforms. Installation instructions are on the software page (Don't forget to install [Java](http://java.sun.com/javase/downloads) as explained).
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. You should now have a window which looks like this:
|
||||
<img src="images/AVR8BurnOMat-main.png" />
|
||||
1. Click on **Settings->AVRDUDE** and fill in the details about avrdude location using the installation path written previously as well as selecting USBASP for the programmer:
|
||||
<img src="images/AVR8BurnOMat-settings.png" />
|
||||
1. You should now have a window which looks like this: <br> <img src="images/AVR8BurnOMat-main.png" />
|
||||
1. Click on **Settings->AVRDUDE** and fill in the details about avrdude location using the installation path written previously as well as selecting USBASP for the programmer: <br> <img src="images/AVR8BurnOMat-settings.png" />
|
||||
1. Once done click on OK.
|
||||
1. You are now done with all the installations/configuration and ready to program your Multi-module.
|
||||
|
||||
@ -33,14 +31,13 @@ Banggood 4-in-1 module with [custom mikeb bootloader](Advanced_ATmega_Serial_Upl
|
||||
If you don't know which one to take the 1st line is the one you want.
|
||||
|
||||
### Burn the fuses
|
||||
1. Follow this section: [Connect the programmer](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#connect-the-programmer)
|
||||
1. Follow this section: [Connect the programmer](Compiling.md#connect-the-programmer)
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. In the **AVR type** drop down select **ATmega328P** and click on **Fuses**
|
||||
1. In the **ATmega328P Fuses** window which just open click on read fuses.
|
||||
1. Ignore the error "warning : Can not Set sck period . usbasp please check for firmware update .".
|
||||
1. If you get an error there is something wrong with your connections, your programmer, or your board. Verify everything and go back to the 1st bullet point.
|
||||
1. Set the 3 Fuse values
|
||||
<img src="images/AVR8BurnOMat-fuses.png" />
|
||||
1. Set the 3 Fuse values <br> <img src="images/AVR8BurnOMat-fuses.png" />
|
||||
1. Click on **apply**
|
||||
1. Click on **write fuses**
|
||||
1. Ignore the error "warning : Can not Set sck period . usbasp please check for firmware update .".
|
||||
@ -48,7 +45,7 @@ If you don't know which one to take the 1st line is the one you want.
|
||||
1. You are done with setting the Fuses and can close the **ATmega328P Fuses** window
|
||||
|
||||
## Upload the firmware
|
||||
1. Follow this section: [Connect the programmer](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#connect-the-programmer)
|
||||
1. Follow this section: [Connect the programmer](Compiling.md#connect-the-programmer)
|
||||
1. Download the [latest release firmware](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases) you want to burn and store it in a knwon location
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. In the **AVR type** drop down select **ATmega328P**
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Here is the bill of materials for the ATmega328 version of the DIY MPTM.
|
||||
|
||||
If you are looking for the BOM for the DIY STM32 version click [here](BOM_DIY_STM32.md).
|
||||
If you are looking for the BOM for the DIY STM32 version click [here](BOM_DIY_STM32%20&%20Schematic.md).
|
||||
|
||||
Digikey may not be your preferred supplier, but you should find enough information on their page to cross reference parts.
|
||||
|
||||
|
@ -15,13 +15,13 @@ The procedure below will guide you through all the steps to upload successfully
|
||||
|
||||
### Material you need to upload the firmware
|
||||
|
||||
1. USBASP programmer supporting 3.3V: <br> <img src="images/USBasp_Programmer.jpeg" width="200" height="200"/> <br> [(example aliexpress link)](https://www.aliexpress.com/item/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/2036402518.html?spm=2114.30010308.8.10.jIbHzs) <br> There are reports that some of the cheap programmers are not safe to use with 3.3V units, usually the black PCB versions are ok. <br> <br>
|
||||
1. 10pin to 6pin adapter: <br> <img src="images/10pin_2_6pin.JPG" width="150" height="150"/> <br> [(example ebay link)](http://www.ebay.fr/itm/10-Pin-a-6-Pin-Carte-Adaptateur-M-F-pour-AVRISP-USBASP-STK500-Noir-Bleu-WT-/291862396761?hash=item43f45abf59:g:gXsAAOSwMgdXyGnh) <br> <br>
|
||||
1. 6 pin header like this one: <br> <img src="images/6pin_header.jpg" width="100" height="100"/> <br> [(example Digi-Key link)](http://www.digikey.com/products/en?keywords=3M%20961206-6404-AR) <br> <br>
|
||||
1. USBASP programmer supporting 3.3V: <br> <img src="images/USBasp_Programmer.jpeg" width="200" height="200"/> <br> [(example aliexpress link)](https://www.aliexpress.com/item/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/2036402518.html?spm=2114.30010308.8.10.jIbHzs) <br> There are reports that some of the cheap programmers are not safe to use with 3.3V units, usually the black PCB versions are ok. <br>
|
||||
1. 10pin to 6pin adapter: <br> <img src="images/10pin_2_6pin.JPG" width="150" height="150"/> <br> [(example ebay link)](http://www.ebay.fr/itm/10-Pin-a-6-Pin-Carte-Adaptateur-M-F-pour-AVRISP-USBASP-STK500-Noir-Bleu-WT-/291862396761?hash=item43f45abf59:g:gXsAAOSwMgdXyGnh) <br>
|
||||
1. 6 pin header like this one: <br> <img src="images/6pin_header.jpg" width="100" height="100"/> <br> [(example Digi-Key link)](http://www.digikey.com/products/en?keywords=3M%20961206-6404-AR) <br>
|
||||
1. The 6 Pin header needs to be solder on the board like indicated by the red rectangle:
|
||||
* Banggood readymade 4-in-1 module: <br><img src="images/V2b_ISP.jpeg" width="189" height="200"/> <br> <br>
|
||||
* DIY Mulitprotocol modules (like the 2.3d board): <br><img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201"/> <br> <br>
|
||||
* Arduino Pro Mini module: <br><img src="images/ProMini_ISP.png" width="195" height="200"/> <br> <br>
|
||||
* Banggood readymade 4-in-1 module: <br><img src="images/V2b_ISP.jpeg" width="189" height="200"/> <br>
|
||||
* DIY Mulitprotocol modules (like the 2.3d board): <br><img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201"/> <br>
|
||||
* Arduino Pro Mini module: <br><img src="images/ProMini_ISP.png" width="195" height="200"/> <br>
|
||||
|
||||
### Connect the programmer
|
||||
|
||||
@ -108,10 +108,7 @@ First, we need to append some text to the Arduino file boards.txt.
|
||||
|
||||
#### On Windows
|
||||
1. Close the Arduino IDE
|
||||
1. Search Windows for the application WordPad (DO NOT USE Notepad). Right click on WordPad and select "Run as Administrator":
|
||||
|
||||
<img src="images/WordPad_Admin.jpg" height="200" />
|
||||
|
||||
1. Search Windows for the application WordPad (DO NOT USE Notepad). <br> Right click on WordPad and select "Run as Administrator": <br> <img src="images/WordPad_Admin.jpg" height="200" /> <br>
|
||||
1. Open the file ```boards.txt``` located in this folder ```C:\Program Files(x86)\Arduino\hardware\arduino\avr ``` or the equivalent if you have installed Aduino in a different directory.
|
||||
1. Append the following text into the end of the file and save it:
|
||||
|
||||
|
@ -28,22 +28,16 @@ Flashing precompiled **binaries** is done very simple with the cable setup prese
|
||||
|
||||
### Prepare the Arduino IDE:
|
||||
|
||||
1. In order to compile successfully you need also to modify a maple library file. In ```....\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\usart_f1.c``` comment out the 2 functions as shown below. This is required to have low-level access to the USART interrupt.
|
||||
|
||||
**/***
|
||||
**void __irq_usart2(void){**
|
||||
|
||||
**usart_irq(&usart2_rb, USART2_BASE);**
|
||||
|
||||
**}**
|
||||
|
||||
**void __irq_usart3(void) {**
|
||||
|
||||
**usart_irq(&usart3_rb, USART3_BASE);**
|
||||
|
||||
**}**
|
||||
***/**
|
||||
1. In order to compile successfully you need also to modify a maple library file. In ```....\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\usart_f1.c``` comment out the 2 functions as shown below. This is required to have low-level access to the USART interrupt. <br>
|
||||
```C
|
||||
/* void __irq_usart2(void){
|
||||
usart_irq(&usart2_rb, USART2_BASE);
|
||||
}
|
||||
|
||||
void __irq_usart3(void) {
|
||||
usart_irq(&usart3_rb, USART3_BASE);
|
||||
} */
|
||||
```
|
||||
1. Run the IDE, and on the **Tools** menu, select **Board** and then **Boards manager**. <br> Click on the Arduino DUE (32 Bits ARM-Cortex M3) from the list of available boards. You must do this step, it installs the arm-none-eabi-g++ toolchain!
|
||||
1. Close and reopen the Arduino IDE and load the Multiprotocol project.
|
||||
1. In arduino IDE under the **Tools** -> **Board:** select the **Generic STM32F103C series** board
|
||||
|
@ -33,12 +33,7 @@ The schematic for the board is [here](#V23D_Schematic). Please note that is is
|
||||
1. The schematic and BOM for this board V1.0t and older boards are available [here](BOM_DIY_STM32 & Schematic.md).
|
||||
|
||||
### Common parts
|
||||
1. A module case that fits your module like the one [here](https://www.xtremepowersystems.net/proddetail.php?prod=XPS-J1CASE)
|
||||
<img src="https://www.xtremepowersystems.net/prodimages/j1case.jpg" width="200" height="180" />
|
||||
or you can 3D print your own from a selection on Thingiverse ([Example 1](http://www.thingiverse.com/thing:1852868) [Example 2](http://www.thingiverse.com/thing:1661833)).
|
||||
[<img src="http://thingiverse-production-new.s3.amazonaws.com/renders/55/1c/cb/0a/e4/5d2c2b06be7f3f6f8f0ab4638dd7c6fc_preview_featured.jpg" width="250" height="200" /> ](http://www.thingiverse.com/thing:1852868)
|
||||
For 9XR/9XR Pro, a new 3D printed module is available which makes use of the built in antenna in the handle. This means nothing is getting out of the radio back! You can find all details of this module case on [Thingiverse](http://www.thingiverse.com/thing:2050717).
|
||||
<img src="images/9XR_module.jpg" width="113" height="200" /> <img src="images/9XR_module_connector.jpg" width="274" height="200" />
|
||||
1. A module case that fits your module like the one [here](https://www.xtremepowersystems.net/proddetail.php?prod=XPS-J1CASE) <br> <img src="https://www.xtremepowersystems.net/prodimages/j1case.jpg" width="200" height="180" /> <br> or you can 3D print your own from a selection on Thingiverse ([Example 1](http://www.thingiverse.com/thing:1852868) [Example 2](http://www.thingiverse.com/thing:1661833)). <br> [<img src="http://thingiverse-production-new.s3.amazonaws.com/renders/55/1c/cb/0a/e4/5d2c2b06be7f3f6f8f0ab4638dd7c6fc_preview_featured.jpg" width="250" height="200" /> ](http://www.thingiverse.com/thing:1852868) <br> For 9XR/9XR Pro, a new 3D printed module is available which makes use of the built in antenna in the handle. This means nothing is getting out of the radio back! You can find all details of this module case on [Thingiverse](http://www.thingiverse.com/thing:2050717). <br> <img src="images/9XR_module.jpg" width="113" height="200" /> <img src="images/9XR_module_connector.jpg" width="274" height="200" />
|
||||
1. A 2.4GHz antenna and pigtail
|
||||
|
||||
## Build instructions
|
||||
@ -59,14 +54,12 @@ If you have a transmitter that can support serial communication with the board t
|
||||
#### **ATmega V2.3d board**
|
||||
|
||||
There are four solder type jumpers on the bottom side of the board near the lower left corner when the bottom of the board is facing towards you. The silkscreen shows which jumper is which. These four jumpers enable the board to be configured in several ways as explaned below.
|
||||
|
||||
```
|
||||
(J-1) Use (PPM V/V) if the incoming PPM signal is at a higher voltage level, leave open if ~~5V.
|
||||
|
||||
(J-2) Use (Jumper 2) to connect the incomming PPM signal to the RX pin on the processor
|
||||
|
||||
(J-3) Short (TELEM) only if you have done a telemetry mod to your radio, leave open if not needed. When connected, pin 2 of the two pin header (P3) is also connected.
|
||||
|
||||
(J-4) Use (MOD) only to connect the transmitter pin 2 to pin 1 of the two pin header (P3).
|
||||
```
|
||||
|
||||
**It is most likely J-2 will be the only one needing to be shorted for the serial method of sending model protocols. If you plan to use telemetry you will also need to solder J-3**
|
||||
|
||||
@ -82,7 +75,7 @@ Here is the schematic you can use to troubleshoot the module
|
||||
General module schematic (reference)
|
||||
<img src="images/DIY_Mulitprotocol_Module_Schematic.jpeg" width="1000" height="500" />
|
||||
V2.3d Board Schematic
|
||||
<img src="https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/PCB%20v2.3d/Schematic_v2.3d.jpg" width="1000" height="500" />
|
||||
<img src="../PCB%20v2.3d/Schematic_v2.3d.jpg" width="1000" height="500" />
|
||||
|
||||
## <a name="STM32_Schematic"></a> PCB STM32 V1.0t Schematic
|
||||
<img src="https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/STM32%20PCB/Schematic_Multiprotocol_STM32_MB_v1.0_t.jpg" width="1000" height="500" />
|
||||
<img src="../STM32%20PCB/Schematic_Multiprotocol_STM32_MB_v1.0_t.jpg" width="1000" height="500" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user