So you want to build a driving sofa?

(mis)adventures and lessons learned while motorising a sofa

So what do three students working "more than full time" on an electric formula student racing vehicle need?
If you guessed "some awesome time consuming side project" you were right.

This is how project couch was born.

The first iteration

It all started with a black faux leather sofa we got for free on Willhaben in 2019 - the local craigslist alternative.
Or should I rather say with a "Willhaben-heist"? We borrowed our team's big transporter and got many nice looking sofas, as the ones the team had at that time were pretty gross already.
We came back with a big car full of sofas and picked out the one we liked most for our project und used the rest to replace the gross ones in the team's social room (or by then still "social corner" in the main room of the workshop).

I recently also got a whole bunch of hoverboard motors/wheels for very little money and we had some old (absurdly large) LiIon pouch cells lying around.
Combine this with the original motor controllers of the hoverboards, some leftover microcontroller board from the formula student team and a cheap joystick from Aliexpress you get iteration one:

Photo of a black sofa with two people sitting on it. The couch is on an asphalt road and has small caster wheels in the back and a metal plate with a joystick taped to the right arm rest.
Iteration 1 - For some reason I do not have any good pictures of it.

It wasn't great.

It didn't have enough power, had bad traction because of the front wheel drive, the joystick was awful und the small casters in the back made the ride very uncomfortable.
But it was fun!

Iteration 1.5

Small improvements.

First we got a new joystick. It originating from the remote control of a tunnel bore, this was easily the most expensive part of the couch but we got it for free (<3 thank you, generous donor!).
But it was so satisfying to use.

Me sitting on the front passenger seat holding a tunnel bore remote controller.
Adult toys :P

The second upgrade was to switch from the hoverboard controllers to two VESCs.
While being significantly more expensive, they also allowed us to use about four times the power compared to the original controllers (surprisingly enough the motors did not complain at all. They only got slightly warm).

Last but not least the couch got some WS2812 based LED strips for lighting - these did not hold up for long though, as they are surprisingly fragile.

Video snapshot of someone sitting on the same black sofa as before but this time with headlights, a nice big - one could even call it ergonomic - joystick and a lot of motion blur.
Video snapshot of iteration 1.5 - For whatever reason I do not have a proper photo.

It worked better than before, but still had most of the issues of iteration 1.
More power - but still not comfortable ^^

Iteration 2

Seeing how badly the front mounted motors performed we decided to move the motors to the back and the casters to the front.
while doing so we also designed some mounts for brake discs and calipers but that never really worked all that well - but it also didn't really drive fast enough for it to matter.

We also designed a new Dashboard using CAD - cardboard aided design - and as the prototype was more stable than we thought it remained made from cardboard for a surprising amount of time.

Photo of a piece of cardboard folded into a roughly 'sofa arm rest' shape with a joystick, an emergency stop button, a key switch and an iButton reader stuck to it.
Inkscape and cardboard. The best combination imaginable.

I also got some batery modules from an Audi E-Tron to replace the - by now "spicy pillow" - LiIon pouch packs (thanks again to another generous donor).
To use those safely we designed a slightly modified version of the battery management system I designed for our formula student team so that the slaves fit exactly in place of the original BMS PCB the modules came with.

This also meant that we needed a BMS master, which escalated into us now also having a real accumulator fuse with a high enough interruption rating, an accumulator isolation relay and precharge circuitry. This is very simmilar to how it is done in formula student, but not galvanically isolated and only separating the positive side with a single relay instead of isolating both sides, as we do not have a galvanically isolated system and are well below the "safe to touch" limit of 60V (12 series cells, split over two modules with six series cells each, so about 50.4V maximum).

A photo of the top of a battery module from an Audi E-Tron. It features 12 prismatic cells in a two parallel, six series configuration welded together using thick nickel plated bus bars. The bus bars feature screw-in connection points in between every series cell which our battery management system slave is screwed on top of. Said BMS circuit board also has one temperature sensor sticking out onto every bus bar.
Don't mind the wrong marking on the PCB - contrary to what I initially thought this stack belonged to an Audi E-Tron, not a VW eGolf.

All in all this made for a way better driving experience. It was still a bit underpowered though and it was still a bumpy ride.

The couch is removed from it's frame and someone is sitting in the middle of the frame with a laptop connected to one of the VESC motor controllers.
Again I do not have a photo of the finished thing so have one of us debugging the motor controller instead.

Iteration 2.5

So what to do about the power issue? Get bigger motors of course!

But first we had a big move of the formula student team into a different building so we disassembled the couch and packed everything up neatly (and made sure that the moving company did not drop the box containing the battery).

A cardboard box marked with arrows showing the correct orientation and 'AKKU!' (which is German for battery) written on it with red marker. On top of the box are the two Hoverboard motors and in the background the steel frame can be seen.
Neatly packed.

This is also when we discovered that all the vibration of the previous iterations had destroyed the inner structure of the sofa so we left it at the old building.

Willhaben to the rescue - again. We got a new sofa - this time a brown one made from real leather - and two sets of M365 (the basically legendary electric scooter from Xiaomi) wheels and I also bought some bigger casters with air filled tires for the front.
We used these to replace the Hoverboard motors and the small, hard casters that were on there previously.

