Jean Galea

Health, Wealth, Relationships, Wisdom

  • Start Here
  • Guides
    • Beginner’s Guide to Investing
    • Cryptocurrencies
    • Stocks
    • P2P Lending
    • Real Estate
  • My Story
  • Blog
    • Cryptoassets
    • P2P Lending
    • Real estate
  • Consultancy
    • Consult with Jean
    • Consult a Lawyer on Taxation and Corporate Setups
    • AI Consultancy for Business
  • Podcast
  • Search

Adding a Hardware Remote Control to Lego PoweredUP Control+ Sets

Last updated: November 09, 2025Leave a Comment

lego buggy

I love building stuff with my son, and one of our latest projects (admittedly more apt for me than for him as he’s too young to be building these kits), was the Lego buggy 42124. This is a great kit that is fun to build but it is let down by the fact that it is controlled using a smartphone. I don’t like using smartphone remote controls and I definitely don’t want my son looking at a screen at a young age, so I set out to figure out a way to use a hardware remote control.

Turns out it’s quite easy to do. I used Pybricks to add custom code to the Lego hub, then ordered a Lego remote to pair with the buggy.

YouTube video

The code I used can be found below. I set the left red button to “ludicrous mode” which enables the buggy to function at full speed. Otherwise, I set it to run at 50% speed since my son is too young to control it at max speed, especially indoors. This way we can both use it and have some fun while using the appropriate speeds.

Lego Buggy (42124)

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button
from pybricks.hubs import TechnicHub
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.B)
front = Motor(Port.A, Direction.COUNTERCLOCKWISE)

# Connect to the remote.
remote = Remote()

# Initialize the hub.
hub = TechnicHub()

# Read the current settings
old_kp, old_ki, old_kd, _, _ = steer.control.pid()

# Set new values
steer.control.pid(kp=old_kp*4, kd=old_kd*0.4)

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end)/2)
steer.run_target(speed=200, target_angle=0, wait=False)

# Set steering angle for the buggy
steer_angle = (((right_end - left_end)/2)-5)
print('steer angle:',steer_angle)

# Now we can start driving!
while True:
    # Check which buttons are pressed.
    pressed = remote.buttons.pressed()

    # Choose the steer angle based on the right controls.
    if Button.LEFT_PLUS in pressed:
        steer.run_target(1400, -steer_angle, Stop.HOLD, False)
    elif Button.LEFT_MINUS in pressed:
        steer.run_target(1400, steer_angle, Stop.HOLD, False)
    else:
        steer.track_target(0)

    # Top speed controls
    top_speed = 50
    if Button.LEFT in pressed:
        top_speed = 100         

    # Choose the drive speed based on the left controls.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed += top_speed
    if Button.RIGHT_MINUS in pressed:
        drive_speed -= top_speed
    if Button.RIGHT in pressed:
        print('Battery voltage:',(hub.battery.voltage())/1000,"V")
        wait(100)          

    # Apply the selected speed.
    front.dc(drive_speed)

    # Wait.
    wait(10)

Lego Top Gear Rally Car (42109)

I also bought the Lego Top Gear Rally Car (42109) and used similar code with a second remote I bought. Now we can race the cars against each other. I can adjust the speed of each through code to adapt it to our different abilities.

Here’s the code I used on this car. I added some things like changing the remote light buttons and naming the remote so that the car would connect to a specific remote out of the two I have, and thus avoid confusion. I also correspondingly changed the hub’s light color.

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button, Color
from pybricks.hubs import TechnicHub
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.B)
front = Motor(Port.D, Direction.COUNTERCLOCKWISE)

# Connect to the remote and set the light on the remote
remote = Remote('topgear', timeout=None)
remote.light.on(Color.RED)

# Print the current name of the remote.
print(remote.name())

# Choose a new name.
remote.name('topgear')

# Initialize the hub.
hub = TechnicHub()
hub.light.on(Color.RED)

# Read the current settings
old_kp, old_ki, old_kd, _, _ = steer.control.pid()

# Set new values
steer.control.pid(kp=old_kp*4, kd=old_kd*0.4)

# Set initial top speed value
top_speed = 100

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end)/2)
steer.run_target(speed=200, target_angle=0, wait=False)

# Set steering angle for the buggy
steer_angle = (((right_end - left_end)/2)-5)

# Now we can start driving!
while True:
    # Check which buttons are pressed.
    pressed = remote.buttons.pressed()

    # Choose the steer angle based on the right controls.
    if Button.LEFT_PLUS in pressed:
        steer.run_target(1400, -steer_angle, Stop.HOLD, False)
    elif Button.LEFT_MINUS in pressed:
        steer.run_target(1400, steer_angle, Stop.HOLD, False)
    else:
        steer.track_target(0)

    # Top speed controls
    if Button.LEFT in pressed:
        top_speed = 75
    if Button.RIGHT in pressed:
        top_speed = 100   
    if ((Button.RIGHT in pressed) and (Button.LEFT in pressed)):
        top_speed = 40 

    # Choose the drive speed based on the left controls.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed -= top_speed
    if Button.RIGHT_MINUS in pressed:
        drive_speed += top_speed

    # Print battery voltage    
    if Button.RIGHT in pressed:
        print('Battery voltage:',(hub.battery.voltage())/1000,"V")
        wait(100)           

    # Apply the selected speed.
    front.dc(drive_speed)

    # Wait.
    wait(10)

Lego Go Kart (42109 variant)

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button, Color
from pybricks.hubs import TechnicHub
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.B)
front = Motor(Port.D, Direction.COUNTERCLOCKWISE)

# Connect to the remote and set the light on the remote
remote = Remote('topgear', timeout=None)
remote.light.on(Color.GREEN)

# Print the current name of the remote.
print(remote.name())

