King of the sidewalk – Pimping Chris Ride-on car Part 2

Quite some time has passed since my last real posts, and looking at the car it feels like not much has happened, but re-reading the blog i realized quite a lot did.

No, the massive motor, differential and chain-drive is not in place yet and as you could see in my last blog one of the old gearboxes died. I also mentioned i wanted to keep it rolling during the weekends when my little guy was here, so tearing it all down and start building the drive-chain on the car itself was a no-go for me.

The cat ate the led-lights

And what’s left of it was pulled away by my soon to be 2 years old little rebel :) They will be replaced with more rugged LED strips for actual cars to make sure they get to stay.

I made a few poor attempts to patch the old gearboxes, but ended up removing it all together while awaiting the somewhat beefier replacement 550’s.

 These are the RS-550 12VDC doing 23.000 rpm.

The search for wheels end

Wheels was an issue, and yes, i went the expensive way with a set of used DeCont gocart tyres.

Front: LeCont 10×4.50-5.

Rear: LeCont 11×6.50-5.

I ended up paying around 160 euros for the set. It looks pretty fancy, i must say and my son loves them.

There is no object so soft but it makes a hub for the wheeled universe. Walt Whitman

I now had wheels but no hubs for the rims to go on and while browsing ebay i didn’t find anything that was reasonably cheap or would just take too long to ship.

Being a responsible adult as i am, i have saved all scrap PLA from failed 3dprints, recycling this makes great sense. I decided to mold them so i measuring the inner diameter of the rim, then ran off to the local food-store and bought two canisters of corn that had just about the same diameter. The cans were emptied, cleaned and put on a the stow in a pan, heated to 210 degrees and the plastic was slowly added to make sure no large bubbles formed.

These chunks were milled flat to size. I drilled and tapped M8 holes and secured the wheel.

 

Art consists of limitation. The most beautiful part of every picture is the frame. Gilbert K Chesterton

I also started building the frame that once finished will replace much of the under-carriage of the current car. The game-plan is simple. Build a rolling frame with suspension, brakes, gears, differential, steering and motor and once ready transplant that frame to the car. Until now i started created 3 revisions of the back-end but stopped half way and reflected over decisions, scrapped it and started over again. This is most likely nothing what it will look like when “done”.

I have used aluminium as much as possible to keep the weight down. I got my hands on a 1300x60x40mm u-profile that shapes the base of the frame. The barrings housing holding the differential had to be milled down slightly, and 10x15mm strips add supports.

Initially flaky lower control arms moved me from cheap hollow tube, to solid square stock, to end up with 10mm thick aluminum blocks at the end.

I have been able to do most of the milling on my tiny Proxxon MF70 Micro-mill, but i REALLY need a bigger machine that eats more material, preferably CNC but for now this will have to do.

 Rear differential, bearings, chain, chain-tentioner, electric motor and the lower control arm mounted. Battery box will be mounted on the opposite side to the motor to balance out the weight.

All of this will be covered under the driver seat to avoid anyone losing a tiny finger. I am considering to add linear actuators to the suspension to be able to raise and lower it as i think it would make it look sleeker. Not sure yet, leave your comments.

The child supplies the power but the parents have to do the steering. Benjamin Spock

I bought a gokart front steering kit, including wheel-hubs. I welded a few nuts and bolts to them allowing the pocket-bike disc-brakes and calipers to be mounted, then gave them a splash of paint.

Life is made of ever so many partings welded together. Charles Dickens

I ended up buying a dirt-cheap 200 amp MMA/TIG. I burned a few boxes of rods and i am starting to get the feel of it. And yes, I even welded aluminium, but like everyone said, it’s hard to do with stick (however not impossible).

So far this project is moving a lot slower than i am wished for but it’s busy days and i have spent a fair amount of time picking up milling, using lathe and welding. With this mix of new trades i am reconsidering a lot of decisions made prior to posting here, so you have not seen half of it.

Anyway, just wanted to let you know i was making some progress.

Bringing my apartments fusebox into 2018

I bought my house in 2006, and beside for being an old drafty house that applies to standards set in the 50’ies i love the place.

However at an early stage i could see flickering in the light and hear arching electricity at some point. I did intend to address it and managed to narrow it down to the fuse-box but due to life changing rapidly in all directions i never got around to it.

