Mikrotik CCR2004-1G-12S+2XS Routing Performance

This is not going to be a full test report of sorts, but a quick note for those in similar boat, YMMV, pinch of salt, blah. 

I've seen too many people on the internet saying CCR2004 (the SFP+ version) will do a shit job at routing traffic between ports, but never any supporting evidence, so I thought I share my own experience. 

In my homelab I have a relative basic setup, with something like 10 IPv4 Firewall rules, 2 NAT rules, 1 bridge with VLANs. Routing performance on IPv4 I'm able to get something like 8Gbps consistent going between bridge ports.

I seem to get a somewhat better performance on IPv6 maybe due to less firewall / NAT rules, something like 9Gbps. 

Obviously if you have crap ton of rules like operating a MSP this will be miles different, but for basic setup I think this is a relatively good number for what this device can offer. 

Happy home labbing! 


[Rant] VanMoof S3 Battery Drain / Dead Bike issue

It's British winter, it's wet and cold. 
Don't suppose anyone sane would be riding their bike out during this weather. 

Needless to say, I stored my bike on the wall and didn't touch it for a long while. 

I expected my VanMoof S3 electric assisted bicycle to be drained of battery when I take it back out.
No biggie, I thought to myself, just plug it in, charge, and off we go again. 

Nope. No no no. Nope, it doesn't work like that with the pretty face S3. 

If you were unlucky like me and allowed your VanMoof battery to fully drain, your bike might never charge and becomes a super dumb single gear heavy two wheeled paper weight. 

This is the second time my bike died of this cause, last time I sent it back to VanMoof to be fixed.
They applied some firmeware update which was supposed to have fixed this issue. 
Yet it reoccurred! So I did some digging to see what is actually going on.

Based on my diagnosis, this is what happened:

1. VanMoof S3 has 2 internal batteries, one main big battery that powers the front wheel while cycling, another small battery for the electronics (they call it the Smart Cartridge, for reasons I'll cover below it's more suitable to be called dumb cartridge, but I digress). 

2. During normal operation, the bike electronics boot up and charges both batteries. The state of charge of the big battery does not play a role in the boot up process.

3. The bike electronics boot up process relies heavily on the small battery having sufficient charge - this is quite common in modern electronics as the battery acts as a capacitor to supply enough power during power surge (e.g., during boot up). 

4. For whatever design reasons unknown to anyone, the bike electronics do NOT check or care about the state of charge of the small battery when booting up, which results in boot -> crash -> boot -> crash loop. 

5. The electronics does pump a very small amount of charge into the small battery in between the crashes, so if the small battery is only marginally discharged below the required capacity, you might get away with leaving the bike plugged in over night, and let it trickle charge.

The small battery (3.7v 3.89Wh) inside the VanMoof S3 "Smart" cartridge.

6. From my testing, the battery voltage goes up and down with every boot / crash loop, but over time it goes up 0.001v every 60 seconds or so. Generous, I know. 

At the end of the day, this is a very bad electronics design by VanMoof. 
This could simply be prevented if the electronics wait for enough charge in the small battery before attempting a boot, as is the case with many electronics! Phones, laptops, you name it!


Day 1 update

My small battery is currently sitting at 2.750v which is 0.95v away from the rated 3.70v. 
Assuming this trickle charge rate is constant, I hope the small battery gets enough charge to hopefully power back on in ~16 hours... fingers crossed. 


Day 2 update

It has been around 12 hours, the Dumb Cartridge is still doing the boot / crash loop. 
This does not look promising.

Measuring the battery voltage it is now sitting at around 2.850V, waaaay lower than what I had expected, which means the cartridge isn't really pumping much energy into the battery. 

#shitdesign, fuck VanMoof.

I'm now resorted to something I didn't want to do - manually charging the Lithium cell. 

I don't have a proper charger, and at the same time I didn't fancy paying £40 or so for a cell charger, so I improvised with an existing buck/boost converter. 
(Yes I know this is really far from ideal and it is a massive fire hazard, this is a one off use case that I hope never to have to repeat in the future.)