# Choose a new name.
remote.name('kart')

# Initialize the hub.
hub = TechnicHub()
hub.light.on(Color.GREEN)

# Read the current settings
old_kp, old_ki, old_kd, _, _ = steer.control.pid()

# Set new values
steer.control.pid(kp=old_kp*4, kd=old_kd*0.4)

# Set initial top speed value
top_speed = 100

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end)/2)
steer.run_target(speed=200, target_angle=0, wait=False)

# Set steering angle for the buggy
steer_angle = (((right_end - left_end)/2)-5)

# Now we can start driving!
while True:
    # Check which buttons are pressed.
    pressed = remote.buttons.pressed()

    # Choose the steer angle based on the right controls.
    if Button.LEFT_PLUS in pressed:
        steer.run_target(1400, -steer_angle, Stop.HOLD, False)
    elif Button.LEFT_MINUS in pressed:
        steer.run_target(1400, steer_angle, Stop.HOLD, False)
    else:
        steer.track_target(0)

    # Top speed controls
    if Button.LEFT in pressed:
        top_speed = 75
    if Button.RIGHT in pressed:
        top_speed = 100   
    if ((Button.RIGHT in pressed) and (Button.LEFT in pressed)):
        top_speed = 40 

    # Choose the drive speed based on the left controls.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed -= top_speed
    if Button.RIGHT_MINUS in pressed:
        drive_speed += top_speed

    # Print battery voltage    
    if Button.RIGHT in pressed:
        print('Battery voltage:',(hub.battery.voltage())/1000,"V")
        wait(100)           

    # Apply the selected speed.
    front.dc(drive_speed)

    # Wait.
    wait(10)

Lego 4×4 Extreme Off-Roader (42099)

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.C)
front = Motor(Port.A, Direction.COUNTERCLOCKWISE)
rear = Motor(Port.B, Direction.COUNTERCLOCKWISE)

# Lower the acceleration so the car starts and stops realistically.
front.control.limits(acceleration=1000)
rear.control.limits(acceleration=1000)

# Connect to the remote.
remote = Remote()

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end) / 2)
steer.run_target(speed=200, target_angle=0, wait=False)

# Now we can start driving!
while True:
    # Check which buttons are pressed.
    pressed = remote.buttons.pressed()

    # Choose the steer angle based on the left controls.
    steer_angle = 0
    if Button.LEFT_PLUS in pressed:
        steer_angle -= 75
    if Button.LEFT_MINUS in pressed:
        steer_angle += 75

    # Steer to the selected angle.
    steer.run_target(500, steer_angle, wait=False)

    # Choose the drive speed based on the right controls.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed += 1000
    if Button.RIGHT_MINUS in pressed:
        drive_speed -= 1000

    # Apply the selected speed.
    front.run(drive_speed)
    rear.run(drive_speed)

    # Wait.
    wait(10)

Troubleshooting

If you’re having issues getting the code to work, you can try both editors:

  • beta.pybricks.com
  • code.pybricks.com

You can also use this code to verify that a connection is being successfully made by your controller with the hub:

from pybricks.hubs import TechnicHub
from pybricks.pupdevices import Remote
from pybricks.parameters import Button, Color
from pybricks.tools import wait

hub = TechnicHub()

# Make the light red while we connect.
hub.light.on(Color.RED)

# Connect to the remote.
my_remote = Remote() 

# Make the light green when we are connected.
hub.light.on(Color.GREEN)

while True:
    # For any button press, make the light magenta.
    # Otherwise make it yellow.
    if my_remote.buttons.pressed():
        hub.light.on(Color.MAGENTA)
    else:
        hub.light.on(Color.YELLOW)
    wait(10)

Lego 42124 Trike Variant

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button
from pybricks.hubs import TechnicHub
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.B)
front = Motor(Port.A, Direction.COUNTERCLOCKWISE)

# Connect to the remote.
remote = Remote()

# Initialize the hub.
hub = TechnicHub()

# Read the current settings
old_kp, old_ki, old_kd, _, _ = steer.control.pid()

# Set new values
steer.control.pid(kp=old_kp*0.5, kd=old_kd*1)

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

print('left end:',left_end)
print('right end:', right_end)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end)/2)
steer.run_target(speed=100, target_angle=0, wait=False)

# Set steering angle for the buggy
steer_angle = (((right_end - left_end)/2)-20)
print('steer angle:',steer_angle)

# Now we can start driving!
while True:
    # Check which buttons are pressed.
    pressed = remote.buttons.pressed()

    # Choose the steer angle based on the right controls.
    if Button.LEFT_PLUS in pressed:
        steer.run_target(400, -steer_angle, Stop.HOLD, False)
    elif Button.LEFT_MINUS in pressed:
        steer.run_target(400, steer_angle, Stop.HOLD, False)
    else:
        current_angle = steer.angle()
        deadband = 3  # Define a deadband range of +/- 3 degrees
        if current_angle > deadband:
            steer.track_target(0)
        elif current_angle < -deadband:
            steer.track_target(0)
        else:
            steer.stop()

    # Top speed controls
    top_speed = 50
    if Button.LEFT in pressed:
        top_speed = 100         

    # Choose the drive speed based on the left controls.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed += top_speed
    if Button.RIGHT_MINUS in pressed:
        drive_speed -= top_speed
    if Button.RIGHT in pressed:
        print('Battery voltage:',(hub.battery.voltage())/1000,"V")
        wait(100)          

    # Apply the selected speed.
    front.dc(drive_speed)

    # Wait.
    wait(10)

Lego 42160 Audi e-tron


from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button, Color
from pybricks.hubs import TechnicHub
from pybricks.tools import wait

# --- Motor setup for Audi RS Q e-tron (42160) ---
# Adjust ports if your wiring is different.
steer = Motor(Port.D)  # steering motor