At some point a fuse burned out, and as was replacing it i almost burned myself on the fuse-stand. I shut down the main-power, removed the fuse and only to notice the top of the porcelain fuse all burned out. With the power shut down, i used a screwdriver with some sandpaper on the top to clean up the metal to once more have contact. In the process i found another top of the fuse melted into the fuse-stand. I spent 20 minutes making it shine again, and since that it just worked. However, as i started rebuilding the car of my son i realized this would not be safe to run a welding machine consuming 5-8kw.

It turns out one of the fuse holders had broken, probably due to heat and that the fuse had been arching ever since. I don’t think you will ever get closer to an electric fire, without actually having a fire.

At a closer look i noticed something even worse. My apartment only has one phase coming in, but my fusebox used a 3 phase ground-breaker, which means that in order for it to break the power, all phases would have to be short-circuited which could never happen with a single phase. This means the ground-breaker might as well have been a nail or piece of cable, as it would never brake if something went wrong.

Even prior to knowing this, i didn’t trust the wiring in the walls to be up to standard, and after seeing it, it made sense not to. I therefore added a new phase, with proper cable to it’s own power-socket next to the fusebox. I will trust only this socket for anything which uses a lot of juice.

ABS welding

Having crashed my bike a few times my fairing have had better days. I read up and realize it could be welded using a regular solder-iron.

The plastic i use for this are ABS-rods specifically made for ABS-welding, but if you have ABS filament for 3d printing, this will work as well.

 

The technique used is simple. Heat the area where you want to add material with a soldering iron and insert new material slowly building it up again. You can use a gas driven soldering iron, but only if it has a tip. Exposing ABS to a torch flame will ruin it in a heart-beat.

Start by cleaning up the piece, filing down dirt to expose clean material.

Cracked piece

Start by making a string in the direction you intend to build the plastic.

Starting to build up ABS

Continue injecting material, adding a good 2mm in thickness all around it. This will insure that the core of your new part becomes solid and that the piece is not full of tiny holes and gaps once filed down.

It’s important to inject a lot of material and avoid gaps with air.

Keep re-melting the plastic and insert more plastic to make sure it’s solid.

Redrilled and filed into shape.

After filing the piece down you might see small gaps. There is no harm in reheating and add more material if you see gaps.

A couple of coats of primer later

Only thing missing now is a few layers of paint and clearcoat and it will be as strong as new.

Your bike is now ready to be crashed again ;)

King of the sidewalk – Pimping Chris Ride-on car Part 1

UPDATED: 2018-03-06

As i promised a lot of the future posts will be about hacking toys.

In November i bought this Mercedes GLA Class Ride-on kids car for my 1 year old son, a car he loves so much but i have a feeling he will never love less as this build progresses.

You can find it at amazon

So some facts about the car:

Its about 120 cm long, 60 cm wide, 50 cm high and weighs in at around 25 kilos.

It costed about 250 euros and can be driven from the car or controlled by remote. The car has 3 emulated gears, each allowing the motors to higher rpm’s the higher the gear. I say motors, because this model have 2 separate 6 v engines (of type 380/390) which are serial-connected to the 12 volt relay in the receiver. The top speed is 5 km/h. The engines the car came with:

RC-390SMP-5028-68L DC6.V 15000RPM

Gearboxes use all-plastic cogs, which is all good in it’s original state, but this might have to change to support what i want to do:

Knowing nothing about the motors (initially that was) i took some measurements and started to google:

The controller is kind of a all-or-nothing switches, which makes you zig-zag to the left and the right to keep a straight line while driving it using RC along narrow curbs. They added a acceleration lag in the power-on to soften the jerkiness a bit, but unfortunately they didn’t not managed to do the same when dropping the gas, so stopping is pretty abrupt.

Forward/Backward/Left/Right/Shift incrementally/Stop

Additionally it has a 6 songs “stereo” , with a 3.5 mm stereo-plug. The songs are well composed mixture between kids music and electronic dance but 6 songs gets boring fast so this is on the change list. When pushing the start-button you hear a roar of the motor, and pushing the horn makes a “mepp-mepp-mep-mep” tone.

 

Xinghui CLB084-4c 2.4 ghz receiver, charger, motor controllers and stereo.

