Good News From 10Gbit Land

Previously in 10Gbit Land…

Browsing through Mikrotik’s RouterOS changelog I noticed something.

6.42rc6 includes this (Yes, this was a while ago - I’ve been busy):

*) crs317 - improved transmit performance between 10G and 1G ports;

Is this what I was after? Let’s try it out…

Connecting to host, port 5201
Reverse mode, remote host is sending
[  5] local port 55268 connected to port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  78.5 MBytes   659 Mbits/sec                  
[  5]   1.00-2.00   sec  75.9 MBytes   636 Mbits/sec                  
[  5]   2.00-3.00   sec  77.8 MBytes   653 Mbits/sec                  
[  5]   3.00-4.00   sec  79.3 MBytes   666 Mbits/sec                  
[  5]   4.00-5.00   sec  77.7 MBytes   652 Mbits/sec                  
[  5]   5.00-6.00   sec  76.9 MBytes   645 Mbits/sec                  
[  5]   6.00-7.00   sec  77.2 MBytes   647 Mbits/sec                  
[  5]   7.00-8.00   sec  75.9 MBytes   637 Mbits/sec                  
[  5]   8.00-9.00   sec  77.0 MBytes   646 Mbits/sec                  
[  5]   9.00-10.00  sec  76.5 MBytes   642 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   774 MBytes   649 Mbits/sec  6065             sender
[  5]   0.00-10.00  sec   773 MBytes   648 Mbits/sec                  receiver

iperf Done.

Still a few (hundred) megabits short, and a rather high retry count, but certainly better than what we were seeing before - so I’m happy to go back to bridging rather than routing.

Read more →

LTE Gateway - the theory

I’m building a LTE to WiFi modem for the car. There are many existing devices to do this, including your mobile phone, so why build one?

I’d like something that can receive a better signal than a mobile phone - especially as our newfound hobby of radiosonde hunting takes us further afield even more than before. And most phones these days are no longer fitted with external antenna sockets. I’d also like it to be permanently fitted into the car, so it’s just “there”. Decent WiFi that extends out of the car would be a plus too.

Here are just a few of the commercially available options for doing this that I’ve collected over the years:

On the left we have the Huawei E585, one of the first such devices. On the right, the ZTE MF70. In the middle, from top to bottom, the Huawei E3872, the Netgear Aircard 785S and the Netgear AirCard AC790S. The E585, 785S and AC790S have internal batteries, and all except the E585 have external antenna sockets.

In this post, we’ll look at why I didn’t just use one of these devices (to be fair, the AC790S still gets a bit of use outside the car) and what hardware I’m planning to build my own with.

Read more →

Trouble in 10Gbit Land

All was well, and performance seemed good. Until I decided to pull a large file from the server to my laptop. Despite being almost next to the 802.11ac access point, I was struggling to get even 5MB/sec. It appeared that the noise level on the WiFi channel was quite a bit higher than it should have been. Looking around with a SDR found what looked to be a wireless AV sender blanketing a wide chunk of spectrum in noise. Moving channel only increased performance to about 10Mbit/sec so I plugged into wired ethernet and tested with iperf.

Accepted connection from, port 55062
[  5] local port 5201 connected to port 55063
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  5]   0.00-1.00   sec  17.1 MBytes   143 Mbits/sec  282   12.7 KBytes
[  5]   1.00-2.00   sec  17.3 MBytes   145 Mbits/sec  266   22.6 KBytes
[  5]   2.00-3.00   sec  17.5 MBytes   147 Mbits/sec  264   14.1 KBytes
[  5]   3.00-4.00   sec  17.2 MBytes   144 Mbits/sec  282   14.1 KBytes
[  5]   4.00-5.00   sec  17.3 MBytes   145 Mbits/sec  251   12.7 KBytes
[  5]   5.00-6.00   sec  17.4 MBytes   146 Mbits/sec  250   12.7 KBytes
[  5]   6.00-7.00   sec  17.8 MBytes   149 Mbits/sec  282   15.6 KBytes
[  5]   7.00-8.00   sec  17.2 MBytes   144 Mbits/sec  295   12.7 KBytes
[  5]   8.00-9.00   sec  17.3 MBytes   145 Mbits/sec  268   12.7 KBytes
[  5]   9.00-10.00  sec  17.8 MBytes   149 Mbits/sec  292   22.6 KBytes
[  5]  10.00-10.01  sec   255 KBytes   247 Mbits/sec    4   14.1 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.01  sec   174 MBytes   146 Mbits/sec  2736             sender
[  5]   0.00-10.01  sec  0.00 Bytes  0.00 bits/sec                  receiver

