Close

Indicators

A project log for KAPCOM

Yet another hardware controller for Kerbal Space Program. Leveraging Telemachus, Python and Arduino to drive joysticks, buttons and displays

lawnmowerlattelawnmowerlatte 02/13/2015 at 05:410 Comments

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...{}nulltruefalsebfn
r
t	null""\\bf
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 ButtonValue€xš+-/+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ûf„X

e

åÔôM–ÿÿ
‘

ÂôyÂÿÐÿÿÙþ~ä~9ϝšÅgùßýÝcÚßÛßýßþotþþý¶Ø;oi÷½ïÿ|Ðß®z›lbõÿ·ž®ê÷öþ®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_statusƒTrue!Ç	*!!Ç-è!Ç{"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ô¼’ÿC16eôrŠÿϐžì=ö>6]숖ÿ2*	íýH!?7^íý!£/Ú!£ Öa!£!—!=-è!£.!£.» Õ£!!£/ Ö/#Á!Ä!Äj0“!Ä
f!£!!—!=-è!Ä
.!Ä.1!s!DÏ/	~zÀ¼xrÛjØ11111]]¿pZ’’ !¾/Ú!¾hç!‡!Ý-è!¾.!¾½!!¾!áç!‡8P.»!áÔ!!ç!á!ÕäŠñIh’W)N!)m-:Î8

Discussions