The receiver can be found on Aliexpress, but a pdf with all pinouts have turned out to be harder to get my hands on. That sucks, as I see pins that are unused meaning it might have more features I don’t know yet. Will reverse engineer it later. All in all it’s a funny toy for it’s price but a lot of improvements can be done.

So what am i planning to do with it?

Well, i have a lot ideas but some cost a bit of money and some are hard to source parts for and some will simply be unsafe.

  • It should be a little faster, with softer acceleration and braking.
  • Replace the radio-controller/receiver, with something a bit more professional, less jerky and with lots of spare channels to control all the electronics.
  • Proper rubber tires giving traction and look better. A few options out there, but I haven’t found exactly what I want.
  • A proper stereo with some umpff!
  • Individual brake disks on the front wheels to be able to do burnouts.
  • Melody horn.
  • Proper seat-belt 3 or 4 point, new seat even?

Let’s get started.

The first thing that struck me when i started screwing it apart was how much space there is left in it. The the hood is screwed down, but once unscrewed yet another gigantic rather empty space is reveled. Same goes for the trunk. Ohhh the potential :)

So where does one start?

Let’s go with the low-hanging fruit. Nothing says car-tuning like RGB LED-stips, and it’s something my son would notice directly so that’s what i went for. End result looks (and sounds) something like this (hosted video on youtube, as i slashdotted my hosting company yesterday thanks to HackerNews):

A second fast win would be stickering it with some AlpineStars, Brembo, Hel performance and GoPro stickers. I had a left-over “i poke bear”-sticker from the pimping of my zx636 ninja, so that went on the hood too.

Speaking of the hood, i mentioned i opened it up however seeing the hood open made me think it should not be screwed down ever again. I made 2 temporary hinges with a glue-gun and two screws, and cut off the majority of all the flanks that held the hood into place making the area easily accessible for future upgrades.

The open hood reveals a lot of free space and a mono speaker.

Ignition-switch:

My little guy is totally fascinated by keys, so needless to say he needs an ignition-key. I found this little switch in one of my favorite stores around the corner, Rotor-radio Amsterdam.

To get it into the car, i had to unscrew large parts of the car.

Then solder it into the harness where the old switch was connected.

Tada!

Reversing camera.

I found this super-cheap dashcam, and decided it would make a great rear reverse camera:

Quality of the picture is great and it also has night-vision :)

Opening it up, shows i will have to solder 17 wires to separate the camera from the circuit-board:

Not impossible but since i intend to install a proper stereo in the dash too, it makes sense putting this on ice until that is done and I know how much space is left.

I got the power!

So far i have not run into the limitations of the battery, but my son is quite young and we only do small rounds with it. However i plan to stick a lot of electronics in this beast so a larger battery makes sense. The car actually had room for the larger battery where the old one was mounted

I replaced the 5.5Ah 12 volt lead-acid with it’s 12 Ah big brother.

Battery upgrade

With brakes, LEDS and what-not, i decided to buy a 8-channel radio. I can only hope this scales to the ideas i have but we will see:

RadioLink T8FB

Getting the radio ready!

I have never built a radio-controlled car from scratch so selecting ESC, servos, motors, batteries was all done ad-hoc, while googling around. This radio is intended for plane/helicopters, so i started by reconfigured the control to spring back the left hand stick when released:

RadioLink T8FB opened up.

For the drive-line i choose a 40Amp 12 volt ESC from Graphner. Two old servos from a small electric plane simulated the servos for the brake-disks and a smaller ESC to control steering.

The old fireblade blinker is connected to the 40Amp ESC to verify that all works. Having it all on the table like this allowed me to calibrate servo’s and ESC’s in a simple way.

Once that seemed to be working i hooked it up to the car. As my son would be very sad if his stereo did not work, i left as much of the old electronics hooked up in the birdsnest you can see below:

Nested the new rc-parts into the original wiring, and it works.

This means that i now can control the car over the 8 channel radio, while still providing power to the old electronics that allow the fake engine sounds and “stereo” to work.

After a bit of tidying up, it is starting to take shape. Doubt it will look like this when i am done, but lets see.

Can you hear me?

Speaking of sounds needless to say he needs a proper horn. I found this 20 watt siren with 6 tones for less than 10 euros, so that’s going in.

