User Tools

Site Tools


Joomla says you aren't logged in
building_the_multi-module

Building the Multi-Module

The Multi-Module is a small circuit-board + an AVR processor to allow controlling up to 4 transceivers via a 4-wire SPI interface

For the Walkera Devo transmitters, it adds the A7105, NRF24L01 and CC2500 modules. For the X9d, it adds the above as well as a CYRF6936 module

The board can be ordered from Oshpark here: V1.2 or V1.3 ←- suggested

Additional requirements

ATTiny24A/44A/84A (must be the 'A' variant)

NRF24L01

A7105 or no PA

CC2500 or this one (needs antenna soldered)

CYRF6936 or the stock

2mm pin headers

If using the Skyartec module, you need 0.05" headers

0.1“ pin header (optional)

Assembly

3239500033-board1.jpg

The board will have components on both sides. When placing components, always place them on the side with the white outline.

First wire an 8-pin connector to the bottom of the board. If planning to use the Walkera Devo CYRF6936 module, it will cover the connector, and wires should be used instead of a pin header. If not using the cyrf6936, or if using the AWA24S, it is recommended to use a 0.1” 2×4 pin header instead. Trim the pin headers/wires so that they barely protrude through the board.

3947432587-board2.jpg

Next attach the AVR chip (it will be programmed in-circuit, no need to program beforehand). Again, it is recommended to trim the pins of the ATTiny before installing it so that they barely protrude through the board. NOTE: The notch on the chip must align with the outline on the board. Make sure you've mounted it in the proper orientation 472190820-board_avr.jpg

Note: If you are using a dedicated AVR programmer, now would be a good time to program the board. See the section below on programming. If you will be using your Devo transmitter to program the board, you can finish assembly 1st.

next install the CYRF chip if needed. In the images below, I have chosen to use female 2mm headers so that the modules can be removed, however, this will add to the thickness of the completed module and may make installation in a X9D difficult. 1489394232-board_avr_cyrf.jpg

next install the A7105 module. Soldering a row of pin-headers to the module and then soldering those to the board is the easiest solution. try to get the A7105 as close to flush with the board as possible, but make sure there are no shorts to the solder pads. The NRF24L01 will be installed on top of the A7105, so make sure it is as close to the board as possible. I've placed a piece of Kapton tape on top of the shield to ensure it does not short to the NRF24L01 module 2671317108-board_a7105.jpg 2755120280-boarda7105_2.jpg

Next install the NRF24L01 module. The pin-headers that are pre-installed should be long-enough to just poke through the board. 4156984944-board_nrf24l01.jpg

Lastly install the CC2500 module. In this case, I was using an earlier version of the board, and the pin headers would not fit through the board fully, so the module protrudes more than desired. this issue has been corrected in the board design above 3184160237-board_cc2500.jpg

Completed board: 2731889137-board_all.jpg

Installation

The module can be installed as any other transceiver module. Installation instructions are can be found here: Module Installation

Programming

Before the switch can be used, it must be programmed. There are 2 options for programming: (1) a dedicated AVR programmer like the 'USBAsp' or (2) by using a special DFU in your Devo transmitter.

Programming with a dedicated programmer

NOTE: If you have any of the transceiver modules installed, you should use a 3.3V programmer (or use the DEVO programming method below) as the modules cannot take 5V input

You need to obtain the latest avr.hex file from here: https://www.deviationtx.com/downloads-new/category/4-multi-module

Attach your multi-module board to the AVR programmer. The relevant pins on the 8-pin header are: 2: Vdd 3: Reset 4: MOSI 5: MISO 6: SCK 7: Vss

Using AVRDude, the following commands will program the board: The fuse settings will disable the divide-clock-by-8

avrdude -p t84 -c usbasp -e -U flash:w:avr.hex
avrdude -p t84 -c usbasp -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Change t84 to t44 (for ATTiny44a) or t24 (for ATTiny24a) Change 'usbasp' to whatever programmer you use

Programming with a Devo transmitter

You need to obtain the avr.hex file from here: https://www.deviationtx.com/repository/Multi-Module/

You also need a custom programming DFU for your transmitter from here: https://www.deviationtx.com/downloads-new/category/7-programmer-dfus#

  1. Install the programming DFU for your transmitter with the DFuSe USB Upgrade tool
  2. Install the multi-module into your transmitter (if it isn't already)
  3. Enter USB mode by holding down the 'ENT' button while turning on your transmitter
  4. Copy avr.hex to the root directory of your transmitter
  5. Update (or create) hardware.ini at the root directory of your transmitter with:
    [modules]
    ; there is no need to enable the cyrf6936 module unless
    ; it is wired to an alternate port. It is Enabled automatically otherwise
    enable-multimod=A13
    enable-cyrf6936=B12
    has_pa-cyrf6936=1
    enable-a7105=S1
    has_pa-a7105=1
    enable-cc2500=S3
    has_pa-cc2500=1
    enable-nrf24l01=S402
    has_pa-nrf24l01=1

    If there are any modules you do not have installed, comment those lines by adding a semicolon (';') at the beginning of the line.

  6. Turn on your Transmitter to program. If you get any errors see below for resolution:
    • ERR: No switch cfg – hardware.ini is notproperly configured
    • ERR: Bad avr.hex – avr.hex is not in the proper location
    • ERR: No switch found – avr didn't initialize. this one is common and you need to try several times before giving up. Itoculd be improper wiring or just that the code isn't working properly. I'm still working on this
    • ERR: Unknown AVR – This means the AVR is there but the dfu code didn't initialize properly, try it again
    • ERR: Erase failed – could not erase the device. Try again
    • ERR:Failed at page 0x – programming failed, try again
building_the_multi-module.txt (3427 views) · Last modified: 2017/01/23 03:21 by FDR