Meta tags:
Headings (most frequently used words):
categories, si4463, fpv, rc, posts, recent, diy, fixing, laggy, ssh, connections, esp8266, video, streaming, android, usb, tethering, debugging, unbalanced, motors, rate, pid, bandwidth, testing, rig, gpio, ramp, up, down, first, hw, test, almost, finished, navigation, follow, comments, archives, meta,
Text of the page (most frequently used words):
the (242), and (95), for (42), video (39), with (36), this (30), like (21), but (21), that (20), modulation (18), raspberry (16), all (16), 802 (16), using (15), fpv (14), motors (14), are (14), not (14), gpio (14), have (13), can (13), wifi (13), quad (13), some (13), which (13), 2016 (12), will (12), #esp8266 (11), bandwidth (11), screen (11), you (11), compiler (11), silkopter (10), android (10), rate (10), through (10), enough (10), jeanlemotan (10), one (10), cck (10), comment (9), now (9), usb (9), ssh (9), link (9), very (9), high (9), column (9), odfm (9), other (8), june (8), 2017 (8), streaming (8), pid (8), phone (8), data (8), them (8), after (8), there (8), just (8), lot (8), 11g (8), 2014 (7), testing (7), unbalanced (7), than (7), send (7), packet (7), test (7), line (7), code (7), more (7), same (7), etc (7), first (7), from (7), set (7), was (7), si4463 (7), thrust (7), firmware (7), 11b (7), ground (6), station (6), arduino (6), leave (6), over (6), power (6), here (6), seems (6), end (6), when (6), problem (6), around (6), bitrate (6), module (6), path (6), wrap (6), get (5), com (5), diy (5), printing (5), feed (5), rig (5), tethering (5), your (5), case (5), what (5), connection (5), h264 (5), injection (5), got (5), use (5), system (5), bad (5), fly (5), app (5), has (5), matrix (5), allows (5), each (5), adc (5), because (5), quality (5), gpios (5), input (5), slow (5), then (5), seem (5), preamble (5), fec (5), packets (5), settings (5), compensate (5), motor (5), sdk (5), lib (5), spi (5), short (5), started (4), wordpress (4), email (4), comments (4), comms (4), ahrs (4), july (4), september (4), november (4), 2015 (4), gimbal (4), debugging (4), connections (4), posts (4), receive (4), connect (4), buttons (4), 4ghz (4), low (4), control (4), whatever (4), wifibroadcast (4), too (4), say (4), want (4), work (4), didn (4), second (4), library (4), pids (4), button (4), throttle (4), changing (4), about (4), good (4), doesn (4), between (4), trace (4), pin (4), output (4), delay (4), everything (4), well (4), latency (4), rf4463f30 (4), monitor (4), mode (4), should (4), frames (4), these (4), device (4), sections (4), log (3), odroid (3), gyro (3), gps (3), filters (3), dead (3), reckoning (3), cuav (3), avr (3), categories (3), october (3), laggy (3), follow (3), cards (3), next (3), done (3), also (3), display (3), bright (3), pretty (3), result (3), even (3), full (3), custom (3), finished (3), far (3), wires (3), working (3), together (3), rotary (3), encoders (3), since (3), implemented (3), pigpio (3), added (3), avoid (3), updates (3), per (3), connected (3), sensors (3), lines (3), microseconds (3), fps (3), things (3), while (3), parameters (3), menu (3), went (3), axis (3), instead (3), made (3), real (3), few (3), try (3), works (3), oscilloscope (3), setting (3), read (3), where (3), time (3), any (3), seemed (3), thought (3), might (3), change (3), ramp (3), down (3), x264 (3), 500kbps (3), able (3), kind (3), 1mbps (3), coding (3), had (3), chip (3), been (3), thing (3), they (3), bit (3), last (3), post (3), channel (3), tried (3), noise (3), codec (3), different (3), need (3), allow (3), inertia (3), term (3), results (3), multirotor (3), elf (3), flags (3), esp (3), project (3), site (2), required (2), write (2), view (2), content (2), sign (2), subscribed (2), subscribe (2), already (2), account (2), join (2), subscribers (2), blog (2), august (2), january (2), march (2), april (2), 2018 (2), recent (2), fixing (2), search (2), address (2), new (2), navigation (2), application (2), decompress (2), stream (2), steps (2), most (2), quads (2), doing (2), sure (2), longer (2), range (2), both (2), another (2), available (2), telemetry (2), method (2), 433mhz (2), idea (2), issues (2), size (2), capacitive (2), found (2), nothing (2), 100 (2), ended (2), big (2), close (2), don (2), paint (2), best (2), really (2), think (2), give (2), calibration (2), following (2), reduce (2), great (2), update (2), partial (2), middle (2), talk (2), noticed (2), during (2), cannot (2), fix (2), changed (2), 1000 (2), class (2), lipo (2), dbm (2), ghz (2), sticks (2), pitch (2), pot (2), oled (2), info (2), motorized (2), correct (2), roll (2), features (2), much (2), ordered (2), did (2), print (2), abs (2), gave (2), pla (2), easy (2), sugar (2), trying (2), see (2), triggering (2), adjacent (2), visible (2), repeat (2), wait (2), settle (2), way (2), obvious (2), still (2), took (2), out (2), notice (2), only (2), gpu (2), software (2), compressor (2), 640 (2), 480 (2), current (2), calculations (2), sizes (2), overhead (2), supports (2), limited (2), limit (2), could (2), ago (2), stable (2), similar (2), temperamental (2), back (2), systems (2), cause (2), fail (2), choppy (2), configure (2), average (2), bytes (2), issue (2), couldn (2), find (2), free (2), cords (2), esc (2), responsible (2), oscillations (2), its (2), moment (2), ones (2), understand (2), why (2), usually (2), tuned (2), mass (2), tolerances (2), adb (2), 192 (2), 168 (2), warning_flags (2), nostdlib (2), check (2), call_user_start (2), _printf_float (2), _scanf_float (2), static (2), libc (2), build (2), flash_ld (2), system_restart_local (2), spi_flash_read (2), ppenqueuerxq (2), add (2), does (2), uses (2), phy (2), classes (2), used (2), blocking (2), getting (2), 2mbps (2), 5mbps (2), 11mbps (2), 6mbps (2), 56mbps (2), receiving (2), complicated (2), stack (2), dongles (2), something (2), github (2), basic (2), design, website, name, loading, collapse, bar, manage, subscriptions, reader, report, privacy, entries, create, meta, december, february, archives, 1cesco, sloanthrasher, luke, carlo, kenny, ford, enter, notifications, older, profit, quick, redesign, smaller, accomodate, stick, fader, basically, commercial, mavic, due, better, penetration, act, touchscreen, interface, relay, 8ghz, udp, omx, top, setup, look, mild, depression, solve, lease, cost, galaxy, note4, searched, week, alternative, touch, screens, preferable, inches, under, euros, disappointing, heavy, dim, usable, worst, direct, sunlight, photo, brief, unusable, looks, coat, horrible, scratches, attempt, almost, soon, step, although, sight, mess, videos, potting, making, requiring, total, grouping, number, reading, debounce, detecting, ghost, presses, releases, fast, tutorial, split, uploads, readings, sample, 600hz, i2c1, 1mhz, ads1115, takes, 30ms, call, displayincremental, incremental, millisecond, overall, being, updated, tearing, double, buffering, explicit, swap, 2ah, battery, continuous, charger, balancer, port, 433, mhz, diversity, live, editing, switches, channels, individual, cells, status, linear, flight, modes, position, stopping, yaw, bearings, hall, pots, decided, stop, worrying, finish, plastic, primer, white, matte, meantime, pcb, failed, attempts, finally, chance, black, filament, amazon, days, later, printed, successfully, smells, opposed, chemical, smell, however, sanded, sand, rubber, accurately, perfectly, clear, safe, distance, sampled, right, interval, changes, causes, voltage, drop, quicker, trivial, loop, paper, correctly, life, inductance, limits, probe, trigger, green, problems, become, goes, previous, register, lops, without, pins, probed, columns, turn, off, pressed, turned, bug, introspection, wiring, crammed, inside, jumper, shaking, moving, yesterday, strange, sometimes, pressing, triggers, associated, compare, though, movement, specially, further, improve, decrease, experimenting, compress, zero, cores, screenshot, xls, ease, specify, air, sync, sized, header, calculates, nice, including, viable, max, resolution, effectively, 755kbps, target, transceivers, knew, hated, hand, solid, inspired, thinking, latest, weeks, wanted, area, flying, band, crowded, causing, glitchy, abandoned, busy, yeah, constrained, encoder, transceiver, fun, rfm22b, 5mb, hopefully, possibility, interference, spread, spectrum, dsss, coexist, kinds, capacitors, decouple, reduced, always, inductive, coupled, persisting, final, biggest, actually, caused, months, introduce, i2c, chips, wrote, linked, worked, many, lost, 200ms, 130ms, worse, managed, narrow, frame, vary, long, preserved, allowed, undershoot, 16kb, 400, 500, resulted, play, disabling, cabac, activating, cbr, bitstream, uniform, talked, quadcopter, calculated, possible, rf22b, related, tendency, generate, escs, spins, clearance, inch, props, rotate, easily, arms, metal, hooks, built, plywood, elastic, silly, conclusion, felt, sort, epiphany, fully, margin, increase, stability, wise, would, particular, combination, success, fired, simulator, randomness, 120, yes, wouldn, unable, difference, increasing, stabilized, home, measured, lazier, compared, others, tend, slight, differences, pwm, happened, tested, kept, flipping, launch, surely, their, own, reach, impulse, response, depends, radius, distribution, prop, weight, steady, state, error, terms, going, either, higher, instability, let, explain, equal, within, certain, depend, reflected, studio, qtcreator, were, slowdowns, deployment, rather, small, run, terminal, 5555, start, provide, internet, running, network, debug, needs, techering, ide, compiled, require, patching, make, command, access, internal, function, downloading, board, locate, packages, hardware, platform, txt, esp8266_app, sends, presented, stdin, outputs, stdout, received, params, speeds, rates, independently, projects, fec_encoder, encoding, respectively, timeout, loss, decoder, stuck, non, operation, talks, stats, transfered, dropped, broken, radio, react, reason, supported, 9mbps, 12mbps, 18mbps, 24mbps, 36mbps, 48mbps, sending, 1376k, sent, bus, rssi, helper, 12mhz, speed, 10us, 8mbps, throughput, recommended, 10mhz, 20us, connectivity, host, plugging, dongle, disadvantages, sensitivity, 92dbi, 5dbm, less, points, failure, kernel, cheaper, readily, ability, standard, wn721n, advantages, inject, meant, similarly, shelf, patched, firmwares, readme, nodemcu, esp12f, modules, plan, replace, finicky, wn721, hosted, https, jeanleflambeur, esp8266_bridge_broadcast, version, oon, rfmon, raw, 8266, honestly, how, mean, everyone, simple, fixed, day, frustrated, suggestions, ipqos, 0x00, usedns, struggling, typing, common, commands, dmesg, freezes, adding, file, sshd_config, reminder, hitting, again, posting, help, remember, solution, lag, skip,
Text of the page (random words):
ifi using packet injection and monitor mode oon the esp8266 the project is hosted on github https github com jeanleflambeur esp8266_bridge_broadcast i plan to use it to replace the finicky wn721 wifi cards that i m using now with something i have more control over i m testing using nodemcu esp12f modules and the results are very good from the readme this lib firmware allows you to inject and receive packets using an esp8266 module it s meant for streaming data like video similarly to the wifibroadcast project but instead of using of the shelf wifi dongles with patched firmwares it uses the esp8266 the advantages over standard wifi dongles like the wn721n are ability to control the rate from 1mbps to 56mbps and modulation cck with and w o short preamble and odfm cheaper and readily available very short stack so less points of failure it doesn t have to go through the kernel 802 11 stack rate control firmware etc easy to add new features in the firmware very good sensitivity and power up to 92dbi and 22 5dbm spi connection so no usb issues on the raspberry pi disadvantages more complicated connectivity the module is connected through spi to the host device which is a bit more complicated than just plugging a usb dongle limited bandwidth with pigpio 12mhz spi speed and 10us delay you can get 8mbps throughput recommended settings are 10mhz and 20us delay which results in 5 6mbps there are 2 helper classes in the project a phy which talks to the esp firmware it supports sending and receiving data packets up to 1376k data is sent through the spi bus in packets of 64 bytes when receiving you get the rssi as well per packet changing the power settings in dbm from 0 to 20 5 changing the rate modulation these are the supported ones 0 802 11b 1mbps cck modulation 1 802 11b 2mbps cck modulation 2 802 11b 2mbps short preamble cck modulation 3 802 11b 5 5mbps cck modulation 4 802 11b 5 5mbps short preamble cck modulation 5 802 11b 11mbps cck modulation 6 802 11b 11mbps short preamble cck modulation 7 802 11g 6mbps odfm modulation 8 802 11g 9mbps odfm modulation 9 802 11g 12mbps odfm modulation 10 802 11g 18mbps odfm modulation 11 802 11g 24mbps odfm modulation 12 802 11g 36mbps odfm modulation 13 802 11g 48mbps odfm modulation 13 802 11g 56mbps odfm modulation changing the channel this is broken for now as the radio doesn t seem to react to this setting for some reason getting stats from the esp module like data transfered packets dropped etc a fec_encoder that does fec encoding it allows settings as the k n parameters up to 16 and 32 respectively timeout parameters so in case of packet loss the decoder doesn t get stuck blocking and non blocking operation both classes can be used independently in other projects test app there is also a test app esp8266_app that uses them and sends whatever is presented in its stdin and outputs to stdout whatever it received you can configure the fec params the spi speeds and the phy rates power channel firmware the firmware is done using the arduino ide and can be compiled with the 2 3 0 or 2 4 0 sdk it does require some patching of the arduino make command to allow access to an internal function after downloading the board in arduino go to packages esp8266 hardware 2 3 0 platform txt and locate the compiler c elf flags line compiler c elf flags compiler warning_flags o3 nostdlib wl no check sections u call_user_start u _printf_float u _scanf_float wl static l compiler sdk path lib l compiler sdk path ld l compiler libc path lib t build flash_ld wl gc sections wl wrap system_restart_local wl wrap spi_flash_read then add this at the end of that line wl wrap ppenqueuerxq it should read this compiler c elf flags compiler warning_flags o3 nostdlib wl no check sections u call_user_start u _printf_float u _scanf_float wl static l compiler sdk path lib l compiler sdk path ld l compiler libc path lib t build flash_ld wl gc sections wl wrap system_restart_local wl wrap spi_flash_read wl wrap ppenqueuerxq view all 7 comments android usb tethering debugging june 18 2017 android c adb android debugging techering usb tethering wifi jeanlemotan if you want to debug an android application that needs usb tethering say a fpv app then you can use the following steps you need to first connect the device to the same wifi network as your pc then start the usb tethering and provide internet to whatever you need say a raspberry pi running wifibroadcast or my rc software run this in a terminal adb connect 192 168 1 33 5555 where 192 168 is the wifi ip of your device that s it the device is now visible to android studio qtcreator just like if it were connected by usb i didn t notice any slowdowns in deployment vs usb but my app is rather small a few mb leave a comment unbalanced motors rate pid bandwidth june 17 2017 ahrs fc silkopter bandwidth kv motor pid rate pid unbalanced jeanlemotan for a multirotor to fly the thrust of each motor has to be equal within certain tolerances these tolerances depend on the bandwidth of the multirotor which are usually reflected in well tuned rate pids let me explain the rate pids are usually tuned to reach the best impulse response which depends on the moment of inertia radius mass and mass distribution and thrust inertia prop weight motor power esc etc etc unbalanced motors result in a steady state error for the rate pid which it has to compensate for using the p and the i terms going too high with either term higher than the multirotor bandwidth can allow will cause oscillations and instability it might seem obvious that unbalanced motors are bad in the end all motors even high end ones tend to have slight kv differences which results in different thrust for the same pwm input it happened to me when i last tested my quad it kept flipping over at launch and i didn t understand why the pids cannot compensate for this all other quads work and surely they have their own unbalanced motors so when i got home i measured the kv of each motor and i found that one of them is lazier around 90 thrust compared to the others so i fired up the simulator and added some randomness to each motor thrust between 80 and 120 and yes the quad wouldn t fly the rate pid was unable to compensate for the difference in thrust increasing a lot the p term or a bit the i term stabilized the quad so success but what if i couldn t increase the p or i because of oscillations what if my pid was at its limit stability wise then the quad would not be able to fly with this particular combination of motors and moment of inertia seems like a silly conclusion if the motors are bad the quad will not fly but i felt like i had some sort of epiphany that the thing responsible to compensate for bad motors is the same thing responsible for fully using the quad bandwidth so unbalanced motors need some bandwidth margin to allow the pid to compensate for them leave a comment testing rig june 11 2017 fc raspberry pi silkopter esc motors rig test rig testing jeanlemotan i built a custom testing rig out of some plywood sticks and these kind of elastic cords there is just enough clearance for 7 inch props and the quad is free to rotate around one axis y or roll in the video i can easily change the free axis as the cords connect to the arms with metal hooks the issue i m debugging now is related to a tendency of the motors to generate different thrust for the same throttle input i think it s because the escs have different settings on them as i couldn t find any issue with my code so far if i send 50 throttle to all motors the quad spins a lot leave a comment si4463 fpv 2 june 11 2017 c fpv raspberry pi silkopter video codec fpv h264 rf22b rf4463f30 si4463 video jeanlemotan in my last post i talked about using the si4463 chip to send video telemetry and rc data to the quadcopter i calculated the bandwidth and it seemed that 500kbps video with 5 7 fec coding should be possible i wrote the code linked everything together and it kind of worked the video was stable not many packets lost but the latency was pretty bad it got up to 200ms from the current 100 130ms but worse than this the video was very choppy i managed to narrow it down to the h264 codec in the raspberry pi the bitrate you configure in the codec is an average bitrate per second each frame can vary a lot in size as long as the average is preserved with some allowed over and undershoot i got i frames of 12 16kb and p frames of 400 500 bytes at 30 fps the i frames took way longer to send than the p frames and this resulted in a choppy video i tried to play around with settings like disabling cabac and activating cbr but nothing made the bitstream uniform enough the final biggest problem was actually caused by the rf4463f30 module and it s the same problem i had months ago when i tried to use them they introduce a lot of noise in the power line enough to cause all the i2c chips on the quad to fail i tried all kinds of capacitors to decouple the module and reduced the noise a lot but there seem to always be some capacitive inductive coupled noise persisting in the end i just gave up and went back to the rfm22b chip which just works for video i went back to the monitor mode injection system but did change the modulation to cck 5 5mb to hopefully reduce the possibility of interference with other 2 4ghz rc systems cck is spread spectrum similar to dsss and should be able to coexist with rc systems around so yeah fpv through a very constrained channel with a temperamental h264 encoder and a very temperamental transceiver module is not fun si4463 fpv june 2 2017 fpv bitrate coding fec fpv h264 rf4463f30 si4463 x264 jeanlemotan it s been a while since my last post and that s not because i abandoned silkopter but because i ve been very busy working on it during my latest test 3 weeks ago i noticed that the video link is not as stable as i wanted i m using a system similar to wifibroadcast wifi cards in monitor mode doing packet injection they are working on 2 4ghz and the area where i m flying seems to have this band a bit crowded causing the video link to be glitchy on the other hand my 433mhz rc link has been pretty solid so inspired by this i started thinking if i could do the same thing send video through my rc link i already had the rf4463f30 transceivers which are using the si4463 chip and i knew them well and hated them a lot so i thought to give it a try now the max bandwidth the si4463 supports is limited to 1mbps which might seem like enough for 640 480 resolution but there is a lot of overhead that effectively limit this to around 755kbps since i want some fec say 5 7 coding i end up with 500kbps target video bitrate i made an xls to ease the calculations it allows me to specify the air bitrate packet sizes packet overhead video bitrate fps preamble sync sized header sizes etc and calculates all kind of nice info including if the link is viable or not here is a screenshot with my current calculations for the video link 500kbps seems like enough as there s not a lot of movement in a quad specially with a gimbal to further improve quality and decrease latency i m experimenting with the x264 software compressor library instead of the gpu compressor in the pi it seems to be able to compress real time a 640 480 video with good quality zero latency setting and 2 cores only i still have to compare the quality between the 2 gpu and x264 though one comment so far gpio ramp up down november 21 2016 c ground station raspberry pi rc silkopter gpio oscilloscope ramp down ramp up raspberry pi trace jeanlemotan while testing the menu system yesterday i notice a strange problem sometimes pressing a button triggers not only the gpio associated with that line but adjacent lines as well my first thought was wiring problem as everything is crammed inside the rc with 30 jumper wires so i started shaking and moving wires around but it didn t seem to change much then i turned to code i thought i might have a bug and after close introspection the code seemed correct set the column gpio as output set the column gpio high 3 3v read all 4 line gpios see which button is pressed set the column gpio as input to turn it off repeat everything seemed ok so i took out the oscilloscope and probed one of the columns here s what i got i probe 2 column gpios here and the trigger is on the green trace the 2 problems become obvious first of all the pin goes low too slow so by the time the next pin is high the previous one still has 2 3v enough to register as high and second the code lops through this without any delay between pins on paper the code works correctly but not so in real life where there is inductance and bandwidth limits for triggering gpios high low the fix is trivial i changed the loop like this set the column gpio as output set the column gpio high wait 2 microseconds for the pin to settle read all 4 line gpios set the column gpio low this causes the voltage to drop way quicker than just setting the gpio as input set the column gpio as input wait 2 microseconds for the pin to settle repeat here s the trace on the oscilloscope after the changes as you can see there is a clear safe distance between triggering adjacent column gpios and not visible in the trace the lines are sampled right in the middle of the high interval this works perfectly now leave a comment rc first hw test november 13 2016 fc ground station gs raspberry pi silkopter video button matrix custom rc gpio oled raspberry pi rc jeanlemotan after a few more failed attempts to print the rc case with abs i finally gave pla a chance ordered some black 1 75 filament from amazon and a few days later i printed the case successfully from the first try pla is great it s easy to print it smells like sugar when printing as opposed to the chemical smell of abs and the quality is really good however it doesn t like to be sanded at all it s like trying to sand rubber or more accurately sugar i decided to stop worrying about the finish so much and ordered some plastic primer and white matte paint in the meantime i finished the rc pcb and made all the connections and did the first real test here it is features 3 axis gimbal for yaw pitch and roll it s a very high quality one with bearings and hall sensors instead of pots motorized linear pot for the throttle i went for motorized because when changing flight modes i want to have the throttle in the correct position to avoid stopping the motors 0 96 oled screen for status info calibration and other things 8 adc channels 4 for the sticks 3 for the individual lipo cells and another one for the gimbal pitch pot a 4 4 button matrix implemented with pigpio for all the buttons and switches 2 rotary encoders for live editing of parameters like pids menu navigation etc 2x 2 4 ghz wifi diversity for the video feed 5 8 ghz wifi for the phone connection to send the video feed through 433 mhz 30 dbm link for the rc data 2 2ah 3s lipo battery for 5h of continuous use with charger balancer port the screen is conne...
|