I don’t know how loud it is, but it’s f***ing loud.

Adding the ugly keypad on the dash would have been a five minute job, but as i mentioned i want a stereo in it at some point and space is of the essence.

Inside the keypad is a tiny circuit-board that i could make fit inside the steering-wheel, but to fit the center the steering-wheel, it will need to be chopped up.

The best part about cheap electronic tends to be single sided circuit-boards which allow you to customize them very simply. I locate the place that has most free space around components.

After doing some measurements and make sure it will work i use a hobby-knife to cut it in half, making sure i leave enough copper trace to solder cables on to reconnect the half’s.

Next i make a few pilot-holes and start the painstaking process of filing away on the plastic. Not scratching it in the process is an art i still don’t master.

The buttons needs to be trimmed down to fit the housing too. Two component glue fixes them in their position and make sure they spring back out again.

Once everything seems to fall in place i go ahead and solder it. Leaving this part for the end is critical as you are very likely to pull one of these tiny 14 solder-points and the copper it’s attached to if the cable snags later. I secure the ribbon cable with melt-glue to allow me to to be less careful when putting it all together again. The circuit board is screwed back in to new mount-points i took from the old casing, and the whole construction is secured in several layers of melt glue to make sure it can handle hard pushes without breaking of.

Now all the old electronics is mounted back into the steering-wheel.

Cable is threaded through the steering column, and the wheel is re-attached.

The motors!

Engines run in a serial connected fashion, but i hear people on the web slapping both one and two extra batteries on these motors, so with the new fat battery i decided i could afford to parallel-connect them instead.

I have two blocks like this. This one parallel connect the engines and the other serial-connects them, if i ever want to return it to that configuration.

Disaster strikes!

Unfortunately 12 volt, over a 40Amp ESC on a 12ah battery on the RS-390’s was i bit too much for the original design to deal with and one of the gearboxes tossed in the towel.

The accident struck as i was taking it for a test ride on the street by simply reversing the car and hitting full throttle.

I never expected the main cog to crack like this, maybe some of the smaller ones but not the largest..

This made me give up all hope on using those gearboxes for any larger or more powerful type 380/390 motors. I need something a bit beefier for transmission, or it will crumble just like this did very fast.

A new dawn

I went above and beyond the original motors when i bought a 48 volt 1000 watt motor of amazon. The motor is meant for a e-scooter and is 200 times stronger than the original engine so a frame will have to be built. I will follow the same practices you would if building a car. If possible with individual suspension and a rear differential to make sure it corners nice. The base will be widened about 100mm and lowered about 30mm to allow it to sit better on the ground.

Material is slowly collected, the engine, cardans and a rear differential has arrived, i am still waiting for the front disk-brakes and 40kg servos.

I also decided this build will need welding. For material i wish i could go aluminum but a lot of people keep advising against it, and my Argon gas is delayed 2 weeks, meaning i might for steel wishbones. I ordered a 200Amp TIG/MMA welding machine which should allow me to weld both stainless and carbon’ed steels. Additionally i had to rebuilt the main fuse-box in my house to be able to run it without burning my house down. As soon as my gas arrives i can start climbing that hill.

In the next part i will get a rear differential, suspension built and the motor mounted.

 

Suggestions and inspiration is very welcome. Current challenges:

  • I need wheels and have been  looking for weeks with little avail.. They should be 300mm diameter, ~120mm wide, preferably with an aluminium hub and air-filled tires for weight-reduction. Any suggestions are welcome. I currently explored Golfcaddy’s, wheelbarrow, go karts and ATV/Quad.

  • Suspension. Should be 70mm(compressed)-125mm(decompressed) long and deal with 25kg each.

Bringing a tossed away DCR-VX1000e back to life

I have always loved the VX1000-series of video cameras from Sony. Released in 1995 at a price of $3500, this camera revolutionized what Sony calls the “prosumer” customer segment, being the first DV-camera using Sony 3CCD color-processing and firewire interface. To this day, the VX1000 has a huge active community and a refurbished camera can still bring up towards 800 euros, something you rarely see with 19 year old electronics.

dcr-vx1000 2

A friend of mine was lucky finding one of these tossed out on the streets of Amsterdam a half year back and as soon as i saw it i wanted it. It had no charger but he knew what he got his hands on and figured he could probably get it working.

