Monday, 7 September 2015

Windows 10 and the iMac

As a follow-up to windows 8 running on an old iMac, Windows seamlessly upgraded to 10 and it's all running rather well. All be it a little slowly by modern computer standards.

Windows 10, No IPv4 settings?

You can't get to the IPv4 settings for a VPN now in Windows 10.
No idea why but here's a good write-up on it.

Split Tunneling VPN

Tuesday, 1 September 2015

NAZE32, X4R, Cleanflight, smart.port and Taranis telemetry.

Having read the great write-up by Frank on how he got a X4R talking smart port to a NAZE32, I assumed I'd be up and running in no time. There were a couple of snags though.

I didn't want to take a soldering iron to my X4R and I wanted to not reverse the polarity, with a hack, because it would be good to hook up other smart port devices, like the battery voltage monitor, among others

So I built a bi directional inverter with a couple of transistors and 4 resistors.




After getting the serial com polarity fixed, there was another issue with the NAZE running Cleanflight.

The current build expects you to have either hacked the X4R or that you have an F3 board where you can reverse the polarity of the uart via the CLI.
I had neither so I did a build with a non bi-directional serial port.

In the configureSmartPortTelemetryPort function in smartport.c, the port is hard coded as SERIAL_BIDIR. The current code expects that the serial connection is sent over a single wire, but I couldn't figure out the circuit to do that. The NAZE doesn't have serial polarity inversion so, I simply changed the line to SERIAL_UNIDIR, and connected Tx and Rx wires to pins 3 and 4 on the NAZE, respectively.


 void configureSmartPortTelemetryPort(void)  
 {  
   portOptions_t portOptions;  
   if (!portConfig) {  
     return;  
   } 
   portOptions = SERIAL_UNIDIR; 
   if (telemetryConfig->telemetry_inversion) {  
     portOptions |= SERIAL_INVERTED;  
   }  
   smartPortSerialPort = openSerialPort(portConfig->identifier, FUNCTION_TELEMETRY_SMARTPORT, NULL, SMARTPORT_BAUD, SMARTPORT_UART_MODE, portOptions);  
   if (!smartPortSerialPort) {  
     return;  
   }  
   smartPortState = SPSTATE_INITIALIZED;  
   smartPortTelemetryEnabled = true;  
   smartPortLastRequestTime = millis();  
 }  

Et voila, Cleanflight telemetry on my Taranis.


Edit: Pic of connections