Tag Archives: RC

RoboGames 2015

I went to spectate RoboGames 2015. If you didn’t go, WHY THE HELL NOT?!

I live literally a 10 minute walk away so I went both Saturday and Sunday. Since I walked in, I accidentally walked through the back entrance, so I snuck into the pits without a badge 😀 but I did still pay for a ticket after. I got some pictures in the pits, not stuff I see every day.

I put together a highlights video. Actually probably only missed Friday, and missed 4 matches from Saturday and Sunday, I have about 20 GB of video… I’m putting a few up just as teasers but you should really come check out RoboGames next time or buy their DVD when they release it.

The combat is the only event where I could get good video without raising my arms. There were a ton of other competitions, like minisumo, line following, humanoids, soccer, hockey, etc. It really reminds me of the Canadian National Robot Games back in 2007, which I entered as a highschool student. The Canadian competition has long since been cancelled but it’s amazing how alive the Silicon Valley competition is.

Continue reading for more videos and pictures

Continue reading

Q-Bot Tx Module for Taranis

Most micro (palm sized) quadcopters are RTF and comes with a crappy cheap transmitter, and I really want to use my awesome expensive Taranis. I found out that Q-Bot comes with a tiny transmitter module that I can connect to my Taranis.

I didn’t want some ugly thing dangling off of my Taranis so I decided to 3D print a module that will contain the Q-Bot transmitter circuitry and plug into the Taranis’ module bay, which fits “JR” style transmitter modules.

20141115_110602 (Large)
20141115_110254 (Large)

and here is what it looked like before:

The 3D files (SLDPRT, STEP, STL) Continue reading

My First 3D Printed Quadcopter

20141102_144912 (Large)20141101_120057 (Large)

3D printed using my Ultimaker2 and many colors of PLA plastic at 100% in-fill. It is my first design, featuring folding arms, tucked away electronics, and anti-vibration mounted flight controller. It is designed to be friendly with FDM 3D printers, employing some special techniques. The frame is extremely strong.

20141101_120023 (Large)3d_screenshot_23d_screenshot_120141029_202031 (Large)

I need more practice. I need to buy a few more propellers and few more batteries as well so I can practice for longer.

Flight controller is a Continue reading

FrSky X4R-SB Smart Port hack and Naze32

Continuing from my previous FrSky X4R-SB hack (read for some context), I really wanted Smart Port telemetry to work with Naze32. I forked the original baseflight firmware and added two key new functionalities:

  • implemented the Smart Port telemetry protocol
  • GPS can be assigned to any serial port (as opposed to only one port)
    • this is important because we are running out of ports
    • I made it possible for GPS to be connected to software/bitbang serial, to free up a hardware UART

please read my fork’s wiki, at this time, I can only test with my limited hardware, more help testing/coding would be appreciated.

Update 10/26/2014: I was asked to make the same contribution to Cleanflight, which I have done today.

The new forked firmware requires a circuit modification on both the X4R-SB and Naze32, see pictures: Continue reading

FrSky X4R-SB S.BUS anti-invert hack

I am building a quadcopter using a FrSky Taranis X9D radio. It came with a FrSky X8R receiver. I wanted to keep my wiring clean by using the S.BUS feature on the FrSky receivers, I purchased a smaller FrSky X4R-SB receiver. The X8R has 8 PWM channel pins and the X4R-SB has 3 PWM channel pins, but if I use S.BUS (which is serial, not PWM), I can access 16 channels using only 1 pin, on both X8R and X4R-SB. The X4R-SB is much smaller, making it more ideal. (do not confuse the X4R-SB with the D4R-II, this is important, D4R-II uses CPPM, not S.BUS)

(update 10/25/2014: a follow up hack for Smart Port)

I want to use a Naze32 flight controller, which is open source and does have code to interpret S.BUS protocol. S.BUS is UART communication but it is inverted and the Naze32’s UART cannot accept inverted input. Some flight controllers, such as the Pixhawk, has a dedicated inverter just to solve this problem, but the Naze32 does not.

The first option is to buy a “S.BUS to CPPM converter” but CPPM is not a serial bus like S.BUS and thus does not have the advantages of being a serial bus. CPPM uses timing, timing needs to be measured (measuring things = possible error) and the signal edges can be affected by capacitance, noise, etc. Also having such a converter means there will be a tiny bit more latency in the system. These two disadvantages are probably too insignificant to notice performance wise. But I still didn’t want to spend another $13 + tax + shipping just to solve a problem that shouldn’t have existed in the first place.

The second solution is to buy an “inverter cable” which is a cable that has a NOT gate inline and then shrink wrapped. Or I can just buy a NOT gate and make the cable myself. I still didn’t want to spend the money. I opted to hunt down the inverter on the X4R-SB circuit instead, and connect a wire to the input of the inverter (labelled as “A” in the datasheet). This provides me access to the un-inverted signal that I can directly connect to the Naze32.

See the pictures below to understand how this hack was done.


And just in case I confused you even more, all you need to do is connect a wire to the “A” pin.

I have tested it with Naze32 Rev5 and firmware f4d556c68876ccd5902bddf1cade32f1bb382c9f. Works like a charm.

It is probably possible to perform the same hack on a X8R but the X8R is constructed using two PCBs and the inverter is covered up by one of them. Separating the two PCBs is very difficult and risky.

The Smart Port (I think it’s also called S.PORT) is another inverted serial bus available on the X4R-SB and X8R but it is bidirectional. Since whatever you want to connect to it will need a bidirectional circuit anyways, it is not worth it to perform another surgery on the Smart Port. Also, the Naze32 can use SoftSerial to transmit in an inverted fashion, so a dedicated inverter isn’t even required. (SoftSerial would not work well for taking inputs, but outputs is OK)

Turnigy ESC Programming Card Reverse Engineered

I replicated the functionality of a Turnigy ESC programming card. These programming cards are meant to configure electronic speed controllers (ESC). I always wanted to know how they work. Eventually I purchased one since I need one for my quadrotor helicopter’s ESC, and then I started playing with it.

It should be very simple to adapt the code to any microcontroller.

Continue reading