I got the first of the outputs working. I can set an LED based on JSON from serial. It works fine manually, but with the Python script the Arduino doesn't like the JSON it sends. While trying to debug this, I discovered that the Arduino is sensitive to either fast requests or large requests (or both). I was able to trigger a freakout by sending too many requests (See below).
I'm not sure if this is the ArduinoJson library, an out of memory issue or a buffer overflow. I was getting them earlier on before I defined the length of a char* array. I did make sure I wasn't sending requests until the previous response was sent, so it shouldn't be stacked requests.
I may look into coding a simple JSON parser. Since it doesn't need to handle advanced JSON, just key-value pairs it shouldn't be too bad to do.
JSON Parsing failed."{v:0.9.0SAS StatusJ0J1,toggle_fbw1six_dof}ONLINECALIBRATINGKey MMKeySASsasTogglesas_statusThrottleset_throttlePercentREADYRESTARTResetting...{}nulltruefalsebfn r t null""\\bf n r t: , ()10TrueFalseError: Trying to get an output pin.ValueToggleNoneTrueFalseZeroOneKeyFloatPercentUnexpected format "" in object ""ErrorKEY: ValueToggleNoneTrueFalseFalseTrueUnexpected format "" in object ""Error Locked Button Indicator,:X: Raw: , Raw: , Corrected Y: Raw: Z: Raw: xFloatyz ButtonValuex+-/+a+A++814 Ô ìàôÿèÿ äô" ÿ@ ºôª²ÿ¢V è è è ê qnqpôöö0öbÒn×M:"True"} {"sas_status":"True"} {"sas_status":"True"} sas_status"55:"True"} sas_status"55:"True"} sas_status"55:"True"} sas_staèÊÅÄÀÁÂÆèRÍÌÈÉÊÎèÚÕÔÐÑÒÖèb¦540126xͺMValueValuertJ0x J0- calibrateCalibrate LockedValue Calibrate ButtonValueJ1h CalibrateCalibrate IndicatorÊÂxà?6&|ìb¶ÿ\@íýH!?7&|íýVÿô>ú>8&|ôÿ ¬9&|°¸ÿ* :Ù/»ì>:(|Ù2ÿξø?ü>;(|øÄìÿðöòýøà?<�(|òýúÿ =(|ÿ&½zåæÔôßÿD"æÔô( ÿ|xà?6æÔôÿÿ³ ?6Gô²ÿÀÿÿxóïß}uýÙNÖßî¹çµU.uïfæÔöö·~îëæï×ÜÏîÈó»sHÊÇïÿ_Û£ýûçÇ Ïá÷¶uËëgì«ÿîÿÍ»ÿÿÿþü¯ù½óÎs÷ýÝk¿Óõë6ï½ÓÿÓþý_ýêþýÃëïksï=Àþ;ÿÏígýcûãtï-Ë}=¾~q¾½ÙöÚú?ß*øßüÛ»oõêß»ËÝÿe®~óùx>¬ý¯þ«ÿ÷2«ÿÿ\ÒÍýîÿ{Éÿý÷Ý¿/Þ¼ÞÿûÖý»«=nß[ícÎÿíÕ>ÿ»¯Lÿñ½û¿þõ5"GÍÿs¿ú~ÿíÓsy¯çÓgïßÿ~ßÎÃ/m÷û§óÿ÷ çÿÿ·Å7ïûùËïßWµÿݲïÿ]ïÍîÝ1³¬ëÛ_¶õ¦é?ÆM=ÏÛÝm¶è®kJºûÿÿÏmþßwýõåÛþó}þÿó÷Ïví¿ù×Ýï×{ÏôoÞ»aþ¾ïÊîÜÝóooo_óûÚíï·µ÷ë§ù³ÿ¿ºöw»çç®ùóÿý¿{ßqþÿ¿ïßûÊÿúûßûÿ÷\õÚô|ùõÞY»~_}oÕn>wo¿î´÷gÎ]öñ÷|üúþ¼}1ëûõ»þÚ[n¾úâeûÍ®ÝÆôªïÍïGñâ~ÿ>ÿ÷뽯xm¯ù=>ýÿÿNwÓÎ÷Þ^¢{^ûw¬ÕB¿ûï8ôÝß·Ísaÿß=þÿ{Ï{ymöõòóÛç]ûï_õ×_|ïw}÷øÿ÷ÏûÕãõûýïîû©}Í×ïßú«=>®ï« ÿé¿l]£¥Þmië¶Ï×ßí&ößùûÿÿÿÎÿß&üÕüöïµý·=¿êÿ/vï|wî[íws)Tô¨ßõ².ßuýý%%ÿë6ë/¿ÿ÷ýîîûuûfX e åÔôMÿÿ ÂôyÂÿÐÿÿÙþ~ä~9ÏÅgùßýÝcÚßÛßýßþotþþý¶Ø;oi÷½ïÿ|Ðß®zlbõÿ·®ê÷öþ®fÿÿë¾ùÿçÿÃûy¦ó]÷×Æö¬Û×ýÿ÷¿[òÛ-·¸û×ÓØoê÷vûÿûçÚkçqÞûûëÚþÿøµþ¿í÷¼ÿ¬ýÿ©[Ûý{ý¯Õ÷Ëÿë¹÷þû³ýÿóê¿{¾üûóÿìïç· µª¸Îãß/ú»Ýûç>]v׫]óç÷²7ßäíÉ{¿á77s=/^ïùS·µ[×ú×ý¿¯C×>Õg¾ÞÓûZú¾ÿëß{üÛ{7íßÿOg¿gï-þÿùû|[íöÆ=l¿?ïé~Õ]ÝþS~ÿÿû÷ßË~W÷owíÿÿïøìþá?Èþß®½»çõÏw¿Z~õ¿ôïãàËû5¿m{û*æûÎc¶Ûö_Ûäþª/z:ºïÿݳϺ~ôd6ë¿îÿþ<¾µÝöüÝdÙ:ëõ®ïíþ¯{ÝòW¾çßrÏí^ïÞý®ïýÞÞ÷÷®ïm~ ï÷~^âÿ_É©-ÿ?ϪÞÿÊïb7¡ß~o/÷ÛWÝS¡ÏþEúïÿífR_Ñ9owïû¿úeýw·¿®=»ÞüÞùÓo_þ·_sþËeÝYó?éëÞý{@ëÿü»ÓU<ÜæôÿûîI®¯ýõ´?ýÕoÝ>ënyÌÊïþ9ýNîÊVo·÷?ðü_çûl¾ß¬Þï×\û¾kñ.·ß60~û³ÿî&.~ýʼCÃøe¥ë¯ûÏÅù¾ÙÚÏöþ|Yûý{ÆÃÑoam×ûþ±çܪ)×ý¿íûò7öåª{ÇÝéµíºïçt»ÐGê'¶;U¾Ûÿo¿ãZÚ{}ÿï¯ó/ÍýûoýìåçùntÇU»îíûÛó}º§÷»5ÿѯÃko÷æu¾?ûzµç¿þÇ»~ùõüuóÿ£øüwìö¹^Ôü¿Êûo~ùßßÝñýoµÿ¿ñýïþwITݼï¬óõ::[?}¾'èíä¦ú:yÍëÚþk·ÿm÷ûï¿÷{3::üí:~æ:::øþ::ÞÿéÞ]:þÿoÁçßgÿÿ÷¿zÖÝ·Ç|Üw{?sÖ³»ìyÿûøí'oþù}óóÕle~«j»ÿmÓÿÿØ ¿îÿïFxz¯Vgÿõ®¾ïèËão%È÷oÏ´v[ßíþß,ßëbýõíÛïÿg´{å?ë'³»Õ{}íÿ_ç{}¿ï5þµüqß÷¯^2~{*_qw½íóÿ1Îê:ãwö|ýÙ Íóÿ¦ùso3>ûwöíÆó÷þ¯Ó;Öð|ï¿[[ëôÏ{¦×:;û+7=ÿþÿ?}Þß Ûìü~è¶×çÝåØÞo´§c½¿Þ}?ÿ½ûFloatJ1xSAShyValue BJ0yFloatºv":"0.9.0"}Key MFloatJ0zFloat J0 ButtonValueÒÒFloattoJ1y Jv"JKeyKEYMJ1zFloat J1 ButtonValuesasToggle"sas_status":"True"}p pNv":SAS Statussas_status"N Throttle set_throttlePercent {"x:"y}sas_statusle_f:"1","six_dof":"0.00,0.0 {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":" {"x:"y}sas_status.J":"0.9.0","toggle_fbw":"{"sas_status":"True"}{"sas_status":"True"}{"sas_status":"True"}{"sas_status:"True}sas_status:"0.Trueoggle_fbw":"1","six_{"sas_status:"True}sas_status}"True"0.9.0","toggle_fbw"{"sas_status:"True}sas_status0.00Truep_brake": "False", "{"sas_status:"True}sas_status.0",Truerottle":"50.64"}%{"sas_status:"True}sas_status.0",Truerottle":"50.73"}%{"sas_status:"True}sas_statusake"Truee", "rcs_st{"resourc{"sas_status:"True}sas_status "FaTruercs_st{"resource_mp_{"sas_status:"True}sas_statusse",Truetv ","toggle_fbw"O{"sas_status:"True}sas_statusp_brTrueFalse, "rcs_status{"sas_status:"True}sas_status.9.0Truele_fbw"O{"resource_{"sas_status:"True}sas_statusFalsTrues_status: "False}{"sas_status:"True}sas_statusle_fTrueresource_mp_max: 27{"sas_status:"True}sas_statuss_stTrue"False}sas_statu{"sas_status:"True}sas_statusresoTrue_max: 275, "action_{"sas_status:"True}sas_status"FalTruesas_status0"}v{"sas_status:"True}sas_status_maxTrue "action_group_brake{"sas_status:"True}sas_statussas_True0"}v":"0.9.0","{"sas_status:"True}sas_status "acTrueoup_brake: "False,{"sas_status:"True}sas_statusTrue!Ç *!!Ç-è!Ç{"sas_status:"True}sas_status.TrueU/¦Æ#2:{"sas_status:"True}sas_status DTrueN D-è Dg/Úgô 'Á¸ÿ+Ï-8ê¯K-rê-²¯G/ Ï ¼¥/Ú¥ "+®n-8êurê:"-¤¤-¯urT"z{«""ÒßÿtndôMÀÿ> K eô¼ÿC16eôrÿÏì=ö>6]ìÿ2* íýH!?7^íý!£/Ú!£ Öa!£!!=-è!£.!£.» Õ£!!£/ Ö/#Á!Ä!Äj0!Ä f!£!!!=-è!Ä .!Ä.1!s!DÏ/ ~zÀ¼xrÛjØ11111]]¿pZ !¾/Ú!¾hç!!Ý-è!¾.!¾½!!¾!áç!8P.»!áÔ!!ç!á!ÕäñIhW)N!)m-:Î8
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.