Author: Andrew Whalan

Cheap Audio Adaptors for Linux

Introduction

I need some cheap, Linux compatible USB DACs (Audio Adaptors) for a project I’m working on and I wanted to avoid $50+ name brand options for something so simple.

The ones here were the most common cheap ones I saw come up on Ebay and Ali Express. They’re easy to find if you search for USB audio and get the cheap ones … that’s why I included pictures, everyone calls them something slightly different.

I tested them by listening to a FLAC recording of Jay-Z & Kanye, ‘N****rs in Paris’ at various volumes. Not lab quality but my ears are ok having done a bit of live audio mixing in the past.

3D Sound Plastic Dongle

This has a “GeneralPlus” Chipset under a blob of goo. I don’t know why but this was the adaptor I had the highest hopes for out of the 3 I bought. It seemed pretty cool for the price so I thought it’d at least be able to play music? Nope. It had zero bass and N****rs in Paris never sounded worse.

Cost: AU$4.45 Delivered from Ebay.AU, $1 from AliExpress

Summary: Really disappointing, not worth buying ever.

dmesg output from linux:

[101856.895348] usb 1-1: new full-speed USB device number 8 using xhci_hcd
[101857.046484] usb 1-1: New USB device found, idVendor=1b3f, idProduct=2008, bcdDevice= 1.00
[101857.046490] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[101857.046493] usb 1-1: Product: USB Audio Device
[101857.046496] usb 1-1: Manufacturer: GeneralPlus
[101857.057521] input: GeneralPlus USB Audio Device as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.3/0003:1B3F:2008.0009/input/input36
[101857.116033] hid-generic 0003:1B3F:2008.0009: input,hidraw0: USB HID v2.01 Device [GeneralPlus USB Audio Device] on usb-0000:00:14.0-1/input3

Aluminium Dongle

This was the priciest dongle and I stupidly thought it’d be the best! Nope! It’s the same terrible GeneralPlus chipset. It had identical USB identifiers and output in dmesg when plugged in.

Cost: AU$6.49 from Ebay.AU

Summary: Terrible, just as bad as the previous given the identical electronics

White Cabled Dongle

I actually had the lowest expectations for this. The build quality seemed the worst of the bunch and it was just as cheap, more or less, as the cheapest one. Given it’s the last review, you know where this is going …

I was wrong. Plugged it in and after a few pops and hisses while it initialised it played the sample music beautifully! Lots of rich bass and clear across the spectrum. I compared it to my Scarlett 2i4 external USB DAC and I was hard pressed to tell the difference.

Respect to C-Media Electronics Inc., you’ve done an amazing job of creating a budget USB Audio adaptor! I haven’t tested latency or anything else through it but for the price, it’s the definite pick of the bunch.

Cost: AU$4.95 from Ebay.AU, $1 from Ali Express

Summary: Amazing value! Cheap electronics are hit and miss. This is a definite hit!

dmesg output

[101928.266936] usb 1-1: new full-speed USB device number 9 using xhci_hcd
[101928.424829] usb 1-1: New USB device found, idVendor=8086, idProduct=0808, bcdDevice= 1.00
[101928.424830] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[101928.424831] usb 1-1: Product: USB PnP Sound Device
[101928.424831] usb 1-1: Manufacturer: C-Media Electronics Inc.      
[101928.432320] input: C-Media Electronics Inc.       USB PnP Sound Device as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.3/0003:8086:0808.000A/input/input37

Continuous toolpath generation

We’re currently working on a project that need an optimal tool path given an input image. Unlike most 2-D controllers, we can’t issue a command to raise and lower the tool – it has to be a continuous path, so it makes for an interesting problem! This is the problem of drawing a picture without lifting the pen from the page.

I’ve written some code to use a “nearest neighbour” approach to the travelling salesman problem. It’s not the optimal solution, but it works ok. The key problem being the algorithm’s inability to use a pixel more than once. It’s also quite slow but that’s not a big deal and could be easily optimised using a grid search if necessary.

Our test input image was:

Test image for pathing

After we ran our code we got:

line path solution

While it’s obvious that there’s lots of extra paths we can get rid of if we fix up the algorithm I think it’s a great first pass! We now just need to treat the problem as something less restrictive than the travelling salesman problem.