# Both drive motors. If the car drives backwards, flip the sign of drive_speed
# below or change one/both to Direction.COUNTERCLOCKWISE.
front = Motor(Port.A, Direction.CLOCKWISE)
rear  = Motor(Port.B, Direction.CLOCKWISE)

# Hub + remote
hub = TechnicHub()
remote = Remote(timeout=None)

# Set both lights to a supported color
hub.light.on(Color.MAGENTA)
remote.light.on(Color.MAGENTA)

# --- Steering PID tweak (same idea as your buggy) ---
old_kp, old_ki, old_kd, _, _ = steer.control.pid()
steer.control.pid(kp=old_kp * 4, kd=old_kd * 0.4)

# --- Auto-center steering using the end stops ---

# Find the steering endpoint on the left and right.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right end.
# The middle is half the difference between right and left.
center_offset = (right_end - left_end) / 2

# Define "0" as the middle by setting the current angle to center_offset.
steer.reset_angle(center_offset)

# Now command the motor to go to target 0 (which is the middle).
steer.run_target(speed=200, target_angle=0, wait=False)

# How far we can safely steer from center (small margin from hard stops).
steer_angle = center_offset - 5
if steer_angle < 0:
    steer_angle = 0  # safety clamp

print("left_end:", left_end)
print("right_end:", right_end)
print("center_offset:", center_offset)
print("steer_angle used:", steer_angle)

# --- Main control loop ---
while True:
    pressed = remote.buttons.pressed()

    # Steering with LEFT +/- buttons.
    if Button.LEFT_PLUS in pressed:
        steer.run_target(1400, -steer_angle, Stop.HOLD, wait=False)
    elif Button.LEFT_MINUS in pressed:
        steer.run_target(1400, steer_angle, Stop.HOLD, wait=False)
    else:
        # Hold center.
        steer.track_target(0)

    # Top speed controls
    top_speed = 100
    if Button.LEFT in pressed:
        top_speed = 60  # slow mode

    # Drive speed with RIGHT +/- buttons.
    drive_speed = 0
    if Button.RIGHT_PLUS in pressed:
        drive_speed += top_speed
    if Button.RIGHT_MINUS in pressed:
        drive_speed -= top_speed

    # Battery voltage on RIGHT center button.
    if Button.RIGHT in pressed:
        print("Battery voltage:", hub.battery.voltage() / 1000, "V")
        wait(100)

    # Apply the selected speed to BOTH drive motors.
    front.dc(drive_speed)
    rear.dc(drive_speed)

    wait(10)

Lego 51515 Robot Inventor

You can also use the same principles to connect to the Lego 51515 Robot Inventor hub. There are many things you can build with that kit, but below you can find the general framework for connecting the Lego remote to the 51515 hub:

from pybricks.hubs import InventorHub
from pybricks.pupdevices import Remote
from pybricks.parameters import Button
from pybricks.tools import wait

# Initialize the hub and the remote
hub = InventorHub()
remote = Remote()

while True:
    # Check if a button on the remote is pressed
    pressed = remote.buttons.pressed()

    if Button.LEFT in pressed:
        # Code for when the left button is pressed
        pass
    elif Button.RIGHT in pressed:
        # Code for when the right button is pressed
        pass
    
    # Delay to avoid rapid polling
    wait(10)

Using a PS4 Controller via BrickController2

BrickController2 is an app that lets you control LEGO creations with game controllers. To use a PS4 controller with BrickController2, follow these steps:

  1. Pair the PS4 Controller with Your Device:a. Put the PS4 controller in pairing mode by holding down the “Share” and “PS” buttons at the same time until the light bar starts flashing.b. On your device (whether it’s an Android or iOS), open the Bluetooth settings.c. Look for the PS4 controller in the list of available devices. It might show up as “Wireless Controller” or something similar.

    d. Tap on the PS4 controller’s name in the list to pair it with your device. You might be prompted to confirm the pairing.

  2. Open BrickController2:a. Make sure you’ve set up your LEGO devices in the app.b. In the “Controllers” section, you should see the PS4 controller listed if it’s connected. If not, try disconnecting and reconnecting the PS4 controller via Bluetooth.
  3. Assign Controls:a. Once the PS4 controller is recognized in BrickController2, you can start assigning its buttons to control specific functions of your LEGO creation. This can include movement directions, rotations, or other actions.
  4. Play and Control:Once you’ve set up the controls, you can use your PS4 controller to play with and control your LEGO models. Ensure the LEGO devices and the controller are both connected and in range for optimal performance.

Further Reading

  • Brickset – reviews of Lego sets
  • Rebrickable – alternate builds
    • GoPro mod
  • MOCHub – “my own creation”
  • RacingBrick on Youtube – fantastic Lego builds channel

Filed under: Tech

Malta’s FATF Grey List Saga: What Happened and the Aftermath

Last updated: March 10, 20265 Comments

malta fatf

Update: Malta Removed from the Grey List — June 2022

Malta’s time on the FATF grey list turned out to be exactly a year. On June 17, 2022, the FATF formally removed Malta from its list of jurisdictions under increased monitoring, citing “significant progress” in addressing the strategic deficiencies identified in 2021. For the complete picture — removal and all — read on. The original analysis from the time of greylisting follows.


On June 25, 2021, Malta was placed on the FATF’s list of jurisdictions under increased monitoring, better known as the ‘grey list’. It was the first time that an EU Member State had been placed on this list due to increased and persistent money laundering and terrorist financing risks.

Let’s take a look at what the FATF itself had to say about Malta’s situation, and why they put the island on the grey list:

