Category Archives: Software

CoAP / Swift 3.0 / ESP32 research

Today, I started back into my C++ coding and research for my DMX controller.
For work, I bought the City Theatrical DMXCat in the meantime to get some semblance of what I am after out of a device.  I have even used it on set a few times.

I will probably also get an Android tablet and make it an entire controller in a case with independent power.   It has a lot of promise, but I might be working on something that can do more.

Been looking into the ESP32 micro-controller lines.  I see that they can do BLE and have an even faster clock speed than the Teensy 3.6 and have Wifi built-in.  It sucks that Wifi and BLE are so hard to do but PJRC is WAY behind on this one and I need this device now.  I have considered putting an ESP 8266 on the Pockonsole board.

However, I won’t be able to parse wifi data through CoAP unless I want to go with the much more capable ESP32..because BLE is a huge part of the requirement.

Perhaps that is how it will end up.  Looking into this guy’s work (https://github.com/oneam/Esp32LedControl), I might already have all that I need to do this.  It’s just parsing the CoAP data into a 512 value array of 8 bit ints then into the DMX Protocol working with ESP32’s UART that I need help on.

Also, an 8266 interfaced with the Teensy 3.6 doesn’t do BLE, so it is kind of useless in being a open source DMXCat replacement.  I used to think that MQTT was the way to go, but this CoAP standard seems even more interesting and robust because you can have BILLIONS of nodes asynchronously communicating.

As always, I want to think beyond current capabilities at the outset.  So CoAP looks REALLY good to ensure that…and would take care of much of the asynchronous behavior that has to happen that I have NO CLUE about at the moment.

Imagine an asynchronously programmed mesh network of LED’s  !?!?!?  It would be mind-blowing what lighting affects could be achieved.

More on this later.  I need to think on it. Just learning about CoAP now.

Pockonsole Prototyping Platform

I am a big fan of Teensy Microcontrollers and have been working with them for a year now. The best thing about them, to me, is the speed and massive I/O compared to any other arduino board.

I recently started a project where I was going to build a simple DMX circuit with 9 faders for controlling DMX levels. As I got further in, I was inspired by Tall Dog’s Teensy 3.1/3.2 Breakouts on Tindie. I contacted my friend who is a talented EE and we sat down and worked on a custom circuit that not only breaks out the Teensy 3.6, it adds, an RS485 chip for DMX transmission, over-current protection, a regulator for up to 36V in, 9 faders, an SPI OLED screen, and a prototyping area that is inspired by breadboards with a full breakout of all unused pins all on a fairly big circuit board. I am excited about it because it will not only allow me to have a robust version of the circuit I was originally going to wire together with point-to-point wiring, it adds some of the bells and whistles (and esoteric electrical best practices) that I would have avoided (for example, a .1 uF capacitor on each potentiometer was NOT in my plan) along with being an excellent platform for future projects.

There’s a lot of expansion that has happened on this project.  Since getting a custom circuit made and designed is so damned expensive, I wanted to be getting the most bang for my buck.  More on this topic in a few minutes.  I need to document all of the stuff that Steve and I came up with as well as a fe wprojects that I haven’t quite had the time to mention and document.  Big things are happening in my life as far as learning about and transitioning to a side career in inventing film tools/engineering…and this is the coolest one yet.

LanceLubber

I am currently working on an iphone app called LanceLubber.  It will do all of the normal calculations necessary to calculate hours/pay meal penaties and other stuff that need to be configurable in another part of the app.  Basically, it will have three parts. The categories speak for themselves and are named as such.  Three categories:

  1. Personell
  2. Contract
  3. TimeClock

I want to incorporate CoreData right from the start to allow it to sync with your Address Book, Calendar, and most importantly, iCloud.  I want to design it from the start with the object in mind of sharing weekly time-sheets in an open format.  I hear Entertainment Partners are working on their own application, but I’d rather design my own because I want to create categories that an organization can’t use.

The youtube videos on these subjects are helpful much of the time, but far dryer than the electrical engineering stuff that I had been learning earlier this year.  Coding involves so many different files with a line of code in each.  Sometimes, the setup of this kind of stuff feels that it should be more automated.  I did witness Yaeger form Stanford doing some sort of auto code generation, but that is beyond me.

I have decided to learn Swift instead of learning Objective C even though Swift does currently limit me to Apple products.  I have already noticed that Swift is really elegant and advanced in many ways.  However, Swift is so new that it’s hard to find tutorials that address it specifically.

Right now, I am just beginning to start my own simple file open in Xcode.

It seems that it can be very tough to import someone else’s code without worrying about how it will interact…obviously.  I have looked at a few tutorials.  None of the open source code that I have found includes any CoreData libraries, so I am having to learn that separately.

The best thing I am about to learn is Metal.  It is Apple’s new library for crazy UI customization.