Reflecting on CeBIT

I thought now that a couple of months have passed it would be good to reflect on our time at CeBit as there was a lot that we learnt and experienced there.

20160503_115709_birghter

The RobobBuilt team at Cebit

I was happily surprised at how many people were interested in what we were doing. I thought being quite niche then people wouldn’t be that interested in what we are doing, but they were! That was solid market validation for our project.

 

The Stickers

 

Robobuilt Stickers

Having been at a few of these events in the past I thought it would be great to have something to hand out to engage with people. Stickers really helped us start conversations with people walking by. In the startup area there were heaps of other new businesses competing for eyeballs, giving something away that was fun & happy was a great way to start a conversation.

If you missed out on stickers we’ll start selling them for a nominal fee on our store, but in the interim if you get in touch I’ll post a few your way.

 

Meeting the Hon. John Barilaro MP

 

At these sorts of events, you expect to see politicians. It’s partly for PR and partly so they can see what’s going on. I was lucky enough to grab the attention of the Minister for Regional Development, Skills, and Small Business, the Hon. John Barilaro MP.

26711314822_04cd07bf34_k

We had a quick but engaged chat about what we were doing. He seemed interested that we were are innovating in a struggling industry and based in Newcastle which is a regional centre.

26711313622_2836819653_kIt was the first time I’ve ever talked to someone with a media scrum, so it was a pretty intense experience to have so many flashes going off but I’m glad that I had the opportunity to talk to someone at his level about what we’re trying to achieve.

 

Other Stands

 

There seemed to be a lot of focus on 3D printing from startups and corporates alike. This meant that most conversations we had started with “So you’re here to sell 3D printers?”.

The other key group of businesses I noticed were software-as-a-service products. A lot of them seemed to struggle to grab eyeballs. Having worked so long in software I can attest to how hard it is to make something that’ll help simplify your life or streamline your business “sexy”.

Our friends at Servers Australia had a massive stand at the entrance and were giving away cloud shaped stress balls … obviously we got in on that.

 

What We Learnt

 

The team all agreed that it was a great experience to learn better how to sell what we’re doing to people from a wide variety of backgrounds. Trying to articulate what we are doing was challenging at times without a working prototype but it seemed that most of our visitors were quick to get what we were trying to achieve.

OpenServo V3 boards are now available

Our OpenServos boards have just arrived from our manufacturer overseas!

100 OpenServos

We’ll need a few days to get our online store updated but if you need them urgently get in touch and we’ll arrange to get them to you ASAP. The store page for the open servo v3 is here.

It’s a pretty exciting step to see finished boards that we’ve ordered directly from a PCB manufacturer as in the past I’ve only ever ordered bare PCBs and had to assemble them myself. Given how fine the spacing on the open servo is and how hard it can be to solder surface mount boards at the best of times it’s going to be a great time saver for those who need these boards to have them pre-assembled.

If you have any questions, get in touch and we’ll do our best to help!

60 Servos, ready for action!

We got back from CeBIT late wednesday night to drop off our printer to find that our servos had arrived from overseas! This is what our pile of 60 servos looks like:

60 Servos ready for action

This will allow us to keep working on our early prototyping for our loom actuation system to keep us on track for having our first production loom ready for the end of the year.

For the end of the year our pile of servos will be 10x the size so that’ll make for an interesting photo to share with you all!

60 servos laid out on our workbenchWe settled on the Tower MG90S for our first moderate scale trials. It’s a relatively cheap digital servo with metal gears so we figure that’s a good place to start. Our mechanism prototype will show us how well it’ll last with constant loading. Metal gears are far stronger than their nylon brethren but they tend to fail a lot more dramatically. Hopefully we don’t burn through too many of them during our tests though if we’re having a bad day we might just have to make an interesting youtube video of purposely failing a servo … for science.

With a quoted stall torque around 2kg.cm (or roughly 0.20 N.m) of torque, it should be more than enough to move the heddles up and down. With some quick maths, if our arm will be 50mm long so that means ignoring friction we can deal with 0.4N of load or 40g which will be fine for what we’re doing.

Servo controllers have arrived