In June 2021, Malta made a high-level political commitment to work with the FATF and MONEYVAL to strengthen the effectiveness of its AML/CFT regime. Since the adoption of its MER in July 2019, Malta has made progress on a number of the MER’s recommended actions to improve its system, such as: strengthening the risk-based approach to FI and DNFBP supervision; improving the analytical process for financial intelligence; resourcing the police and empowering prosecutors to investigate and charge complex money laundering in line with Malta’s risk profile; introducing a national confiscation policy as well as passing a non-conviction based confiscation law; raising sanctions available for the crime of TF and capability to investigate cross-border cash movements for potential TF activity; and increasing outreach and immediate communication to reporting entities on targeted financial sanctions and improving the TF risk understanding of the NPO sector.

Malta will work to implement its FATF action plan by (1) continuing to demonstrate that beneficial ownership information is accurate and that, where appropriate, effective, proportionate, and dissuasive sanctions, commensurate with the ML/TF risks, are applied to legal persons if information provided is found to be inaccurate; and ensuring that effective, proportionate, and dissuasive sanctions are applied to gatekeepers when they do not comply with their obligations to obtain accurate and up-to-date beneficial ownership information; (2) enhancing the use of the FIU’s financial intelligence to support authorities pursuing criminal tax and related money laundering cases, including by clarifying the roles and responsibilities of the Commissioner for Revenue and the FIU; and (3) increasing the focus of the FIU’s analysis on these types of offences, to produce intelligence that helps Maltese law enforcement detect and investigate cases in line with Malta’s identified ML risks related to tax evasion.

The FATF website also states that:

“Jurisdictions under increased monitoring are actively working with the FATF to address strategic deficiencies in their regimes to counter money laundering, terrorist financing, and proliferation financing. When the FATF places a jurisdiction under increased monitoring, it means the country has committed to resolve swiftly the identified strategic deficiencies within agreed timeframes and is subject to increased monitoring. This list is often externally referred to as the ‘grey list’.”

So now we know what the facts are. Malta was placed under examination from Moneyval and the nation passed the test, but FATF determined that there were still important problems to address, and Malta had the opportunity to continue demonstrating that it was taking a hard stance against money laundering and terrorist financing (AML/CFT).

Here’s some info on what the FATF expects to see in this regard.

Financial Action Task Force (FATF) president Marcus Pleyer said that a stronger anti-money laundering framework will strengthen Malta’s rule of law and the integrity of its financial system.

“Maltese authorities must not downplay the importance of these measures. Every country that moves on the grey list is not very happy but in the end, the government of Malta gave its clear political commitment to work together with FATF to address all the deficiencies and this is just a signal for cooperation and I am very thankful for this commitment.”

This, he said, would benefit the country in the long term, because strong anti-money laundering systems lead to stronger rule of law, social cohesion, social peace, “and sustainable and fair economic growth.”

Here are some of my thoughts on the subject, as always, trying to be objective and honest.

Malta’s reputation suffered

While the FATF’s statement implied that Malta was fully collaborating to up its game, the immediate reaction by Maltese government officials told a different story. In a statement issued soon after the greylisting announcement, the Labour government said “Malta firmly believes that it does not deserve to be subject to increased monitoring considering the plethora of reforms implemented that led to tangible progress in Malta’s ability to prevent, detect and combat money laundering and the funding of terrorism effectively.”

Needless to say, I consider such statements to be pure political speech that is ultimately meaningless. Malta’s reputation had been and continued to be damaged, and a big part of the blame lies with the current government. Over the past five years, the island had been rocked by constant corruption scandals, not to mention the murder of Daphne Caruana Galizia, a journalist who dedicated her life to exposing corruption in Malta, in 2017.

Other countries that compete for Malta’s business had a field day. For example, Guernsey’s press was quick to report the development, painting it in a very grim light.

Countries like Germany were also banking on the hope that the reputational damage would halt the exodus of companies and high-net-worth individuals from Germany to countries with a friendlier tax code like Malta.

Malta’s reputation as a tax paradise was not something new, and this made it worse. I’ve personally been refused banking services in other countries based purely on the fact that I have Maltese citizenship. That is, of course, ridiculous and shameful, but it’s just one example of the bad image that Malta had already been cultivating during the previous years.

Even after removal from the grey list, the reputational damage takes much longer to undo. In fact, I think that Malta would need to go above and beyond and become a champion of transparency, good governance, and well-functioning administrative systems to eventually find its way back into being regarded positively by the public at large.

Banking issues: still real, but improving

The major banks in Malta had been absolutely horrible at servicing businesses in the years leading up to greylisting, and things got worse immediately after, as foreign banks looked suspiciously at movements to and from Maltese banks. Bank of Valletta, the oldest and largest bank in Malta, had been struggling to find a correspondent bank to service their clients’ needs to receive and send USD.

They had to resort to using Western Union, and businesses that needed USD from within their BoV accounts ran into nasty surprises as transfers commonly got stuck for weeks. Getting knowledgeable responses from the bank’s customer care services was not easy either, meaning lots of time wasted trying to figure out what happened with a simple transfer.

The picture as of 2024-2025 is somewhat more encouraging on the numbers front. Bank of Valletta reported pre-tax profits of EUR 148.2 million in the first half of 2024, up 40.9% — reflecting restored correspondent banking relationships and improved volumes. The punishing negative-interest-rate charge on high-balance corporate deposits was withdrawn from August 2022, which helped.

That said, opening a bank account in Malta for a new company remains slow and painful. The bureaucratic process, slow onboarding for non-resident companies, and general service quality issues persist. The practical workaround many Malta-based entrepreneurs use today is to run day-to-day operations through an EMI — Revolut Business or Wise Business — while maintaining a BoV account for compliance purposes. It’s not ideal, but it functions.

