Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Don" Newsgroups: sci.electronics.design Subject: Re: Microcontroller (AVR) programming from smartphone Date: Wed, 27 Mar 2024 14:22:38 -0000 (UTC) Organization: A noiseless patient Spider Lines: 65 Message-ID: <20240327a@crcomp.net> References: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 27 Mar 2024 14:22:38 +0100 (CET) Injection-Info: dont-email.me; posting-host="f46b5341985db8288f62e05ae6a0df22"; logging-data="3046059"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/29WWF+S/vqSzkS76819tq" Cancel-Lock: sha1:L6+lojU9S38vFs85kkv1i5kZIKk= Bytes: 3944 piglet wrote: > RodionGork wrote: >> Hi Friends! >> >> Briefly: considering ways of uploading code to microcontroller >> (particularly some Atmel's AtMega - same as used for Arduino) from the smartphone. >> >> In details: >> >> Programming MCUs (e.g. uploading firmware into their ROM) usually happens via >> some proprietary interface (using SPI in case of AVR), or UART, or JTAG. >> This generally involves dedicated software on the side of computer and >> some hardware (USB to UART or dedicated "serial programmer"). >> >> Suppose we want to be able to write simple code using mobile phone - >> situation I met with my class of 15+ students with no dedicated lab having 15+ computers. >> >> I tried creating a small system containing two parts: First - html >> web-page with a textarea to write assembly code, built-in AVRA assembly >> compiler (just compiled to javascript) - and some JS code which can >> "beep" the bits of the hex-file containing firmware (via audio). Second - >> bootloader for target MCU which uses ADC pin to "listen" to those beeps >> via direct wire connected to 3.5 mm audio jack plugged into smartphone - >> and "burn" incoming data into flash memory. >> >> This works (if you are curious to try, it could be found in my github >> page by same username) - however there is a sudden issue: almost half of >> students use mobile phones without 3.5mm jack - as nowadays it is the era >> of wireless headphones already, I missed the fact! >> >> So now I'm looking for further, alternative approaches. For example: >> >> - attaching microphone to ADC pin instead of wired connector; code should >> be beeped out via built-in speaker of the smartphone (it would be a bit >> noisy class, of course) - I actually tried, but was not yet able to come >> up with signal recognition algorithm of good enough quality. >> >> - blinking data with display and catching it with photo-transistor >> attached to ADC or digital pin, haven't tried for it seems like bitrate >> would be very low (even though we generally need to upload firmware of few dozens bytes). >> >> Thus I'm open to any ideas / hints / articles on improving either of >> these two approaches - or perhaps something completely different which I may have missed. >> > > Keep your audio interface but plug it into a Bluetooth audio receiver (or > cannibilze an old Bluetooth headphone and connect your audio interface to > where the earpiece was). Then students can connect audio via Bluetooth. Beings Bluetooth uses a packet-based protocol you need an MCU to receive packets, no? It's easy to use a HC-05 Bluetooth Module: It's harder to DIY: Danke, -- Don, KB7RPU, https://www.qsl.net/kb7rpu There was a young lady named Bright Whose speed was far faster than light; She set out one day In a relative way And returned on the previous night.