LNA for RTL Based SDR Receivers

SDR is one of the trendy technologies of the moment, and I couldn’t resist the temptation to buy one of those cheap RTL2832U based DTV receivers, usable out-of the box as a SDR.

The device comes with a fronted (R820T) with a built-in LNA, which is normally powerful enough to fed the receiver when using a short cable, but since I wanted to experiment with an antenna mounted on a relatively long and thin cable, I built a small LNA to be mounted at the far end, near the antenna.


The LNA is based on the Mini Circuits PSA4-5043+, and the board is designed to be as small as possible to fit in line with the antenna and cable, and to be powered by the receiver itself.

Read more of this post

Power over Ethernet Flashlight

Sometimes you learn about an interesting IC and you build an entire circuit around it for no other good reason… This project is one of those!

The TPS2378 is an IEEE802.3at (Power over Ethernet) Powered Device controller, featuring internal pass MOSFET for loads up to 25.5W, Type 1 (a.k.a. 802.3af) compatibility and auxiliary power source support.

The IC is normally used together with a DC-DC step down regulator to power a network device (the PD) from a PoE compliant switch or injector (the PSE). A proper 802.3at device requires an isolated power supply with some safety characteristics that makes it not trivial to implement, and there are many DC-DC ICs with integrated PoE controller to make it easier, but as I wasn’t really interested in that part I just went for an easier project with just the PoE controller and some ballast… And what better ballast than some high power white LEDs!

This project is a small PoE flashlight, that can be powered by any 802.3af or 802.3at compliant injector or switch. It can be used as a PoE tester, or if you get trapped in a dark datacenter at night!



Read more of this post

Hacking into a Vehicle CAN bus (Toyothack and SocketCAN)

CAN bus is an automation fieldbus commonly used in the automotive industry as the main network bus to allow communications between the many on-board ECUs on modern vehicles.

The Linux kernel has native CAN bus support at network layer since some years, with a lot of drivers for both embedded and USB CAN bus controllers, so it’s now fairly easy to add a CAN bus interface to any Linux laptop and have a playaround with it.

In this post I’ll show how to tap into a modern car local bus, dump a bunch of data and analyze the trace offline to write a decoder from scratch using the SocketCAN APIs and utilities.

This is based on my experiences hacking into my Toyota… Toyothack!


Read more of this post

USB to 100BASE-FX Optical Fiber Network Card

Optical fiber is an intriguing technology, deployed all over the world connecting computer networks with the speed of light (well… almost).

Unfortunately, due to the inherent complexity of fiber network installation and management, optical fiber devices have never found their way in the hands of the user, and are usually deployed only by professionals for things such as backbones, long hauls or really fast interconnections.

Luckily enough, older optical fiber Ethernet components, especially 100MBit ones, are now available as a reasonably low price, so I decided to design a couple of USB to 100BASE-FX network cards just for fun and to learn more about working with optical fibers.

This project contains two complete hardware designs for USB to 100BASE-FX network cards, one with a 1×9 transceiver and one with an SFP slot. Both designs are based on the ASIX AX88772B chip, and fit in a compact Hammond 1551 series box.



Also, there are some useful links and information about designing with OF transceivers and SFP modules.

Read more of this post

HP Wi-Fi Direct Mouse on Linux

In my last post I took apart an HP Wi-Fi Direct mouse based on the OZMO2000 controller from Ozmo Devices.

OZMO based devices are officially supported on Windows 7 platform only, rendering them completely useless as nobody uses Windows anymore… right? Well, it turns out most of the code to use them in Linux is already in place, just waiting to be enabled!


Wi-Fi direct support in Linux is quite young and still considered as experimental, so read on if you dare to try!

Read more of this post

Making Time Lapse Video with IP Cameras

What happens when you find yourself with two IP cameras which you don’t really use? You just make some funny stuff with them!

This post shows how to use an Axis IP camera and a netbook to record a timelapse video of a car travel… including a 15 minute timelapse of car trip from Italy to Germany!

Read more of this post

DIY Cheap Internal WiFi Antenna

Some time ago I put my hand on a couple of broken Axis network cameras which were about to be trashed. These cute small devices have an image sensor with a plastic lens, a wired and a WiFi interface to connect to an external network, and many other nasty features.

The cameras had a busted Marvell power supply, which probably broke ahead of time because of the high working temperature, and once replaced with an LD1117 (I know, not the best of choices…) they were as good as new.

The one thing I did not like about these cameras was the cheap WiFi antenna, which is mounted far away from the casing and gives an old bulky feeling to the device.


This post is a tutorial on how to build an internal WiFi antenna to modify this kind of devices!

Read more of this post

2.4 GHz Inverted F Antenna Eagle Library