The bigger cultural problem I described in 2021 — that Malta became almost impossible for businesses in “risky” sectors like crypto and online gaming — has not fundamentally changed. Opening a bank account for such businesses is still a significant challenge, grey list or no grey list. The reputational stain lingers longer than the official status on a list.

A failure of EU oversight

While the FATF decided to publicly shame Malta in 2021, it doesn’t mean that the rest of European nations were squeaky clean. Another FATF publication highlights several other European countries with their own problematic areas.

What this meant is that the EU failed as an institution to control its member nations and make sure that they all played to internationally recognized rules and regulations. It’s easy to blame Malta as being a corrupt country with lax law enforcement, but it is well known that many other countries have important issues to deal with as well. Perhaps Malta just proved to be an easy target to pick on this time around.

I expect the EU to get its act together and for all European countries to stop blaming each other, recognize that they each have unique needs and limitations, and work together to help each other. EU critics will undoubtedly see such news as one more proof that the EU does not work. I personally think that the EU is a net positive for its member countries, but there definitely is some work to be done to make it better than it currently is.

This was a wake-up call

I left Malta several years ago, and the state of rampant corruption was one of the reasons. Unfortunately, many Maltese people have been living in a state of denial for years. Even when they acknowledged the sorry state of things, they felt helpless and resigned to the idea that this is how things work in Malta, and there’s nothing you can do about it.

Hopefully, the fact that Malta joined the likes of countries like Haiti, South Sudan, Uganda, Albania, Panama, and Syria on the FATF’s grey list served as a wake-up call for every resident of the nation to change their way of doing things and demand much more from their politicians and law enforcement agencies.

The past decade was characterized by extreme levels of greed which scarred Malta in many ways and attracted many unsavory characters and shady businesses to the island. This greed was not contained in the financial sector. It meant a property boom with little regard to aesthetics or preservation of the precious little that remained of nature. Traffic and the resultant pollution increased exponentially. Malta became very dependent on certain business sectors like online gaming and finance, and the grey listing threatened to blow everything up.

Every Maltese person knows how things work on the islands. Whenever I visit, the topics of conversation invariably steer toward what this or that person did in a shady manner, or how corrupt a certain sector or person is. It is pretty depressing to be honest, as people are so frustrated that they end up sharing their grief with each other, which replaces quality conversation about more productive topics.

There are whole sectors that pay minimal tax just because it has long been accepted that the people providing services in those sectors work in the black economy. Construction workers are probably the most classic example. You will never get a VAT receipt for any construction work done in Malta, and if you even mention it they will look at you as if you’re crazy. This extends to plumbers, electricians, and the rest.

And if you’re thinking that this rampant tax evasion is limited to manual labor, I can provide further examples. Restaurants in Gozo is another classic case. You go and dine at any restaurant in Gozo. At the end of your meal, you get a receipt that clearly states that it is not a fiscal receipt. You pay and that’s the end of it. No VAT receipt gets issued. If you ask, the standard excuse is that the machine is currently broken.

Doctors in Malta are another special case of rampant tax evasion. Since they are exempt from giving fiscal (VAT) receipts, the vast majority simply don’t give any receipt at all when you make a visit to a private clinic. It is very common to walk into clinics and pharmacies where doctors attend to patients and see a big notice saying that only cash payments are accepted. This is an obvious way of ensuring that the government has no way of knowing how much they are making.

I doubt the FATF ever had any insight into these practices. But those are some of the real everyday behaviors that would need to change for the overall culture of tax evasion and corruption to genuinely shift. Otherwise, people will always look at the extreme tax evasion practiced by these sectors and feel the incentive to do the same if they can get away with it — not to mention the feeling of injustice felt by all those who are employed, pay their 35% honestly, and have no way of opting out.

The aftermath: what actually changed after removal?

Malta was removed from the FATF grey list on June 17, 2022 — less than thirteen months after being placed on it. The FATF acknowledged “significant progress” across the action plan areas: beneficial ownership registers, financial intelligence cooperation, and enforcement against tax-related money laundering.

On paper, that is a relatively fast turnaround. In practice, the consequences of greylisting do not evaporate the moment the list is updated.

The honest assessment, looking at Malta from 2022 to the present:

The corporate tax structure — the 6/7 refund system that brings the effective rate down to around 5% — remains intact and is not under threat for companies below the EUR 750 million revenue threshold where OECD Pillar Two rules kick in. Malta even introduced an optional 15% flat tax regime (FITWI) in 2025 for large groups that want to comply with Pillar Two optics, but the traditional system continues to run alongside it. For the typical entrepreneur with a Malta company, nothing material changed on the tax side.

The banking situation improved numerically but not culturally. BoV’s financials recovered. The worst of the USD correspondent banking freeze eased. But the onboarding experience for new companies, and especially for companies in anything resembling a “sensitive” sector, remains difficult. Many Malta-registered businesses run their actual operations through Revolut Business or Wise rather than a traditional Maltese bank.

The reputational repair work is ongoing and quiet. Malta is no longer on any major watchlist. But for entrepreneurs and high-net-worth individuals evaluating Malta as a base, the memory of greylisting — and the cultural issues that produced it — is still part of the conversation.

My view, as someone who left Malta in part because of the corruption culture, is that the structural problems I described in 2021 have not been solved. They have been papered over well enough to satisfy an international watchdog. Whether the deeper culture has changed is a different and harder question. The answer, based on what I observe from a distance, is: somewhat, at the edges, but not at the root.

What are your thoughts? If you want to share your ideas on what the FATF grey listing meant for Malta and what the aftermath looks like today, leave a comment below.

Filed under: Thoughts & Experiences

Fundrise Review – Real Estate Investment in the USA

Last updated: August 22, 2023Leave a Comment

Fundrise

Invest on Fundrise

Over the years, real estate has been doing generally better than stocks. However, most people don’t invest in real estate because of the hefty amounts of money involved.

