MediaTek LinkIt Smart 7688 Review and Garage door opener project

   I was searching a device that would have many GPIOs, USB and would have wifi connection. A device that was pretty good was WRTnode, that I was using before to open garage doors. I wanted to make an upgrade, because I had multiple PCB-s around and connections between the PCB-s were problematic sometimes.
   Searching through internet I found that Mediatek has made LinkIt Smart 7688 device, that would be pretty good for me. It has loads of memory, flash storage and powerful cpu and it costs about 13$. So I bought three of those devices.
  After about 2 weeks LinkIt devices arrived. Immidiately I plugged one to power and started testing.

HARDWARE:

The hardware is very nice for that kind on price, the board and connections seem well done. Really good is that the flash memory is visible and can be removed when needed. CPU and memory are covered with metallic covers. When running it gets comfortably warm, nothing hot.
There is very small Chip Antenna on the device. My thought was that it cannot be sufficent, it will have very bad reception. Testing it revealed that it was pretty good. I thought of using external antenna, but that is not needed, because this antenna is good. I tested at same location WR703N and that was really bad when being wireless client.

SOFTWARE:

From factory it has wireless setup gui before you can access the openwrt. Wireless setup gui is okay and simple. Openwrt is compiled by mediatek. I thought that I would compile my own openwrt, but that wasn't that simple. I got compile latest trunk, installed it and couldn't get the wifi working. Tried to load modules and firmware and nothing. 
Then I found github, where is linkit-smart-7688-feed. Tried to compile it with latest stable openwrt and failed. Compiling needed some blob that wasn't with the latest kernel version. I made a hacky method by renaming the file to the kernel name that was needed. Finally it worked and seems to work ok for now.
Next I tried to remove some files that use very much space on the flash like python, and some more. For that I needed to edit the files I downloaded from github. After a few hours I was able to remove unneeded files and only leave mtk-sdk-wifi that would leave me proprietary wifi driver. One problem with that is that I cannot change wifi setting through openwrt luci gui. Settings can be changed only by mtk-.linkit-webui, by that it creates correct /etc/config/wireless file. When using Luci to connect AP it creates config wireless file that way that it cannot understand and use.

PCB FOR GARAGE DOOR:

I have two doors that is needed to be opened wirelessly. I tested the device by connecting relays with transistors straight to gpio and I had a problem: When booting all the GPIOs become high, that would mean that electricity goes away for a second and garage doors open. That is not good when you are away and the doors just open. So I needed another plan. Old way with the WRTnode I used two other chips that with right pins high and low and a door would open. I didn't use that solution now. I solved it by this way: 7688->USB Serial adapter->Arduino->Relay. That way arduino doesn't pull pins high when booting. Basically 7688 sends command to arduino and when it is right command, then arduino pulls a pin high and relay does it's job.

PCB SCHEMATIC:

Down are inputs/outputs, in center 7688, right side upper part is usb to serial adapter, right side middle arduino and right side lower part is transistors and two relays. I drew the schematic in Inkscape. Drawing with it is not very practical, but gets small jobs done.
GND - Ground
+12V - 5...12V I am using 9V TP-Link adapter
3V3 - Is +3,3V
Door2- - When connected it to 3,3V the door 2 displays that it is closed
Door1- - When connected it to 3,3V the door 1 displays that it is closed
Blink- -
Blink+ - Connected a led that can blink when I open door.
Relay outputs should be simple. Door1-1 gets connected to Door1-2 and similarly the door2 relay outputs.

ETCHED AND ASSEMBLED:

I wrote on the pcb pin descriptions. Then I used clear lacquer spray and it dissolved the markings. ugh. Otherwise it's fine. I used some matte lacquer spray, that made the finish kinda bumpy.
Didn't want to lacquer the Linkit, because then adding an external antenna would be a problem.

Accidentaly took black spray can and sprayed a bit on the pcb. I superglued these plastic spacers to PCB before lacquer, because it is easier to mount it like that.

Here is the pcb working. I have connected power from arduino. Normally I will use on the left side connections.

Here is the Android program, that opens web page taht Linkit is serving on local network. Left Door and Right Door buttons are green when the doors are closed. Buttons turn to red when door is opened.

Comments

  1. Good article and right to the point. Finally, I’ve found something that helped me. Thank you! If you are searching for the best garage door torsion spring in Canada then Precision Garage Doors is the most reliable option for you. Hire our technicians for the help!

    ReplyDelete

Post a Comment

Popular posts from this blog

ZTE MF29A router and Openwrt

ESP8266 connection to MQTT server (Attempting MQTT connection...failed, rc=-2)

Audi A6 C4 Webasto DBW46