Today we’ll be taking a look at a router, the SMC Networks ADSL2/2+ Barricade G Wireless Modem/Router (SMC7901WBEA2 B1) which is a 1 LAN Port Wireless ADSL2Modem/Router in a small form factor compared to other routers but that’s mostly due to it having only 1 LAN port.
Four screws later, the top pops out and we’re in.
We’ve got 3 main chips plus the Wifi chip shielded with a fair bit of capacitors, 4x 16V 1000uF KMG branded caps near the input and we have 2x AP1534 and 1x AP34063 DC-DC converters, the inductors aren’t glued down at all. Interestingly there may have been the possibility to shield the SDRAM and one side of the SoC too, I guess it wasn’t needed. We have a u.FL connector going to the antenna. PCB date code is 46th week of 2009.
I’ve had the HobbyKing Rattler for some time now and I’ve been making small modifications here and there which have accumulated over time and has gotten to the point where it would be nice to have everything on a custom PCB.
Here’s how everything looks at the moment, pretty messy with kapton tape wrapped around each separate board, we have a large DC-DC converter bought off Ebay a while back for the video transmitter (VTX), an ATtiny control board for the lights/connecting to the receiver and an ATmega with another board doing the temperature/video osd. On the right, we have the finialised PCB.
Let’s start off with the video OSD as it’s what the whole board revolves around, I’m using DIY OSD which uses an ATmega with some resistors, diodes and capacitors to overlay text over the screen and it works fairly well. It’s written in Arduino so I’m going to have to use that and I took out the GPS code references so we can fit it into an ATmega168. There are other solutions like Minimosd use a dedicated chip (MAX7456) to do the overlay and the text it generates is better however I wanted to keep things simple and small.
From our last part we looked at choosing capacitors for our LDO, testing our I2C timing, switching to a 1Mbit EEPROM and using EEPROM page writes. This time we’ll look at adding in the TMP102 sensor, experimenting with I2C pull-ups, re-testing the voltage switcher diode and other little improvements.
It has been a good while since I’ve worked on this project, though it’s not all bad, it does give me a chance to re-look at the project and pick up on things I might have missed.
Adding the TMP102
The TMP102 is a very small I2C temperature sensor with 0.5C accuracy (typical, -25C to 85C), 12 bit resolution, 1.4 to 3.6V supply and low current at 1uA shutdown and 10uA active plus it’s much smaller than what I thought so I had to use enamel wire to connect to it.
By default the TMP102 operates in a continuous conversion mode where it samples the temperature and puts it in a register at power on, we should disable this feature by enabling shutdown mode (SD).
We change from 12bit data mode which lets us measure -55 to 128C to 13bit mode which does -55 to 150C by setting the extended mode bit and write the above changes by referencing the configuration register (0x01) first.
Today we’ll be taking a look at the D-Link 16-Port 10/100Mbps Desktop Switch (DES-1016D), it’s just a simple 16 port 10/100 switch and I don’t expect there to be too much going on inside just like we’ve seen with other switches.
Three screws later and we’re in.
We have 3 separate boards, the power supply board taking the AC in which connects to the main board and then another small board for the LEDs. PCB date code is 16th week of 2007.
The power supply board looks decent with a clean design.
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.