ISM radios for microcontroller are becoming quite popular in last years, and if you are designing with wireless radios you have a wide choice of transceiver in both sub-gigahertz an 2.4 GHz bandwidth.

If you choose to go for 2.4 GHz, you’ll have the benefits of a wide choice of radios, relaxed constraints in protocol design and a small size antenna.

Focusing on the antenna, 2.4 GHz radios usually have a differential output which have to be adapted to a 50 Ohm single-ended signal suitable for Wi-Fi antennas, which can be connected to the radio using an RP-SMA connector or directly embedded into the PCB.

This post shows a printed antenna design, kindly provided by TI/Chipcon, suitable for 2.4 GHz ISM radios. You’ll also find a link for an Eagle library with some tuning variant.

https://fabiobaltieri.files.wordpress.com/2012/05/ifa.jpg Read more of this post

Network Statistics with iptables and rrdtool

Netfilter is a powerful tool when it comes to select traffic on a Linux router.

When you set up a chain of rules with iptables, you are also get set of traffic counters with each rule you set, which can be used to see how many times the rule have matched.

If you place a chain of rules without any jump, the packet get counted and goes forward the chain, so that you can write a set of rules just to get some statistic of selected pattern of traffic in your network.

In this post I’ll show how to write some simple rule, get the data on a rrdtool database and plot a traffic graphic out of it.

Read more of this post

Network Activity LED with Linux LED Subsystem

This is a nice userspace application I use on my router to control the Internet connection status LED in “smart” way.

The idea is simple, instead of just randomly blink the LED when there is some activity on the network, this application checks for the total bytes transferred on the network interface, and blinks the LED every 100KB of data.

That behavior is borrowed from modern electric counter, which have a LED that blinks every predefined number of Watt/hour.

That’s useful because you can quickly have an idea of the bandwidth utilization of your connection by just checking how often the LED blinks, so you can instantly identify a low-bandwidth constant traffic by a high-bandwidth traffic.

Read more of this post

IPv6 Stateful Firewall with netfilter/ip6tables

IPv6 is coming!

Ok, that was just a provocation. If you have some interest in networking technologies you’ll know for sure that stable IPv6 implementation are around for many years now but very few providers give the user IPv6 connectivity. You can follow the IPv6 deployment status around the world on this Wikipedia page.

Anyway, for those of you who are lucky enough to have a real IPv6 connection, it’s time to add the “6” to some network utility, and that includes ip6tables!

This script is a stateful firewall for an IPv6 standalone and router installation, which provides the same level of security given by an IPv4 NAT router.

Read more of this post

IPv6 Tunnel Broker on GNU/Linux Routers

IPv6 connectivity is slowly spreading around the net day after day. Sooner or later you may want to get IPv6 connectivity to your home, as some providers already does with brave users.

If your ISP does not give you native IPv6 connectivity you can still get your own IPv6 access in a number of ways.

Read more of this post

Iptables Stateful Firewall and NAT Routing

Network packet filtering! Whether is your home or your company, modern networks have many systems connected. Even a small domestic network can provide connectivity to many devices of different kinds: PCs, laptops, printers, smartphones, game consoles, your neighbor’s laptop (wait… what?!), NASes, media players, TVs…

If you have some basic knowledge in networking, you’ll probably want a way to control all the traffic going through your network, and if you are running a GNU/Linux system, you probably already have what you need… Netfilter!

What you’ll find here are some examples of common Netfilter (iptables) configurations and some scripts I use as a base for my firewalls and network installations.

These are really useful if you need some advanced firewall configuration and you choose to run your own GNU/Linux system as a router instead of a commercial one. Also, these scripts may come in handy if you need to quickly replace a broken router with a spare PC.

Read more of this post

Five Port Fast Ethernet Managed Switch

This project is the complete design of a 5 port fast Ethernet switch, based on the Micrel KSZ8995M switch IC with integrated PHY and an ATMega168 8-bit microcontroller.

The hardware was originally developed in 2009, because I needed a compact, VLAN capable switch to expand the functionality of an NSLU2, which has just a single Ethernet port and that I was using as router for my home network.


  • Complete VLAN support
  • Auto MDIX on all ports
  • Programmable port rate limiting
  • Integrated MIB counters
  • TTL UART interface for external access of switch configuration

Read more of this post

Hello, WordPress!

Hello, WordPress!

My name is Fabio, I’m a Free Software enthusiast with an orientation for lowlevel software and firmware programming and some bit of hardware design.

I write on these pages to give something back to the community, and I plan to post on many subjects of my interests, which include GNU/Linux systems, networking, microcontrollers, automation, electronic design and complete projects I make in my spare time.

Learn more about me on the about me page.