Hacker News new | ask | show | jobs
by rubber_duck 3423 days ago
I don't know much about HW development but recently I wanted to play around with making a smart quadcopter to play with ML - so I'm looking in to what would be required on the hardware side.

Devboards I see online with a high powered ARM board are in 150-200$ range for the devboard without camera/sensors and with stuff I don't need (network ports, display ports, etc).

Then I look at my 150$ Chinese smartphone (Xaomi RedMi Note 3 Pro) - it has Snapdragon 652 - Quad Core 64 bit CPU, OpenCL 2 capable GPU, 3GB ram, 16 GB storage, 13MP and 5MP cameras attached, gyro on board and 4G/WiFi/GPS, 4kMAh battery. The specs alone are better then the best devboard I found.

So I'm thinking if I can get it to boot without screen I could throw away the case and the screen, hook up GPIO trough USB for 10$ and get a better dev board than I would for 200$ with all the sensors and IO and a battery on top ?

I wonder how much it would cost me if I could just buy the parts on these markets and not have to disassemble a complete phone.

7 comments

Check out the neo platform that comma.ai is building for self driving vehicles. It is meant for cars not drones but it might be a good starting point for you: https://github.com/commaai/neo
This is really cool and looks like it will have many resources for me thanks !
The DragonBoard 410c might suit you.

I see it for $75 at one of my usual suppliers.

It has a snapdragon 410 - 1.2Ghz, 1GB RAM, Bluetooth, WiFi, etc.

However, both of these are probably huge overkill for a quadcopter.

The problem you face is twofold:

* The quadcopter needs to react in real time, so you need a real time OS.

* Machine learning can use a huge amount of memory.

The usual way to solve this, is a simplified onboard system. Crash prevention and the like. Probably an Arduino or ESP8266.

Then, that communicates with a ML system on a laptop or the like, which does the hard work.

>The usual way to solve this, is a simplified onboard system. Crash prevention and the like. Probably an Arduino or ESP8266.

My idea was have something like that hooked in to the bigger board via USB - the Android is creating flight plans and the micro controller is just managing the motors and following the plans it receives.

snapdragon 410 seems like it doesn't have OpenCL 2 (shared memory access ?)

The microcontroller may need more than naively doing as told, to reduce crash & burn.

For the other board, I probably wouldn't use USB, but a serial or pin connection could be faster.

Broadcom recently released the spec sheet for the Raspberry Pi's GPU, and people have been doing good work with that.

Edit: Snapdragon 410 has official support only for OpenCL 1.1

>For the other board, I probably wouldn't use USB, but a serial or pin connection could be faster.

I was just thinking USB since it's guaranteed to be there and should be simple to program on android if I chose to go down the "disassemble a phone for parts" route.

The real question is how much processing grunt do you need, and does it have to be onboard or can you process it at the basestation after video broadcast? Simple ARMs are $10 or less. My cheap sourcing advice at hobbyist scales is to search for the chip model number on taobao.com and evaluate CNY prices. Most suppliers will ship overseas for a small additional shipping fee. Also, if you find a niche product (dev board, etc.) with a clear manufacturer, try contacting them through their website directly. Seeed is a well known and reputable source of popular parts who ship overseas.
150-200$ sounds like an official manufacturer's devboard, but for the maker market you shouldn't have to shell out more than 30$. What are these boards you've been looking at?
Stuff like this seems in the same performance range https://www.seeedstudio.com/MediaTek-X20-Development-Board-p...

Even tough it doesn't have OpenCL 2 capable GPU it has 10 cores - but something on the higher end seems very expensive and cheap boards are generation old chips with Mali450 GPUs or PI level HW.

It seems cheaper to get a cheap chinese phone with top level chipset and all the sensors and dissasemble it - maybe get one with a broken screen - although it's a gamble that the rest works.

I think you're better off getting a c.h.i.p. [1]. For $9 you get a 1ghz arm, wifi and some decent amount of ram and flash.

[1] getchip.com

Pi 3 or Zero, perhaps?

The parts aren't really available on the open market, but your best bet might be to get a secondhand phone with a broken screen.

There are also people designing dedicated "arduinocopter" boards and suchlike, which have a microcontroller, motor controllers, and IMU all on board.

>The parts aren't really available on the open market, but your best bet might be to get a secondhand phone with a broken screen.

Yeah I thought about this, will fish around but I'm afraid that if the screen is broken the rest might be damaged too. But even disassembling my phone doesn't seem too expensive if everything works out as expected.

But then you're going to be fighting with the crappy kernels from qualcomm. You're much better off avoiding them whenever possible.