I picked up yet another board to try in my never-complete car autopilot project. This time it’s a Pixhawk PX4 (from ETH here in Zurich, woo!) with a FrSky PPM receiver, u-blox GPS, and 433 MHz telemetry mounted on my trusty P-28 Trojan.
I have this long term, never complete project to make a self driving RC car. I’m making progress on the third reboot and finished up the rover board today: On the board is a NAZE32 running Cleanflight for the sensors and real time control, a GPS, a Frsky receiver, a Beaglebone Black for logging, and a Adafruit LCD for status.
I’ve ported the Adafruit 1.8″ LCD driver to the new-ish Arduino ESP8266 port and done an optimisation pass. Short story is that the demo that comes with the board is down from 6083 ms to 3424 ms, and big operations like fill screen is down from 1454 ms to 157 ms.
I’m hacking on porting NuttX to the Teensy LC instead of using PJRC’s excellent Arduino support. For reference, here’s the Arduino pin mapping to the native pin: 0 PTB16 1 PTB17 2 PTD0 3 PTA1 4 PTA2 5 PTD7 6 PTD4 7 PTD2 8 PTD3 9 PTC3 10 PTC4 11 PTC6 12 PTC7 13 PTC5 14 PTD1 15 PTC0 16 PTB0 17 PTB1 18 PTB3 19 PTB2 20 PTD5 21 PTD6 22 PTC1 23 PTC2 24 PTE20 25 PTE21 26 PTE30 This was made by running core_pins.
NodeMcu is a Lua interpreter with a good set of support libraries for the far-too-cheap ESP8266. I’m impressed with how easy it is to script up a Wifi connected thermometer using a DS18B20 1-wire thermometer, MQTT for publishing, and Wifi to a OpenWRT router for the transport.
A while ago I posted about cutting the ACME Arietta boot time down from ~30 s to ~4 s. Here’s the hacks I did to get there. After the kernel has finished initialising it runs ‘init’ which is responsible for setting up the system and starting any services.
I’m having fun with my Olimex ESP8266 dev board. For ~5 Euro you get a 80 MHz processor, built in Wifi, a bunch of I/O, and “IoT” style libraries with a RTOS.
I’m using golang as the language for my self balancing robot project. It should be interesting as golang is designed for server loads, not for realtime, but the bot will need to update at 100 Hz (10 ms/cycle) to say upright.
I’m working on a self balancing robot as a coming-into-winter-something-inside-sounds-good project. Today I got it driving about: not balancing, not smart, but still a good milestone. It’s been a lot of fun due to the different tech involved.
I’m quite enjoying my Multiplex Dogfighter. I just fitted a new spinner and mount to replace the one chipped in a crash, and it’s smooth and quiet again at full throttle.