ZigbeeCoordinator: Difference between revisions

From RevSpace
Jump to navigation Jump to search
No edit summary
Line 40: Line 40:


I downloaded the [https://github.com/kirovilya/CCLib CCLib toolchain] from GitHub and made the following changes:
I downloaded the [https://github.com/kirovilya/CCLib CCLib toolchain] from GitHub and made the following changes:
<pre>
diff --git a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
index 1ba6949..b47d4da 100644
--- a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
+++ b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
@@ -35,10 +35,10 @@
////////////////////////////////////////
// Pinout configuration (Configured for Arduino Leonardo)
-int CC_RST  = 5;
-int CC_DC    = 4;
-int CC_DD_I  = 3;
-int CC_DD_O  = 2;
+int CC_RST  = D8;
+int CC_DC    = D7;
+int CC_DD_I  = D6;
+int CC_DD_O  = D5;
// Change this if you are using an external led
int LED      = LED_BUILTIN;
</pre>


I compiled it using platformio, using the following platformio.ini settings:
<pre>
[platformio]
src_dir = .


[env:default]
platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 9600
upload_speed = 921600
</pre>
Then enter the CCLib/Python directory and try to see if the programming tool can find the USB stick:
  ./cc_info.py -E
If it's found, you should see all kinds of information about the CC2531.
TODO document:
* download the HEX file
* edit the HEX file
* command to program the HEX file
* ask for patience


=== Software ===
=== Software ===

Revision as of 13:49, 10 March 2019

Project ZigbeeCoordinator
File:NoPicture.jpg
Flashing a CC2531 USB dongle with Zigbee coordinator firmware
Status In progress
Contact bertrik
Last Update 2019-03-10

What

This page describes the steps I performed to flash a generic CC2531 USB stick with firmware to make it act as a Zigbee coordinator. Zigbee is a wireless protocol to communicate with wireless appliances in your home, for example Ikea TRADFRI lamps.

Steps to do:

  • buy the hardware, i.e. the CC2531 stick and the adapter cable
  • wire up an ESP8266 Wemos D1 mini as a programmer
  • build the ESP8266 Arduino sketch
  • download, build and run the programmer utility

Hardware

I ordered this CC2531 stick plus the debug connector.

By default, the stick shows up in the system log as follows:

 [58101.234023] usb 1-3: New USB device found, idVendor=0451, idProduct=16ae, bcdDevice= 1.17
 [58101.234030] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 [58101.234033] usb 1-3: Product: CC2531 USB Dongle
 [58101.234037] usb 1-3: Manufacturer: Texas Instruments

It was connected to an ESP8266 Wemos D1 mini for re-programming.

I wired this up as follows:

  • press the flatcable onto the stick, with the red wire away from the USB connector
  • press the flatcable onto the programming adapter, with the red wire towards pin 1

Wiring up:

  • Wemos D1 pin GND -> breadboard -> adapter GND (pin 1)
  • Wemos D1 pin D8 -> breadboard -> adapter RESETn (pin 7)
  • Wemos D1 pin D7 -> breadboard -> adapter DC (pin 3)
  • Wemos D1 pin D6 -> breadboard -> adapter DD (pin 4)
  • Wemos D1 pin D5 -> breadboard connected to D6!

I downloaded the CCLib toolchain from GitHub and made the following changes:

diff --git a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
index 1ba6949..b47d4da 100644
--- a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
+++ b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino
@@ -35,10 +35,10 @@
 ////////////////////////////////////////
 
 // Pinout configuration (Configured for Arduino Leonardo)
-int CC_RST   = 5;
-int CC_DC    = 4;
-int CC_DD_I  = 3;
-int CC_DD_O  = 2;
+int CC_RST   = D8;
+int CC_DC    = D7;
+int CC_DD_I  = D6;
+int CC_DD_O  = D5;
 
 // Change this if you are using an external led
 int LED      = LED_BUILTIN;

I compiled it using platformio, using the following platformio.ini settings:

[platformio]
src_dir = .

[env:default]
platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 9600
upload_speed = 921600

Then enter the CCLib/Python directory and try to see if the programming tool can find the USB stick:

 ./cc_info.py -E

If it's found, you should see all kinds of information about the CC2531.

TODO document:

  • download the HEX file
  • edit the HEX file
  • command to program the HEX file
  • ask for patience

Software