Fundrise, on the other hand, offers an excellent opportunity for the average, non-accredited investor to invest in commercial real estate with an amount as low as $500.

Nonetheless, the question remains; is Fundrise worthy and reliable? With that said, read on to learn more about this real estate investment platform and determine if it’s the right choice for you.

What Is Fundrise?

Fundrise is a real estate crowdfunding company based in Washington, DC, and was founded in 2002. It is an investment company that allows small and unaccredited investors to invest in commercial real estate using only their smartphones or computers.

The platform invests through crowdfunding, where they pool investor’s funds together to buy properties. Unlike most companies that focus on institutional investors, Fundrise caters to non-accredited investors and is open to US residents.

Pro’s

  • Low minimum investment
  • Doesn’t require accreditation and is open to all investors
  • Investments are passive
  • Relatively low fees
  • User-friendly platform
  • 90-day guarantee
  • IRA is available
  • Access to more significant and diverse investments

Con’s                        

  • Doesn’t permit investors to invest in property deals or individual Fundrise REITs
  • Investments are complex and need due diligence
  • Distributions taxed like ordinary income

Who Can Invest in Fundrise?

Fundrise is suited for all investors, including those that are non-accredited. In addition, both the Starter account level and Basic plan offer lower minimum investments than commercial real estate investments.

Aside from this, it also offers automatic investments that start at $100 monthly, making it great for average but not very wealthy investors.

Finally, it is also worth considering for investors who are after something long-term or those seeking diversification beyond bonds and stocks.

How Does Fundrise Work?

To start investing with Fundrise, you first need to sign up for an account. Here is how to sign up on the Fundrise Platform:

  • To create an account, click on the “Invest Now” option and provide the necessary information, such as your full name, email address, preferred password.
  • Next, choose your preferred type of account, whether an individual account or joint/trust/entity account.
  • You will be then be asked to fill in your other details like your date of birth, phone number, and home address.
  • Next, you will be asked to choose your funding option. Fundrise provides online payment options through debit/credit cards, EFT, or wire transfers.

After signing up and picking an account, Fundrise will invest your money in its allocated products like the eREITS and eFunds, depending on your investment needs.

The eREITS or real estate investment funds focus on investing in income-producing real estate through holding mortgages or buying and managing buildings.

The other product is eFunds, which generally involves purchasing land, developing housing, and then selling to home buyers using investor’s pooled money. Unlike REITs, eFunds focuses more on growth rather than on income.

For both products, payouts can be made in two ways: quarterly dividend distributions and appreciation in the asset value at the end of its investment term.

Key features of Fundrise

  1. Low Investment Minimums

One feature that makes Fundrise stand out is its low investment minimum of only $500. This makes it an excellent choice for those on a tight budget who still want to get into private real estate investments.

  1. Easy-To-Use Platform

The Fundrise investment platform is also straightforward and easy to use. Since this platform is designed for individual non-credited investors, signing up is easy and only takes around 10 minutes.

To create an account, you just need to provide the necessary details, the type of account you want to create, and your preferred payment method.

  1. Customer Support

Fundrise also offers excellent customer service to cater to the needs of investors and real estate developers. When you scroll through their webpage, you will come across valuable guides and CRSs to help you reach them.

However, the company insists more on email support than phone or live chat, which can be frustrating when you need immediate help.

  1. Redemption Program

Fundrise also provides investors with a redemption program that lets them sell their shares back to Fundrise. However, this entails a fee that’s paid into the eFund or eREIT.

Nonetheless, the said fee for redeeming shares is usually calculated as a reduction from the price value of your shares.

Here is a summary of the fees, depending on how long the shares are held:

  • 0% fee if the shares are held within 90 days
  • 3% if held between 90 days and three years
  • 2% if held between 3 years and four years
  • 1% if held between 4 years and five years

Shares held for five years or more do not entail payment of a share-price reduction fee. Also, the redemption program is exempted during times of extreme economic uncertainties.

  1. Interval Fund

This is another product offered by Fundrise that provides greater diversification and liquidity than eREITS and eFunds. In addition, because it is very liquid, it gives investors access to their money quarterly without suffering from penalties.

Other than the benefit of being more liquid, this fund is also significantly larger than the other Fundrise funds and accommodates more assets. That means that it provides more diversification for investors.

Flexible-Funrise-minimums

What Is Fundrise’s Minimum Investment?

Fundrise stands out from other crowdfunding platforms because it provides several account levels with varying investment minimums. This means that investors have different real estate deals to invest in instead of just an individual option.

Also, Fundrise, when compared to most private real estate investments, boasts of low and flexible investment minimums that allow investors to place the right investment amount to meet their goals.

Here is a summary of the different account levels and their minimum investments.

  • Starter Plan

The minimum investment for the starter account level is $500. This is a good choice for investors that want to test Fundrise’s investment options before fully committing.

  • Basic Plan

You will need to invest a minimum of $1,000 for the Basic Plan. However, with this plan, investors get all the essential options available, such as investor goals, IRA investment, dividend reinvestment, and auto-invest.

  • Core Plan

The Core Plan requires a minimum investment of $5,000. Investors that choose this plan get the ability to customize their core plans. In addition, it also allows investors to choose what they want to focus on, whether to increase their long-term growth, get consistent cash flow, or focus on a balanced approach.

  • Advanced Level

For this plan, investors need to pay a minimum of $10,000. However, when you choose this option, you will get the ability to add more offerings to your investment portfolio.

  • Premium

This plan has a minimum investment of $100,000. It offers access to private funds that provide better opportunities for significant returns.

What Are the Investment Styles Offered by Fundrise?

When you invest $1,000, you will be upgraded to the Core portfolio, where you can choose from three plans. They include the following:

  1. Supplemental Income