Some time passed and my friend realized he would not get around to fixing it so i figured i could give it a try and bought it cheap.

First thing i checked was the battery, which was dead. At 7.4 volts, i had nothing that could charge it but building chargers and batteries gets boring at some point and that point was reached for me :). For 49 euros i got a pirated battery and charger:

DSC_0664

I charged  the battery and inserted it and a tape in the camera. It sucked in the tape and i recorder a minute.. At this point i wanted to play back what i recorded to see that it was working. I was a bit confused as i could not see any controls such as play, stop, rewind and so forth anywhere :)

I downloaded the user manual, checked the playback part and tried to follow the instructions. “Press play” was the last step. I could still not see a “Play” button anywhere. I verified that i was reading the right manual, and i was. “What a fuck?!”.

Googling the camera model, they all looked the same to me. Where the hell was the play, rewind and so forth?!! Then i stumbled over this picture:

sony_dcr___vx1000e_pal_camcorder_5_lgw

Turns out these are back-lit by leds and can not be seen when the camera is powered off. That’s when i discovered this broken flex-ribbon:

DSC_0648

This was gonna be tricky.. I had attempted to solder onto flex-ribbons before but always failed miserably. I checked youtube and found this guy in the same situation. His solution was to scrape the plastic off, scrape the copper until it was really shinny, put a tiny amount of tin on the connector and solder on a tiny copper to each missing link. His was missing 4 and he had all the space in the world while mine had 6 and was in the worst thinkable place. Luckily the hatch hiding the tape can be opened while both filming and replaying content allowing me to make a ugly fix to verify that this was the only problem.

DSC_0652

I unscrewed the button panel and cut of 10 plastic pieces that held the controller together and unsoldered the tiny piece of flex-ribbon left on the board. I soldered a flat-cable that i took out of a IDE-cable as a replacement for the broken flex-ribbon. On this side it was quite easy to fit the wiring as there was some space left, once pieces of the plastic was grinded away with a dremel. I resealed the panel with 2 component epoxy-glue and continue to getting ready to attach the other end of these 6 cables.

Like i said, soldering something onto a flex-ribbon is not a simple task and having failed before i refused to start doing this on the camera until i mastered it. Luckily i still had the tiny piece of flex-ribbon left from the control. It was only 8mm long but big enough for me to get some practice. As i felt i had control of it, i moved over and started working on the camera for real. Two down, 4 to go:

DSC_0662

By placing the soldering’s like a step-stair along the lanes, even these “thick” cables could be connected right on the lanes without short-circuiting any of them. I would lie if i said this was easy and that i did not curse during this whole exhausting 1 hour procedure.

If you are doing something similar and and need to solder on to a flex ribbon my best advise is avoid breathing. Place the replacement wire using a scalpel and once you think you got it where it needs to be, hold your breath and just touch the cable with the solder-iron for a fraction of a second. Make sure you have space around you while working and that cables aren’t being tangled up and potentially destroying your work as you lean out. A good magnifying glass is almost a must. Make sure you don’t support the weight of any parts on these tiny solder-points as it will rip of and potentially destroy more than you just fixed. Additionally take time to verify that every connector is soldered firm and does not cross-connect to other lanes using a multimeter, before connecting the battery/power.

About half an hour into the process the plus and gnd is connected, allowing the LED’s to once more shine:

DSC_0663

After all 6 wires are back, i re-mounted the hatch and did a little measurements to verify all was good. All but one line worked but it didn’t take long to find the faulty connection.

Don’t let my cats lack of cooperation undermine anything i have just written, she just hates cameras:

Saving Mat’s cellphone

A good friend of me approached me 2 months back with his broken Nokia cell-phone, that all of a sudden died on him.. Number, pictures and messages were stored in the phone, leaving him without all his contacts.

I figured i could just have a look if it was something simple and if so, get it alive again to be able to back it all up. Once home i first tested a regular micro-usb cable but i did not see any led blink or indicate that charging was taking place. Measuring the battery it was totally flat but lacking means of charging it i told him that i didn’t get very far. Since that the phone has been laying around, doing no good to no one.

