Please tell us a little about yourself. I am the CTO and co-founder of Cadonix, the world's first fully browser based cloud electrical CAD solution. I have a broad range of expertise ranging from scientific research, embedded systems, electronic design, software engineering and manufacture. I am very fortunate as this allows me to work with some of the most interesting companies in the world on their exciting new technologies. In equal measure I get a lot of enjoyment from the budding community of electronics, computer and gaming enthusiasts I meet through my YouTube channel, where I work on a lot of electronics projects. I live in rural Oxford in the UK. It is a great location for a technology company as its not only near to London, but also one of the key scientific hubs in the UK, especially for our burgeoning space and electric vehicle industries. There are a lot of clever people around here if you go looking!
By most measures, I was a pretty average high school student (probably below average) who did not get high enough grades for my chosen university. Fortunately enough, I plucked up the courage to visit them in person and ended up on a Software Engineering degree course that I completed with a 1st Class Honors degree. It did not stop there though, since the University kindly sponsored me their Doctorate program, and a few years later I ended up with a Ph.D., specifically in the field of Image Compression. I went on to a Postdoctoral Research Fellowship in Loughborough University after that to work on H.264 video compression. Around 5 years later, I was accredited as a Chartered Engineer. I always encourage people to keep trying and find that thing they are really passionate about. For me it was, and still is, learning!
I live with my two young boys Alex and Theo, my wife Sarah and our cat Ziggy. Sarah works at Oxford Brooks University helping to steer young minds on the right educational path. It can get hectic at times because I have a lot of international travel as part of my role, but we find ways of making it work with supportive family reasonably close. How did you get started with computers? I was first introduced to computers at the age of 3. It was a TRS-80 that my father, who worked for ICL at the time (the UK's version of IBM), had purchased from a friend. I remember patiently watching the asterisk in the corner of the screen flashing while waiting for a cassette tape player to load my favorite pastime, Dancing Demon. After that it was a progression of 8 bit and 16 bit computers and consoles over the years ranging from BBC Micro, Commodore 64, Atari ST, PC, Apple Macs etc.
Probably the most pervasive machines we had in our households were the various PCs that always existed in my background, be it the humble IBM AT or the exotic Compaq Portable III they were probably the bedrock of my computing. It is safe to say that I learned to program every machine I owned. What attracted you to the ODROID platform? I am a little embarrassed to say that I have been relatively in the dark about the ODROID hardware until recently, favoring their ubiquitous cousins in projects. However, I am really interested in getting into the ODROID-XU4 as a base for future projects. I go through a lot of single computer boards, so it’s important to find the right balance of power and support and my recent involvement in the ODROID community has given me the confidence in the platform.
How do you use your ODROIDs? I use my ODROIDs for gaming! Who does not love to fire up some old emulators and play some of the old titles of their childhood? It’s easy to see this as a pretty trivial use of sophisticated technology, but I think it’s an amazing use case in that it has encouraged so many people to take an interest in hardware and even build their own arcade cabinets.
On the more serious side, I do a lot of embedded electronics, especially in the area of monitoring, data acquisition and control. Many of these are in the automotive industry where performance is key, especially in the development of the most ground-breaking vehicles devised. I am really interested in exploring how to leverage the hardware for this. I am even building a data acquisition interface for the ODROID-GO, as it’s such a great portable unit.
Which ODROID is your favorite and why? I really like the ODROID-GO! From first seeing it, I just had to have one, so I pre-ordered it immediately. I was very lucky as I received my unit the very next day and eagerly built it. There are two reasons why I really like the platform: 1) you can play games on it, and the first use case for me was to play games while hopping from airport to airport, and 2) you can hack the hardware. I have a popular video out on how to hack in an analogue headphone socket for your ODROID-GO, which is a bit of an omission for those of us who want to use it in public places. I recently started following the forums, and in a series of Live YouTube streams the backoffice community designed a solder-free upgrade to add this capability to the GO. The community working on the ODROID-GO firmwares are doing great things, especially people like crashoverride who ceaselessly works on improving the platform. Clearly hacking the hardware and coming up with solutions with internet friends is an amazing amount of fun and a big draw to the platform.
What innovations would you like to see in future Hardkernel products? This is a tricky one, since Hardkernel seems to be innovating like crazy, and I’m having trouble keeping up. However, I would really love to see an automotive interface board and really nice enclosure. I know a lot of people who are either trying to build (or get me to build!) vehicle diagnostic tools using CAN bus and LIN bus, or people who are trying to build entertainment or control system for vehicles. There is a huge market for people who want to modify their vehicles, and a tried and tested platform would really help.
What hobbies and interests do you have apart from computers? Anyone who watches my YouTube channel or is on my Discord group will know that get bored easily, and hobbies seem to come and go monthly. My most enduring ones are motorcycling, working on my cars, and running. The latter engages with the scientist in me as I absolutely love the data you get from running gadgets, from how much weight you are putting on your left leg to how hard your heart is working.
What advice do you have for someone wanting to learn more about programming? If someone came to me fresh with zero programming knowledge I would tell them to really learn the fundamentals. To really be a great software engineer, you really need to understand how the hardware works. You may decide that you are going to be a web programmer, but those fundamentals of getting your code running on bare metal will help you through your career, so start with a calculator! If they could grab an old micro-computer like a BBC Micro, Commodore 64 or Amstrad CPC, and work their way through the basic and advanced programming guides, I think they would be in good stead to move onto the flavor-of-the-month PC languages. Barring that, I would say to download Lua or one of the packaged environments. It has to be my favorite language of all time in terms of teachability and ease of use. It has the simplicity of BASIC, but offers nearly limitless power in the right hands; just check out what people are doing with PICO-8.