Well, it's been a while since I updated what was going on behind the scenes here. While we've all been working hard, it's been a lot of behind-the-scenes sort of stuff. Nothing very showy, really.
So, some background is in order.
We decided about a year ago that we did not want to keep using the original version of the software, camApp, which ships with the camera and is updated via
the betas on this forum. One of the main reasons for this is that we wanted a web api and remote control app. Embedding a web server in original camApp was impractical. An external web server could not reasonably be hacked together with the tools available¹. Some infrastructure needed to be built.
So,
Foobar ported a newer linux kernel to our CPU, and we got access to much better tools. Porting a linux kernel is generally not considered a one-man job, so it took him a few months. During this time, I put together a virtual machine to develop the
new UI, called gui2, on. After I'd completed that, Foobar promptly delivered an early version of the new linux to me. While it lacked drivers for all the camera-y parts, I was able to get a modern tech stack up and running and I used this to develop the app for the next half-year.
As this progressed, it became apparent that the tech stack I'd compiled was not one that we could safely upgrade and maintain. Foobar completed his port of the linux kernel, giving us Debian 8 as the underlying operating system, and we decided to backport the infrastructure I was using from Debian 9. This was completed, but we were still several versions behind what I'd developed the new UI on. I am currently finishing porting everything from my new tech stack to the older, maintainable versions of the tech we had. While a few bugs remain, I got the app running in it's entirety, on it's final tech stack, this afternoon.
Near the beginning of all this, Johan was hired to extract the startup logic from the current camApp. (I was hired to do the mobile app
promised in the Kickstarter, which was deferred due to the technical issues mentioned above, so I wound up extracting the graphical user interface from the camApp.) Extracting the startup logic to initialize the sensor proved to be
quite difficult. This was completed this morning, and the camera can now start and show the new UI entirely without having to run the current camApp!
The camera can now also run a nascent HTTP API, which plays well with the new UI. If you update a value via the API, the new value is reflected in the UI running on the camera. However, both the new UI and the alpha HTTP API are still largely disconnected from the hardware of the camera. They are running against dummy values. Since Johan has managed to bring up the camera, he is now implementing the dummy values so the HTTP API and the new UI can actually make changes to the camera. Some tasks are expected to be easy to tell the camera to do, while others will require a bit more work. This implementation is represented by box
❶ in the
last progress chart posted in this thread³.
While all this has been going on, Loial has been making significant improvements to the firmware of the camera's FPGA. This has been appearing in the forum betas. We are currently in the midst of working on a testing plan for the next beta, since we'd like it to actually work this time. Unfortunately, there turns out to be quite a lot to our software, so while
skronstein has been working on the testing plan it is still a work in progress. I myself may be pulled aside for a few days to complete that, so we can test and release next beta here. 🙂
If you'd like to talk to us in person and see some cool stuff, we'll be at
NAB. It's April 6th through 11th in Las Vegas, though we'll be around a few days longer for setup and teardown.
¹ These tools were
Ash² scripts being called via CGI.
² Ash is like Bash, but awful.
³ There has been no real progress on
the chart since then since both Johan and myself have been been dealing with the underlying work of making our respective technologies run. Since this work was unforseen and unpredictable, it was uncharted.