A brown sofa for two people which looks pretty worn but also very comfy.
Not as nice looking - but waaaay more comfy.
Another picture of the couch lying next to it's steel frame with a person connected with a laptop to one of the motor controllers for debugging. Scattered in between are various tools loke a screwdriver, some pliers and a soldering iron.
Debugging - Again. Curiously this is also the first real picture I got of the final form of the dashboard/controller-mount made from wood+aluminium instead of cardboard. It did exist way longer already though.

This iteration was also the first one to go along with us to the formula student Austria event in 2023.
Charging on the campsite while taking up minimal space works surprisingly well as it currently is pretty easy to detach the couch from the frame and store the couch in the transporter it came in.

The steel frame of the couch with all the electronics leaned vertically against a big tent while being connected to a power strip for charging. In the background there is an empty swimming pool and some tents.
Couch tired. Couch sleeping.

While we were there we also got scrutineered and got to collect our inspection stickers.
Or to quote one of the staff members during a brake test "I guess backwards turning wheels while still moving forward counts as blocked wheels?".

A close-up of the couch dashboard which is the mount for the controls to the right arm rest. The whole side of it is covered in the event's scrutineering sticker which all the smaller stickers for the different technical inspections get stuck to. One inspection sticker is already in place. A DSub-9 connector for debugging is hanging out of the case.
First technical inspection passed!

But what would be a story without some catastrophic mishap.
While recalibrating the motors we failed to notice that the VESC had two phases of the motor constantly powered which resulted in some really nasty burnt smell and a motor that would not turn very well anymore. We also managed to not take any spares with us so I had to drive back to our workshop to get a replacement (~2h drive one way). On my way back to the workshop an increasing amount of teammembers asked me to also bring other stuff they forgot so while I only intended to come back with a single motor I came back with an almost full car of random stuff instead.

Close-up of the stator of an M365 motor. It is clearly visible that about two thirds of the windings are burned as they are completely black.
Not a nice view (and smell).

While I was away, the team's motor expert apparently was bored so now we have a surprisingly accurate simulation model of this motor which also confirmed all the observations (in regards to maximum power, temperature increase and such) we made about it in the past.
The TLDR is: This motor is still too weak for the load.

So it was time for another upgrade!

Iteration 3

It's time to take option one of "Go big or go home".

The friend I'm working on this with (which is also the one visible in most images above btw) got some new motors.
He told me that they were big. But it only really dawned on me how big they were when we mounted them on the (new) frame.

A new steel frame on a welding table with some gigantic motors from electric motorcycles mounted to it.
'Go home' was never an option.

These things pack quite a punch.
While we will not use anywhere near their full power capability (not even the one they are rated for - we want to stay within the limits of the Austrian StVO/KfG to count as an electric bicycle), we tested them up to 7kW peak (each!) and they barely got warm.

We also got a new motor controller also designed by said friend. Based on the VESC we had before but both on one PCB and an actual way to mount a cooler to it as the old VESCs were constantly overheating.

In addition we swapped the BMS slaves to a new revision using the LTC6804 instead of the LTC6811, as we had some weird issues with the 6811 (both on the formula student car and the couch).

With those absolute units we had to cut some holes in the sofa though to fit them without getting the rear axle too far forward.

Couch sitting on the new frame with it's rear leather folded upwards and two cuts in the wood/cardboard below to make space for the motors.
Cardboard and MDF. Yay...

As these new motors came with brake discs already we also decided to get an actual hydraulic brake system. At 25km/h it is actually quite scary if the battery management system turns off and your electric brake stops working.

The new steel frame with all components - including a new hydraulic brake - at least somewhat 'installed'.
Now with fancy brake.
A close-up of the wooden brake lever and brake cylinder. It is turned from cherry wood.
With an even more fancy brake lever.

During the event the couch lived mostly inside or behind the electrical scrutineering tent - this time we were part of the staff team.
While it was in the way sometimes, it got accepted quite well by the others, if I dare to say so ^^

One person sleeping on the sofa and a second one sitting next to them on the sofa.
Seems to be comfy.

Iteration 3.5(?)

I'm not sure if this is worthy of an iteration but since then there have been some smaller things we worked on.

While the couch previously was mounted using wood screws, it now has M4 inserts and proper M4 screws - this should hold up a bit longer before breaking.
We also built a small "trunk" for the couch to carry some tools and our personal stuff with us.

In addition to the already-present-in-I3 rear lights, blinkers, warning light and horn we now also have some front lights.

We also did some tuning to get the motor power down to levels that should be mostly legal (the way it should be measured is hard to measure but it should be mostly fine TM).

Future improvements

So what is still missing?

The biggest issue right now are the front wheels. The cheap casters wear out their bearings (if you really want to call them that).
Our current idea is to build some overengineered casters ourself. If that doesn't work we might need to implement a proper steer by wire system?

There are also numerous smaller things like a dashboard or phone mount to display stats like battery charge and speed, state of charge estimation, a separate charging mode where the motor controller stays off, ...

Also there still is a lot of software that needs to be built. Mostly related to vehicle dynamics (doing global speed limit instead of limiting both motors to 25km/h - else you can't really steer at max speed, have some sort of torque-vectoring to smoothe out uneven weight distribution on the couch, ...).

I will try to keep this post updated with any news. As none of the code and hardware is really finished I will not publish the files here yet (it's a mess) - if you need anything specific from this feel free to reach out to me, I'm happy to share design files and code under some open source license.