As i finished of the video camera charger the other day, i still had some max1555’s li-ion charger circuits at my disposal and figured i could build a second charger and see if i could get some life in the battery circumventing the phones own charging system. Since this would not be a permanent install i figured i would build something that could be reused, that had clear test-points and that could easily be connected to whatever cell i needed to charge. As space was not an issue i mounted the MAX1555 on a separate board (cigarette for scale, the MAX1555 is a non-smoking IC)

DSC_0532

And then continues to lead out the tiny legs of the MAX1555 to the board. This board was added on top of the next circuit board using basically almost the same schematic as for the video-camera in the earlier article.

DSC_0533

The battery belonging to the phone turned out not to accept charge, and in retrospect i find out the phone broke when he tried to charge it with a 220 volt charger in New York (110 volts ftw!).

This explained a lot. I took old nokia li-ion battery, hooked up the charger and the multimeter to see that the charger was working and the cell accepted the load:

DSC_0535

Turns out this old battery also had done it’s fair share of heavy lifting, and i had to dismiss it. Next battery in line was another Nokia battery from one of it’s first smart-phones. This battery worked straight off, and as i reached the magic 3.7 volts, i connected the battery to the phone and pressed the power-button, VOILA!

DSC_0538

I called Mat to inform him the phone was alive again, who was very happy but this celebration lasted short, as the aluminium connector from the battery broke off, and no matter what i tried, i could not reconnect it. Having ran out of Lithium-Ion batteries i was stuck with Lithium-Polymer batteries. I desoldered the battery controller seen under the accumulator in the picture above, i soldered it to the LiPo cell instead resulting in a working but franken-phone seen here:

DSC_0543(1)

It’s not beautiful, but it is working and all contacts and sms are once more safe. Yet another happy customer :)

Conceptronic XSS

<Disclaimer>

I didn’t write this post to aid hackers, but to make sure all these cameras are taken offline as soon as possible. I don’t accept any responsibility for hacks committed with this information, nor do i endorse malicious use of this information. Remember that wrongly used this information, depending on where you are could be a federal offence that lands you some serious prison-time. Additionally, all the tests i did was on my own equipment, running a battery of different firmwares.

</Disclaimer>

I bought a Conceptronic CNETCAM (Embedded linux web-based security camera) some years back. After a burglary in my place it gave me that extra feeling of security to be able to login and see that all was good at home if i ever was worried. It was cheap but lacked a lot in the web-design-department. I figured if i changed the firmware, it could look nicer and run a fullscreen picture instead of the sorry ass borders created by conceptronics. I downloaded the firmware and started to analyzing the binary file using strings and greping for html-tags. I could see html pore by my screen in clear-text, meaning no compression was used on the binary file that constituted the firmware. Great, this simplified the process a lot.

I started by changing the colours around, uploaded the firmware, rebooted the camera and it all worked fine, my colours were applied. “Awesome”, i thought.. This will allow me to mod the webpage without extracting and re-compiling a working firmware file as long as my HTML code could fit the same space as the old code used. I did a few more changes but this time uploading it gave a error message indicating that the firmware checksum was wrong.

While trying to find the checksum that must have caused the update error, i looked around the web for people that might have done this before i found almost nothing for this specific camera.

I decided i might get lucky with a google-dork and searched for part’s of the html-title, some distinct text on the page where the camera could be viewed and added parts of the url to the document in the query. Bingo! Around 75.000 hits. While looking through the results i fast realized that google removed part of my query, namely “Conceptronic” and 99% of the results had everything my dork demanded but the name of the vendor. Some cameras where D-link DCS-900, some SparkLAN CAS-330 and about 5 other vendors, all using the same basic html-code. But none of them had a tool embedded in their GPL-code which allowed me recompile a new firmware from scratch.

I figured maybe another vendor had the tool so I turned the process around. The camera i bought had a really distinct look. It was thin, wide and long, with a large screw around the lens to adjust focal length. I googled “Ip web camera”, choose “Images” and started looking around. I found another 5 vendors with very similar design while going through the hundreds of images in the search, and started mapping them out. As a test I downloaded  the Sparklan CAS-330 firmware, uploaded it to my camera, rebooted…. and it just worked. My camera just changed interface to the classical blue sparklan interface, but every function worked. I was surprised because i kind of expected to brick it.

