Lately my blog has been focused on quadcopters / RC cars and here’s another little one, I’ve been wanting to try out Acro mode but would rather not crash a whole lot to test it out. There’s a program called FPV Freerider which lets you simulate the quadcopter on a few different maps. Normally you would use a Flight Simulator Cable however I didn’t want to wait and they were out of stock locally.
I happened to stumble upon Giuseppe’s Urso’s Blog which had some code for this exact purpose but for some reason only my first channel was working with my Turnigy iA6 receiver. The format being sent by 9600 baud serial was the FMS PIC 9600 which involves a special byte mixed in with the number of channels, another byte for buttons and then each channel has it’s own byte ranging from 0 to 255. Now that we have the format, I can write some code.
I found that my iA6 receiver outputs all it’s channels at the same time, i.e all at the same time and not one after another like some other receivers might, it actually makes it easier for us as all we need is an interrupt on any of the pins and then we start counting. Connect RX channel 1 to Arduino pin 2, RX channel 2 to Arduino pin 3 and so on.
#define RX_CHANNELS 4
// Set inputs
// Attach interrupt to pin 2 as rising
// Reuse Timer1 to count the microseconds after pin 2, etc go high
After playing around with the Arduino micros function, it had glitching every few results so I used the timers directly. We setup the pins as inputs, attach the interrupt INT0 to pin 2 to only trigger when the pin goes high and reset the timer to the default.
Today we’ve got another old device to look into, the D-Link DSL-502T ADSL2 Modem which is simple ADSL2 modem that has 10/100 Ethernet and USB.
Two screws later and we’re in.
As with these old devices there’s lots of capacitors on board, we have 4x Everon 1000uF and 2x Taicon 220uF near the input and we have an AP34063 DC-DC with a reasonably sized inductor and it looks like the input DC jack was intended for an AC adapter so they just bypassed the diodes with links. PCB date code is 7th week of 2003.
This sounded like a good idea so I went ahead and did just that with a spare iA6 receiver (I suspect the iA6B should be the same. Edit – it’s different, see end of post). Firstly lets do a quick teardown of the receiver.
On the top we’ve got our 2 antennas going to the RF can with a microcontroller (TG84023) which would be converting the incoming data to the 6 channels, an 8MHz crystal/oscillator and on the bottom we have another MCU (no label). The PCB marking reads FS-iA6 (Flysky branded), 20130217 and it’s got 3.3V and 5V which I’ve verified so the little 3 or 6 pin packages would be an LDO for 3.3V and DC-DC boost/buck for the 5V and I think the inductor is under the white potting compound.
After a bit of probing around, the MCU on the bottom looked to be producing a clock output of 1MHz and some serial data. One initial problem that I thought might be an issue is with syncing the serial data to the clock pulses as at the start and near the middle there is a 4 clock block but it turns out there is an even number of them so it works out just fine.
The current doorbell we’re using at home is a bit old now and it can play up from time to time (it’s one where you rotate some screws to give a certain combination to link up with the transmitter). A majority of my time for the last few months have been with RC and now I’ve got some spare parts we can put to good use.
My idea is to use a nRF24L01+ with an ATtiny for the transmitter and receiver, an old small video camera bought off Ebay, a 10mW 5.8GHz video transmitter, 5.8GHz receiver, 4.3″ monitor and some batteries. I have some more ideas for the next iteration of this project found at the end.
So the first part is the transmitter, I could make an acrylic box with the CNC but it wouldn’t look quite as good as a proper enclosure (though I could stack the layers), a 3D printer would be perfect for this job but since I don’t have one I decided to re-use the enclosure. I took out all the electronics and lined up a button and LED on a veroboard and it fit in nicely.
Today we’ll be taking a look at a modern device the Synology DS112K Single Bay NAS (Network Attached Storage) which contains a single hard drive with Gigabit Ethernet and 2x USB 2.0 ports. Most of the magic with this device is from the software called the DSM which is a easy to use interface and lets you install additional apps to it, like a download manager, camera surveillance, etc plus third party apps too.
Two screws later and we’re in.
Just from the initial view, they spent the time to tape down the fan wire, be it for EMI or tidiness so we can assume there’s a good chance that the quality inside should be pretty good.
We’ve got quite a few DC-DC converters (FR9888, ZT1525) and what look to be some N/P mosfets too (AP4410GM / AP4953GM), one’s near the input jack near a diode possibly for some input protection and 2x P mosfets near a PWM driver chip (uP1504T). They’ve got a cable going to the front panel board tapped down too which just has some LEDs and a button and there’s also a SMD buzzer (AD-7504) which at first glance didn’t look like a buzzer. On the bottom board they have the RTC crystal glued down and have 7 little EMI pads touching the metal case.
Today we’ll be taking a look at another old device the Netgear ProSafe 802.11g Wireless VPN Firewall (FVG318), it’s a Wireless b/g access point with 1x 10/100 Mbps WAN and 8 ports 10/100 Mbps LAN switch with SPI firewall, the ability to block addresses, services, protocols, keywords, with 8 IPSec VPN tunnels, etc.
One screw later and we’re in.
We’ve got our board with only a few major components so it’s a bit more modern than the last Netgear device we took apart. There’s a ribbon cable with a choke for the front panel lights and an external antenna, there’s the possibility of adding another antenna too. There is a MPS MP1410 SMPS with 3 smaller regulators.
I’ve mentioned before that I’ve been looking into quadcopters and built my ZMR250 quadcopter a few months ago which is working well, a few modifications have been made here and there; and some are still to come.
One problem with the transmitter is that there isn’t a way that I’ve found to make it beep or light up if you exceed a certain communication error rate, the further you go or the more objects in your line of sight, the higher the error rate becomes. You can glance down at the remote and check it there but when you are focused on your FPV monitor you can easily forgot so I would like a better way. There may be a way to do it in software but I decided to try the hardware route.
To start, I thought I’d go digging around the transmitter to see if I could find an RSSI pin by measuring voltages when I had the receiver on the quadcopter in an open space and then compare to in a microwave (as it blocks most of the 2.4GHz radio). I couldn’t find an RSSI pin so it was time to break out the logic analyser and capture data from the radio module, there had to be some communication between the MCU and radio module in order for it to display on the LCD.
Once thing that was very noticeable was the GOIO pin would pulse low for about 1.2ms every 57ms when it was in range. When the error rate got higher, it would drop to 150ms and sometimes 300ms but after more testing it seemed unreliable.
Today we’ll be taking a look at an old device the Netgear ProSafe Wireless Firewall/Print Server (FM114P), it’s a 11Mbps 802.11b parallel print server / access point with 4x 10/100 network ports and 1x 10/100 WAN port.
One screw later and we’re in.
We’ve quite a bit of logic chips under the wireless card and a small heatsink for the processor and an 802.11b Wireless PCMCIA card (XI-325) connected via some right angle pin headers – they may not have had enough room to fit it in or it was easier to buy it off the shelf than design it themselves. For power side of things, we have a LM2576 SMPS and 2x 1084CM linear regulators. PCB date of 35th week, 2002.
From our last part we looked at the new design for a small temperature logger project with a drafted PCB, the redesigned the voltage switching circuit and USB connect/disconnect feature and updating the data transfer function. In this part, we’ll look the capacitors for our LDO (part of the voltage switching circuit), testing our I2C timing to maximise battery life, switching to a 1Mbit EEPROM and using EEPROM page writes.
Usually when I chose capacitors for a voltage regulator, I’ve never really look at the ESR performance of the capacitor before; I assume most capacitors would be good enough for general loads, most of times they are but I thought it would be a good idea to actually test the ESR this time. The 3.3V LDO I went with was the Richtek RT9166 which is low cost and I’ve use other products of theirs (DC-DC) before so it should be a safe choice.
The input capacitance is 1uF minimum without any ESR requirements and output capacitance is also 1uF minimum (X7R) and we’re given a region of stability depending on the load – 0.3 to say 20 ohms for the small amount of current which I’ll need. I purchased one of the many ESR LCR Meter kits available from Ebay and decided to test a few caps, unfortunately it didn’t measure the ESR of some small caps properly (under 1uF) but it works on larger caps.