0
\$\begingroup\$

trying to program a custom arduino board, effectively an uno w 328P chip that plays some audio, with a particular board/bootloader, but having some issues. The wiring is fine, as mentioned below it will program with some board/bootloader combos, but not the one I want.

The board programs over ISP no problem (both bootloading and actual code), but I would like to be able to program via an FDTI232 board for convenience. I've connected the FDTI232 to TX/RX/power and DTR to 0.1uF cap which has other leg connected to the reset on ATMEGA328P. So, this works fine - I can write/read serial data fine, and if I load the ATMEGA with minicore bootloader it will happily program via the FDTI.

However, the minicore bootloader doesn't work with my main program - it induces massive audio noise. Furthermore, my main program uses extensive libraries that only work with arduino 1.8.1, and also with arduino AVR boards 1.6.20. More recent boards just create massive issues in the running of the code with extensive resets, noise and instability.

How can I get the board to program via FTDI in this circumstance? I gather there is an old/new bootloader that if I had the newest version of arduino might help but I am unable to update for the aforementioned reasons.

I've tried changing the board defintion uno.upload.speed to 57600 as thought it might be related to this - however I am actually wondering if this upload speed doesn't actually change the bootloader - is this correct and if so how can I change it/what else should I do?

For reference - the standard arduino 1.8.1 arduino uno bootloader works perfectly with my board - but I want to be able to bootload this onto it then upload code via FDTI.

Thanks very much for your help

\$\endgroup\$
  • 1
    \$\begingroup\$ It sounds like your program is making assumptions about the state of chip registers when it starts running which are not necessarily valid when a bootloader has run first. You should modify it to definitively set everything that matters. Beyond that your question has too many missing specifics for anyone to really be able to help you - only you are in a position to debug this. FWIW an Arduino (at least an AVR based one) is a terrible choice for audio, perhaps this would be a good time to chose a better platform. \$\endgroup\$ – Chris Stratton Jan 11 at 4:11
  • \$\begingroup\$ Thanks for that, will research chip registers. It just seems bizarre to me that it is easy to ISP program the chip but we can't do it serially - do you know how/what I should do to get info on what settings the bootloader has? Like is there something I could upload that might allow me to copy the bootloader off the chip.. P.s agree that atmega is not the best audio chip but for our purpose it works great and is well supported! thanks again \$\endgroup\$ – Calum Nicoll Jan 11 at 18:17

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.