This is where it all took a sharp turn. While playing around with my own camera, flashing it with loads of different firmwares from a heap of other cameras with same appearance, specs and functions i accidentally broke a script i wrote and managed to flash the device with an error. I actually flashed it over and over and just saw a error flashing by the CLI that didn’t seem to matter as the camera rebooted and came back again with the changes i made in place. I started debugging the script, found my typo and realized with this bug in place, there was NO WAY it should would have managed to authenticate to the camera, it just firmware flashed without caring who i was.

I wrote a simple html document

simple.xss

and loaded it in my webbrowser, and clicked Save. The camera died for a few seconds then prompted me to login again. I entered the same username and password as i just saved. It worked!

I could not believe my eyes. Looking at all possible html documents in the webroot, i realized most of the documents on the embedded webserver was susceptible the same XSS-attack. I could not view many of the html-pages without being authenticated, but i could do a POST-GET and apply new values as long as all input-strings needed were there. I could change the password, flip the image upside down, set the capture resolution and all other functions in the camera.

I started compiling a list of my finds, mostly cameras that looked alike it, had similar paths in the webUI and the size of the firmware. Flashing my own camera over and over with all these different cameras firmware i confirmed that this bug could be found in most of the cameras i suspected had the same initial manufacturer. I turned my eyes back to Conceptronic again. Turns out that Cellvision (a Chinese OEM-vendor, now owned by Sparklan ) made the original code and OEM-sold it to Conceptronic but that tons of other companies also did the same. All of them just branded them with their own logos, without changing anything but the webUI.

I figured i could not be the first to have made this find and it turns out some people had found a XSS exploit on a single make or model, but no-one seem to have understood they were actually all the same camera. I was amazed.

Did i just find a way to get root on 75.000 cameras?

It seems i had. I started realizing how bad this was. 75.000 people had trusted these devices to the extent that they port-forwarded them through their DSL-modem or corporate firewalls, right into the inside of their networks. As this hack actually allowed me to upload a new firmware that seemed to work cross all these cameras, i could have written a firmware that allowed me to nmap their whole infrastructure and display this information to me on the outside. Once i had this information another firmware could route the webserver to an hardcoded internal IP and port, actually granting me access to ANY of their internal services, just like i was in their network. Needless to say this could all be scripted and automated, making the collection of information and routing more or less instantaneous.

At the point of this discovery most of the cameras were at or near their end of life by the vendor, but still actively used by people and companies so i decided to sit on the information rather than sharing it with the world. Today all of the cameras are EOL’ed, but quite a few are still out there. As i don’t want to help people abusing this, i will not share the complete list of models and makes but rather say:

If you have a camera that looks something like this

CAS-330W-unit

i strongly suggest you write a html-document like the one above, change the hostname to it’s IP (and :port if you don’t run it on port 80) and see if it is vulnerable. I would also like to point out that none of the firmware updates available to any of the different camera firmwares i was playing with actually solved this specific issues, and as of today i doubt anyone will.

Hope someone finds this information useful.

Adding abilities to Sony HDR-AS30V

I recently purchased a new camera for my motorbike. What made the Sony HDR-AS30V stick out, beside all the regular stuff such as full HD on 60 fps, remote control via Android and IOS-devices was that it has a GPS device that stores all data and allows you to overlay this information on the final rendered video. I tried doing this collecting data from a GPS device with decent results, but figured a all in one solution was a better deal in the end.

I added a 32 gb micro-SD to be able to record hours of driving but soon noticed some very annoying limitations with the camera. The first one being the internal microphone which picked up more wind than motor noise. The camera has an external microphone-jack, but with the water-proof casing on (which by the way is the ONLY way to mount this camera anywhere), the microphone connector was hidden under the casing, and it’s locking mechanism.

The second thing that really annoyed me was that the camera could not be charged while recording, as the camera went in to a USB-mode which disables the recording feature. Not only was the connector hidden under the waterproof case, but even when out of the case the USB overrode all internal functionality. Using a USB test-block i built a while back for sniffing the USB-protocol, i disabled the two middle-pins (data+ and data-) hoping that this workaround would allow the camera to ether charge or run off external power, but the camera insisted USB was connected.

Solving the mic-issue:

