Cynics Soapbox

Random thoughts...

RaspberryPi & SWD

The KroozSD board now comes with a handy SWD connector, a simple 3 pin 1mm JST located in the middle of the board. As debugging is one of the harder aspects of embedded development the connector has always been an interesting addition but finding a way to interact with the port has proved tricky. While I have several devices that claim to offer the required interfaces, none of them have proved to be supported. However, I came across an article...

Quad Update #7

In my earlier post I said that the bootloader for the KroozSD was luftboot, but in reality it’s available here. The version contained in that tree doesn’t appear to be fully up to date as there is no CRC and the strings reported by the device are different, but I’m assuming the current code is similar. While I realise I could simply switch to a different laptop, I can’t help but feel this should be a...

Quad Update #6

6! Who knew I’d get this far and still not have a flying quad? At least I’m getting closer and learning a lot along the way… Satellite Receiver I’ve updated the spektrum_serial.py code to have code that now converts the split channels into appropriate values and having watched it what it produces seems sane. Using this is a basis I changed the code in paparazzi to do the same conversions and rebuilt. All was well...

Quad Update #5

Having spent some more time looking at the Spektrum SPM9246 satellite receiver and it’s output I’ve made some progress. When trying to use this with Paparazzi I’ve had very variable results and it fails to work. Direct Binding Doesn’t Work 🙁 I’ve been unable to get the binding via the KroozSD board to work with the satellite and watching the output using pigpiod (as detailed Quad Update #4) the reason became clear as the simple series...

Quad Update #4

Following on from my experiments with the radio control receiver I still found myself unable to simulate the binding process. Everything I’d read suggested that a series of pulses needed to be sent just after power up, but the code in paparazzi that did this didn’t work for me. Capturing the pulses The starting point was using the existing AR8000 as when this is powered up with a bind plug inserted and the satellite receiver attached both go...

Quad Update #3

When I started updating the quad I didn’t expect it to be an instant process, but I didn’t really expect it to take as long as it is taking me 🙁 The delays are due to a number of reasons, but the time it takes for some orders to arrive certainly is a large contributor. Radio Control I’ve been using a Spektrum DX8 for radio control and with the previous board The individual “servo” leads were connected directly...

Quad Update #2

I’ve spent a bit more time with both Paparazzi and the KroozSD board, so these are a few more observations. NB these ONLY apply to the KroozSD board 🙂 Configuration After a good look through I changed the settings to match my configuration, tweaked a few to what I hoped would be more appropriate values and rebuilt. The ESC’s now make the correct noises and the telemetry looks good. The battery voltage being shown is that supplied via the...

Quad Upgrade

When I built the quad I went with a simple controller with the intention of upgrading at some point once I had more idea “what I was doing 🙂 Of course, such an open ended target was a total cop out and after some discussions with a friend and having a little more time on my hands than I had, I recently decided the time was right to start looking at an upgrade. This is what I had (a Hobbyking KK2....

Routing D'oh!

React-router is a great addition to React, but yesterday marked the first time I had used it for a project. It led to a period of head scratching, but maybe this post will help someone else avoid the same mistake I made! Simple Setup Installing it was simple enough. npm install --save react-router Having installed it I then added the import lines, import {Router, Route, Link, browserHistory} from 'react-router'; and then added some routes to the root component. render(( ), document....

postgrest views

When is a view updateable? The answer becomes important when using views to access the data via postgrest. If a view isn’t updateable then insert, update and delete operations will fail. It’s possible to check by requesting ‘/’ from postgrest to get information about the endpoints available and looking at the insertable field. [ {u'insertable': False, u'name': u'fruits', u'schema': u'public'}, {u'insertable': True, u'name': u'colours', u'schema': u'public'} ] In the above, attempts to insert, update or delete from /colours will fail, but...

postgrest lessons learned

I’ve been spending some time recently getting to grips with postgrest by writing a small schema and figuring out how it all sits together with the help of a simple python client. The plan is to continue to develop it as a react/redux app once I have postgrest and the data figured out 🙂 The following are just some things I’ve learned that may have helped me from 10 days ago and may help someone else. Roles I’...

letsencrypt

The idea behind letsencrypt is great. Wanting to add an SSL certificate for one of my domains I decided it was time to see how it worked. Installation No package is yet available for Ubuntu, so it was onto the “less preferred” git route. $ git clone https://github.com/letsencrypt/letsencrypt ... $ cd letsencrypt The posts I read said to run a command, answer the questions and all would be good. $ ./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory auth After...