This plan focuses on revenue, and the approach is to invest in cash flow. You will then get returns through dividends.

  1. Long-Term Growth

As the name suggests, this program is growth-oriented. It involves investing in real estate that is undervalued and then improving it before selling.

As a result, most of the returns from this strategy are from asset appreciation, while a small portion is from cash flow or dividend payments.

  1. Balanced Investing

This is a diversified portfolio that combines both income and growth. Investors can invest in cash flow-generating property to earn dividends and purchase undervalued property to earn from asset appreciation in this plan.

Fees

Fundrise charges a 0.85% asset management annual fee to cater to the ongoing expenses involved with running the portfolios. In addition, investors also need to pay an advisory fee of 0.15%, which adds up to a total of 0.1% in fees.

The advisory fee goes towards compensating for the money and time, and the company has invested in creating its platform. Moreover, this fee supports services like fund administration, customer support, asset rebalancing, composite tax management, and more.

However, you should note that this fee can be waived based on the current circumstances. Additionally, something else to note is that the 1% fee lowers your dividend and not your account’s balance. Lastly, Fundrise can also charge other fees.

What Is the Procedure for Redeeming Fundrise Shares?

To redeem your Fundrise shares, you will be required to send a redemption request through the platform’s account settings.

After submitting your request, you may need to wait for about 60 days before you can start getting liquidity monthly. Additionally, this will entail a penalty fee of about 3% for every redemption value.

What Are the Risks?

Unlike other platforms, investments in Fundrise are passive, which means that investors need to give up control over their investments. Also, Fundrise investments, especially those that have higher returns, come with some risks.

Just like investing in the stock market, there is a possibility of losing money in your investments. However, the risks are considerably lower when you invest in the starter account level.

Additionally, something else to note is that their dividends are non-qualified. This means that they are taxed like ordinary income, requiring investors to pay for the extra tax.

Another downside of this platform is that it is a long-term investment. Therefore, after investing your money, you may only access it after five years without incurring penalty fees.

Final Verdict: Is It a Good Idea to Invest with Fundrise?

Generally, Fundrise is a good option if you are looking to diversify your investments. It is also the preferred investment platform for those with low savings. However, if you have a tight budget but still want a long-term commitment or a liquid investment, investing in REITs would be worth considering.

Ultimately, Fundrise is a private Real Estate Investment Trust that is easy to use, has low minimums, low risks, and a reasonable rate of return.

Additionally, it is entirely passive and provides an opportunity for anyone to get into real estate investing. Nonetheless, you should note that it will tie your money down for a long time.

Invest on Fundrise

Filed under: Money, Real estate

Nebeus Review 2026 – A Crypto-backed Loans Platform

Last updated: March 11, 20265 Comments

Start earning on your crypto

What is Nebeus?

Nebeus is a regulated crypto-finance platform founded in 2014 by Sergey Romanovskiy. Based in Barcelona and operating across Europe and the UK, it bridges traditional finance and crypto through a single account — letting you borrow against your crypto, earn yield by renting it out, exchange between crypto and fiat, and send money internationally.

The platform has grown considerably since its early days. As of 2025, Nebeus has over 200,000 registered users, has processed nearly €600M in combined crypto and fiat volume, and reported 6× year-on-year revenue growth in 2024. In September 2025, the company overfunded a Republic Europe equity crowdfunding campaign, raising €3.6M from over 430 backers at a €50M pre-money valuation.

It holds an Electronic Money Institution (EMI) license in the UK, is registered as a Virtual Asset Service Provider (VASP) with the Bank of Spain, and holds licenses in Argentina. The platform is also preparing for full MiCA compliance as EU regulations come into effect.

Who Is Nebeus For?

Nebeus suits three types of users in particular:

  • Long-term crypto holders who want to borrow cash against their BTC or ETH without selling.
  • Yield seekers looking to earn passive income on crypto they’re already holding.
  • Digital nomads and international users who need a multi-currency IBAN account that works seamlessly with crypto.

Crypto-Backed Loans

This is Nebeus’s core product. You deposit crypto as collateral and borrow fiat or stablecoins against it — keeping full upside exposure to your assets while accessing liquidity.

Nebeus offers several loan structures, which is more flexibility than most platforms in this space:

  • Quick Loan — Instant, pre-approved loans from Nebeus’s own treasury. Simple and fast.
  • Flexible Loan — Fully customizable terms. Borrow up to 70% LTV for up to 36 months, with amounts up to €250,000.
  • StableLoan — For stablecoin collateral, Nebeus offers up to 95% LTV at a low interest rate starting at 4%. One of the highest LTVs available anywhere for stablecoin-backed loans.
  • Interest-Only Loan — Pay only monthly interest and settle the principal at the end of the term.
  • Bullet Loan — No monthly payments at all. You pay both interest and principal in a single lump sum at the end.
  • Mirror Loan — Designed to increase your crypto exposure by borrowing to buy more collateral. A leveraged position, in effect.

Interest rates are fixed for the duration of the loan term. Short-term loans at low LTV can start from 0%. All borrowed funds land directly in your Nebeus account, which comes with a personal IBAN — so you can pay rent, invoices, or taxes straight from it via SEPA.

For comparison, other well-known platforms in this space like YouHodler and Nexo offer similar crypto-backed lending structures, but Nebeus’s StableLoan and Bullet Loan options give it a distinct edge for certain strategies.

Earn: Crypto Renting

If borrowing isn’t on your radar, Nebeus also lets you put your crypto to work through its Crypto Renting program — you lend your assets to the platform and earn yield in return.