I don’t really need a waterproof camera so getting a hole trough the case that could allow the external mic to be connected was not a great concern to me. Worst case scenario i could always bring a roll of duct-tape to cover the holes if i ever wanted to go diving with it. But as the locking mechanism was just above the jacket, i had to substitute this with some form of lock. Not to waste to much time on this, i removed the lock and replaced it with a rubber-band. To see the difference between a external vs. internal microphone i cut this clip together:

Sorting out the power issue:

As for the charging part i figured i would build a tiny lithium-ion charger that could fit somewhere in or on the camera. With a camera that measuring 6.5cm x 4cm x 2cm which is jam packed with electronics already i decided the circuitboard needed to be housed in a tiny space between the camera and the casing, on the front of the camera as this would be the only place it fitted. Using a dremel i removed enough of the plastic casing to make it fit. Only problem was, this was also where the external microphone cable was connected. Looking around the net i stumbled over the MCP73831T charger circuit. The smallest package i could find was the SOT23-5 measuring about 2mm x 1mm. Since it was just 3 euros i figured i get a few. Things this size tends to get lost never to be found again. After building a few prototypes the first one went toast in just a second, while the second one seemed to indicate that things were working. Measuring voltage however gave very weird results i still to this day can not explain so i started looking for another charging circuit. After a little googling around i found the MAX1555 also contained in a SOT23-5 encapsulation, however this demanded less surrounding components and became the semiconductor i decided to go with in the end.

I started learning the PCB (open source software for circuit-board manufacturing) but for some reason all circuits i made and all example circuits i opened was giving me an vague error about not all objects being defined. Since my use-case worked fine with the typical application-setup and i took the chicken-shit way out of this. Learning PCB still remains high on my to-do-list. Like most other things in this world, i was not the first to attempt something similar, and looking around further i found this drawing (credit to Hugo for his great work):

org.board.max1555

This little bugger might look tiny with a mini-usb covering 1/8th of the board, but fitting it into the Sony HDR-AS30V as was would be like trying to fit a loaf of bread through a key-hole. In lack of better PCB knowledge i loaded it up in Gimp and started removing stuff i didn’t need. I didn’t see any reason to include the USB-power LED, so this could go, and so could the resistor in front of it, all the screw-holes and unnecessary GND copper surrounding the board, resulting in this design:

redesigned.max1555.board

If i would have printed this as is, it would never fit the camera either. It needed a 10mm hole in the middle so the microphone-jack was still reachable, and even my SMB-mounted 1uF capacitors measured 1/3 of the size of the USB connector, and on my tiny board i needed 3 of them. Saying i had a space issue was just the start of it, but i would not let this deter me. The caps had to be inserted into the board to fit. It does not look nice, but it works so don’t start hating on me now :) The tiny 330 Ohm smb-resistor to the left of the board was the next component to be added.

DSC_0504

Next component to go on is the tiny MAX1555 SOT25-5. Measuring a tiny 1×2 mm, this component needed to have all 5 legs soldered, a task that took “some” fiddling around before getting it all in place. As this board only has copper on one side, all legs are actually soldered to tiny cables fed through and around the board to connect it with the backside of the board. At this point it was a few hours after midnight and i wanted to finish it up, so not many pictures are taken of the MAX1555, but you can see it pretty okay in this shot taken during the initial charge tests. The battery in was just soldered there for the load-tests, and yes.. This did happen around 03.40am. Sorry about the late night Dremeling, neighbours.

DSC_0516

After making sure it all worked, and fitted the waterproof casing i used a 2 component epoxy to add the module to my Sony camera. I also switched the yellow LED to a green one, just for the look of it.

DSC_0524

Late this morning i made a test-recording, and for the first time made an 1.5 hour recoding in Full-HD without consuming the battery, making this camera the first Sony HDR-AS30V that can record more than 1 hour. Beside mixing up a batch of polyester that i will submerge the whole circuit-board into to make sure it becomes as rugged as the rest of the camera, not much remains to be done to this projects.

Conclusions:

This was a funny hack that only cost a few euro’s but added the features that i did not want to be without. The fact that Sony could have saved me these hours spent by incorporating this feature themselves kind of annoys me. Why Sony allowed the camera to be able to create way longer videos, when there was no way of recording over an hour i guess i will never know. Needless to say this was a good day with another warranty voided. :)