I set my buck/boost to mimic a 0.2C charge programme: 

Voltage limit: 4.2V
Current limit: 0.2A (I started with 0.1A but gradually increased to 0.2A)

Since I didn't fancy having a fire in my house if things went wrong, this is happening in the garden right now... 

Warning: don't do this at home! Do this in the garden instead.

I hope a 20% charge will be adequate to let the Dumb Cartridge to boot, so I will be unplugging once the battery stabilises at just over 3.70V. Reporting back soon... 


UK Virgin Media Hub 4 Link Aggregation is very broken (balance-rr)

 Virgin Media in the UK currently offers a "Gig1" service that offers ~1.2Gbps down and 50Mbps up. 

While the topic of mediocre upload speed is valid, that is a discussion for another time. 

Virgin Media Hub 4 modem

While the interface on the HFC interface offers 1.2Gbps downlink bandwidth, the Hub 4 modem itself offers only 4 x 1GbE interfaces, essentially limiting the usable downlink throughput to GbE (in practice ~940Mbps). 

This bloc post covers an undocumented feature, which allows aggregation of multiple GbE ports on the Hub 4, and create a WAN connection that is capable of >GbE speed. 

WARNING: While the bonding is stable with this firmware on Hub 4, the Round Robin (and alb as well) seem to fail for no reason every now and then. This does not seem to be ready for production use. 

Date tested: 2021-01-31

ISP Modem:                     
    Model:                        Virgin Media Hub 4 (ARRIS TG3492LG-VMB)
    Hardware Version:      8
    Software Version:

CPE Equipment:
    Model:                         Mikrotik RB4011iGS+
    Firmware Version:       v6.48


On the ISP Modem side - no configuration needed. 

On the CPE, I created a new bond with the following configuration: 


Suzuki Swift MK3 (2010-2017) Passenger door rattle fix

My swift has developed an annoying rattle coming from the passenger side door.
I could hear it even radio turned all the way up, and it was very annoying whenever I'm driving over slightly uneven roads.

After some extensive investigation, I've realised this is due to a pair of wires hitting against the plastic trim on the door.

The fix is fairly simple, remove the plastic door cover, and apply some dampening material to the plastic panel. In my case I used some kitchen towel and attached it to the door with masking tape.

Easy fix and it worked like a charm.


Viewing DrayTek Vigor 130 Line Stat when connected with a MikroTik router

This article is going to be based on my setup:
  • DrayTek Vigor 130 DSL Modem in PPPoE Bridge mode (OpenReach VDSL2+ connection)
  • MikroTik RB3011UiAS-RM (Connected to S-RJ01 SFP module)

On top of the PPPoE session, DrayTek Vigor 130 has a built in DHCP serer which serves IP address to clients connected to LAN1. 

Default IP:

This subnet is LAN only, however with access to this subnet you can then view the line status on the DrayTek Vigor modem.

When directly connected to a computer you are able to access the DrayTek status page at This allows you to get your VDSL Line Stats.

With some modems you might need to manually add a route of to the interface that is connected to the modem.

To achieve this when the DrayTek Vigor 130 is connected to a MikroTik router with a live PPPoE session, do the following:

  1. Under IP, add a new DHCP client on the interface connected to the Vigor 130 modem. (typically ether1)
    Ensure Add Default Route is set to No.

    As soon as the DHCP client is added, you should see IP address obtained for the interface.

  2. Under IP, verify a new route is populated automatically.

  3. Under IP, Firewall, NAT, add a new rule.

    Chain: srcnat
    Dst. Address:
    Action: Masquerade

You should now be able to access your DrayTek Vigor 130 device via web or Telnet. 


Nexus 6: Brightness stuck at maximum after unlocking phone

Fix: try uninstalling updates for Google Play Services, then update again. Maybe also remove all data associated with Google Play Services.