Our 32 channel servo controllers for testing mechanisms on our loom have arrived from ElecHouse. They even upgraded our shipping to a faster option free of charge! We were a bit unsure about what was going on with shipping when they cancelled the first shipping reference number but they responded promptly when I contacted them. So props to the ElecHouse team for being awesome.

Check out the product page here with links to the datasheet / software.

Servo Controllers

The documentation is of the usual sort of standard you'll get from a chinese PCB/ controller manufacturer but it's fairly exhaustive and clear how to use it. If we run into any issues with the documentation we'll write our own documentation for it so if you have any questions please feel free to ask and we'll help if we can.

Given that there are going to be 500 threads on our mark 1 loom, we will need to run 16 controllers each controlling 32 servos. The controllers allow us to provide power separately for the servos which is handy given that if all the servos are active the total power might be a bit higher than what USB can provide. It will also let us tweak the supplied voltage and potentially monitor the current/ voltage supplied for a bit of monitoring action.

We're planning on using a raspberry Pi we have lying around to drive some or all of the controllers depending on how we go with USB/ serial device limits.

If you're interested, I'm also working on a standard control file (think GCODE for weaving) that is here on google drive.

There is still a long way to go for our first prototype but the pieces are starting to come together! I'd love to hear your comments or feedback as we move along.

Knowledge workers will always be in demand

Our friends at HiveUAV were recently interviewed by the NBNco to promote what both they and the NBNco are trying to achieve for Australia. Ignoring the political decision to shift away from fibre to the premises, the fact remains that if you want to be a guaranteed a job that will be around for a while, get one that deals in developing knowledge.

There’s an ongoing narrative that says universities are dying and no longer necessary. Counter-culture narratives always get more press and clicks than sometimes they deserve. The fact is that for many high-end/ high-tech careers you can’t go past getting that knowledge at university combined with spending your spare time exploring topics that interest you. That’s what we do with RoboBuilt!

Read more here: https://www.nbnco.com.au/blog/knowledge-workers-the-jobs-that-will-always-be-in-demand.html

Headphone Wrap Design

I recently bought some Sennheiser CX3.0 in-ear headphones to replace the CX1.0s that I lost. They came with a bit of a chunky case so I thought I’d make my own little wrap system for them now that we have our 3D printer. I just want them in my bag or pocket without tangling!

My first step was to see what other people had done on thingiverse. Lots of other people had uploaded designs but I thought I’d give it a crack to see how quickly I could make one of my own. I saw that most people simply made a flat design that was extruded to get some strength/ thickness so that’s the path I went down.

I made a few sketches with ideas and then jumped into Autodesk Fusion 360. I find the software a bit confusing and annoying at times having used Creo (formerly Pro Engineer) at uni but it does the job and it’s free for start-ups! For my first design, I just wanted to get the right size hole to put the ear-bud through and lock the cable with the slot. I also wanted to see if the little wrapping area was big enough.

I sketched up the 2D design and then extruded it a few mm to make a 3D design.

Headphone wrap Mk 1

This quick design was primarily to check the dimensions and it showed that my hole was the right size and that the area where the cable bunches at the end needed to be made bigger. Having both earbuds in one hole proved a bit cluttered so I decided to use two holes to make it a little less bulky in my pocket. I also realised that I hadn’t put a clip on both ends to hold the cable so I did that too. Rather than have a big square section in the middle I thought a few spaced holes would look nicer and be a little stronger so changed that feature as well to come up with my second design.

Headphone Wrap

You can see by the photo that it stores them quite compactly and means the cable won’t get insanely tangled when thrown in my bag or pocket.

The print times were only about 15mins each, give or take and given they weighed 3-4g each, they only used about 30 cents worth of PLA. Pretty cheap way to stop tangling in my bag!

For those that want to make their own, you can download the STL file here: headphone wrap v2. If you’re designing your own, I used a gap between the wraps was 2mm, the hole for the earbuds is 14mm, and the overall length is 111mm. The thinnest section was 2mm thick which is probably pushing it but we’ll see how it goes!

As for the headphones themselves, they’re amazing! I managed to get them for $78 at JB Hi-Fi. Lots of bass which was surprising given how small they are. Nice and clear sound. Even if Sennheiser is a bit overpriced for what you get, I highly recommend them.