Yeah, that’s not good. Further testing revealed it only affected traffic being switched from a 10Gbit to 1Gbit port.

Tried putting the “stable” and “latest beta” RouterOS on the CRS317, no change. Tried SwOS too in latest and older varieties - although I couldn’t get 2.3 to boot at all (known bug that crashes it on boot if you have any SFPs plugged in (!) but it seems worse than that for me).

I opened a thread on the Mikrotik forums, apparently it’s a “known problem”. I see that the patch notes mention a similar issue on the CRS326…

I’ve changed the network layout to route between two separate subnets, one for 10Gbit and one for 1Gbit. Performance is actually better - in the same configuration, about 950mbit throughput.

Hoping this is fixed soon, because until then I can’t really recommend the CRS317 on a “mixed” network.

Read more →

Office Chair Hacking

So I’ve got an outdoor workbench that has a surplus-to-requirements office chair sitting in front of it. The only problem is that the workbench is at standing height, so the chair’s just not high enough.

I originally thought I’d have to get a whole new chair… but it actually turns out that most gas-lift struts for office chairs come in standard sizing - something which actually surprised me as a software developer.

A bit of measurement with calipers showed that the bottom of the strut measured 43mm, and that the top was 28mm. A quick search of eBay then revealed this one with very similar looking measurements. I ordered the HC200 model, and it arrived a few days later, somewhat amusingly with the top section sticking out the side of the package (something had pressed the button in shipping and the strut expanded).

Unlike the kind of hardware I usually deal with, the disassembly process can be summed up as “hit it with a hammer until it comes loose”. If this proves especially difficult, a larger hammer may help.

Reassembly, as they say, is the reverse of removal - reassemble, then sit on the chair to push both ends into place.

(you may wish to place the chair upright before use…)

(also, you may wish to purchase a foam mat in a better colour…)

With the taller strut, I probably wouldn’t lean back on the chair all the way - but it’s now the right height to sit at the workbench for extended soldering sessions, and I didn’t have to buy a whole new chair.

Read more →

More News From 10Gbit Land

Well, I bought the CRS317. Purchased from EuroDK for US$315 - best price I could find. Here’s a picture of it:

Brand new piece of hardware and I’ve opened it up already? Typical…

There was one tiny problem - something was rattling round inside. The light pipe for port #2 had come loose in transit.

Not hard to put it back in, but let’s see how it goes on our network…

Read more →

ESP8266 MQTT Serial Projector Remote

In the bedroom, there’s a media centre box attached to a projector. The projector in question is attached to the bed, pointed upwards at the ceiling, but that’s another story for another day…

Originally, I wanted the projector to be automatically switched on and off with the media centre. The projector has a RS232 serial port for control, so it was just a case of connecting this to the media centre with an appropriate cable and writing a few scripts to send commands on startup and shutdown.

However, I’ve just replaced the ancient AMD E350 based Mini-ITX box with a shiny new OSMC Vero 4k, an ARM-based box that you don’t really shut down.

Although I could still do this on the Vero, I decided to implement it as a standalone device. Take an ESP8266 NodeMCU board (a nice breakout board for an ESP-12 module) and combine it with a TTL to RS232 adaptor. Then, write firmware for it that connects to a MQTT server, and we’ll be able to control the projector from the web interface of HomeAssistant or any of the Amazon Echo devices.

Read more →

1000Base-T is so 2005 - but 10GbE is cheaper than you think

I’ve got a fileserver with two ZFS pools on it. Many terabytes of storage and much more reliable than individual disks. Single drives aren’t fast or reliable and I can’t fit all my Steam games on my RAID0 SSD pair. But the fileserver can read and write at close to 500MB/second. However, it’s on the other end of a gigabit ethernet connection, so it tops out at 120MB/sec - barely faster than a normal HDD. So what can we do? Isn’t 10GbE still crazy expensive?

I ended up with a drive letter on my desktop mapped to a SMB share on the fileserver and (most) Windows apps treat it no differently to a local drive. With a Steam library on it, I’m not going to be short on space for a while. But every time I go to load something, it’s bottlenecked by the gigabit connection.

(why ‘panzer’? The default name of a zfs pool is ‘tank’ and there already was one on the server)

Read more →