Current rates as of early 2026:

  • Juniper — Minimum 0.0025 BTC or 0.03 ETH, term of 1+ month, earns 3.5% per year.
  • Sequoia — Minimum 0.12 BTC or 3 ETH, term of 4+ months, earns 6.75% per year.
  • Stablecoin programs — Up to 12% APR on USDC and EURC (Baobab plan), or 9% APR (Bonsai plan).

You can withdraw earnings every 24 hours, and Nebeus now lets you receive rewards in a different cryptocurrency from the one you rented out — useful if you want to accumulate a specific asset.

Staking

Nebeus has also added a staking product, offering up to 7.5% per year on assets including AVAX, XRP, and LTC. It’s a simple, accessible way to earn on proof-of-stake assets without running your own validator.

IBAN Account and Transfers

Every Nebeus account comes with a personal IBAN, making it practical for everyday use beyond just crypto. You can:

  • Send money to over 150 countries
  • Receive SEPA transfers for free
  • Pay bills, rent, or invoices directly from your account
  • Top up mobile phones across 500+ operators worldwide

Transfer fees: 2.8% for international transfers (minimum €5, maximum €3,500 per transaction). SEPA withdrawals cost 1% with a €7 minimum. SEPA deposits are free.

Exchange

You can buy and sell crypto directly within your Nebeus account. Supported assets include BTC, ETH, USDT, and USDC, with exchange to EUR, USD, or GBP. The exchange fee is up to 0.35%.

You can fund purchases via SEPA bank transfer, which converts funds to crypto within one business day.

Deposits

  • Visa/Mastercard: 2.90% fee per transaction
  • SEPA deposit: Free
  • Cash at retail locations: 6.50% fee (230,000+ locations and post offices)
  • Wire transfer: Free

Security and Custody

Nebeus stores collateral with BitGo, one of the largest institutional digital asset custodians in the world with $64 billion in assets under custody. The custodial arrangement is backed by a $250 million insurance policy underwritten by a syndicate of Lloyd’s of London insurers — a meaningful step up from the $100M figure cited in earlier reviews.

In addition to institutional custody, Nebeus offers optional vault insurance for your own holdings:

  • Single Insurance — €4/month, covers one cryptocurrency
  • Full Insurance — €6.90/month, covers your entire vault

Opening a Nebeus Account

Sign-up requires your name, email, password, and country. KYC verification takes around 24 hours and involves a selfie, a photo of your ID document, and proof of address. Once verified, all features are unlocked.

Nebeus supports a wide range of countries, including many that major platforms exclude. The app is available in English, Spanish, and German.

Customer Support

There is no live chat. Support goes through a help center and ticket system. Response times have historically been reasonable, though the Zoho Desk email replies can look like spam if you’re not expecting them — worth adding their address to your contacts after submitting a ticket.

What’s Changed Since Our Last Review

The original review was written in 2021. A lot has changed:

  • Nebeus now holds an FCA EMI license (UK) after acquiring a licensed entity, plus VASP registration with the Bank of Spain
  • Custody has moved to BitGo with a $250M insurance policy (up from $100M)
  • New loan types: StableLoan, Bullet Loan, Interest-Only, and Mirror Loan
  • Staking added for AVAX, XRP, LTC, and others
  • Stablecoin renting programs up to 12% APR
  • The Nebeus Mastercard (teased in 2021) is now part of the roadmap via the EMI license acquisition
  • Over 200,000 users and €600M+ in processed volume
  • €3.6M raised in a 2025 equity crowdfunding round

Verdict

Nebeus has matured from a scrappy Barcelona-based startup into a genuinely regulated crypto-finance platform with real traction. The core proposition — borrow against your crypto, earn yield on it, and move money internationally — remains sound, and the product lineup has expanded meaningfully.

The loan options are particularly strong. The StableLoan at 95% LTV and the Bullet Loan structure aren’t features you’ll find everywhere. If you’re a long-term holder who wants liquidity without selling, or someone earning meaningful yield on stablecoins, Nebeus is worth a serious look.

The main caveats are the same as they’ve always been: no live chat support, and the platform is still building name recognition compared to Nexo or YouHodler. But the regulatory foundation is solid and the growth metrics are hard to argue with.

Start earning on your crypto

Filed under: Cryptoassets, Money

Income Marketplace Review 2026 – A Growing P2P Platform Worth Watching

Last updated: March 11, 2026Leave a Comment

GetIncome.com

Start investing today

Income Marketplace is a new player in the FinTech field. Based in Estonia, this crowdlending marketplace offers its investors a platform that’s safe and transparent. Their Cashflow Buffer and diverse Loan Originators make P2P investing look promising.

If you’re interested in this new platform, then keep reading. We’ll be reviewing Income Marketplace in this review to help you decide whether or not it’s right for you.

Income Marketplace Overview

Income Marketplace was founded in 2020. It’s an Estonian crowdlending marketplace that allows you to select and control Loan Originators while using risk management mechanisms like Cashflow Buffers. It’s an interesting way to invest in P2P.

Their CEO, Kimmo Rytkönen has a solid background in FinTech. One of the companies he has helped to build is Tunaiku, the lending arm of recently IPO’d Amar Bank in Indonesia. The whole team also has a proven track record in their field. They have a background in management, fundraising, international finance, consumer lending, and P2P investment.

The company’s goal is to make loan investing more transparent and secure. It’s a place where you can invest in loans to earn passive income effortlessly.

[Read more…]

Filed under: Money, P2P Lending

  • « Previous Page
  • 1
  • …
  • 28
  • 29
  • 30
  • 31
  • 32
  • …
  • 89
  • Next Page »

Latest Padel Match

Jean Galea

Investor | Dad | Global Citizen | Athlete

Follow @jeangalea

  • My Padel Experience
  • Affiliate Disclaimer
  • Cookies
  • Contact

Copyright © 2006 - 2026 · Hosted at Kinsta · Built on the Genesis Framework