To not let this this thread go stale and even give some useful info (TL;DR at the bottom):
- My two NANOs arrived nice and fast, but then disaster struck, they're both with ATmega168, the anemic and castrated cousin of the ATmega328P
and no matter how much code cleaning and help text removal there is no way for the AR488 current software to fit in one of these. I wanted to strangulate the seller, but then I've looked better and guess what, they mentioned that is an ATmega168 Arduino NANO, both in title and in the description, shame on me that I didn't know what's the difference
and considering the price I decided to keep them both (one is in use right now, one is available at cost if some one is interested).
- I've decided to get the latest fancy ORIGINAL NANOs and most likely the last model on 5V, and got a student pack of three Arduino Nano Every from the Arduino Store, they even claim that will fight with the ever watching Bundesadler and took the tax as well, so I hope the parcel will arrive directly and spare me the trip and waiting time to the Zollamt (customs), all nice and dandy, but what to do in the meantime
?!?! I vaguely remembered that long ago I evaluated the Arduino platform for a project and got TWO pieces, digging trough the embedded systems box, at the bottom of the crate (as usual) a small modest anti-static bag holds the loot, open it and first disappointment, one NANO is an STM32F103 blue pill, at 3.3V, useless for our purpose, but the other one is an honest to God 328P NANO, and an older one from the time when vendors were competing on quality, the difference in between finishing and soldering in between the generations is staggering, not to mention the price.
- Connected the prize board to the USB cable,
git checkout . to revert the desperate attempts to reduce the program size, recompile and upload the AR488 and... error, 10 attempts of upload the program all failed !!! WTF
, oh looky there is a CPU version called
"ATmega328P(old bootloader)", figures, is an old board it could have an old bootloader, switched and voila, load and runs
, now we're talking, let's do testing, testing done, all well (actually spotted a number of bugs already, but not catastrophic), well up until the ill fated command
"++rst", this produced a full lockdown of the board and a spasmodic blinkerei of the LEDs that could only be cured with power-cycle, not even the reset button on the board was able to do anything !!! what the rotating fuck again, now what
- Oh well, after reading the code, the data-sheet and the stars configuration I have painfully
extracted from google that the culprit is the friggin OLD BOOTLOADER
, in some situations the genius that programmed triggers at sw reset an infinite reset loop due to cretinic programming of the watchdog
, let's attempt to program the "new" bootloader, here the pseudo-useless 168 board proved to be a lifesaver, got on Arduino forums an über-verbose tutorial/blog spam that attempted to explain to every simpleton how to reflash the bootloader using these psychedelic Kritzing or whatever is called that idiotic cartoon-ish schematic capture program, and always using an Uno as programmer. Once I figured out the actual simple interconect schema I've programmed the "new" bootloader and reloaded the AR488 repeating the test of the available commands without a connected device, everything OK, including
"++rst", all is well.
- Here are the first commands and the first bugletts
AR488 GPIB controller, ver. 0.51.15, 12/10/2022
Verbose: ON
> ++mode 1
Interface mode set to: CONTROLLER
> ++mode 0
Interface mode set to: DEVICE
> ++rst
AR488 GPIB controller, ver. 0.51.15, 12/10/2022
<...snip most ++help text...>
++mode: [P] Set the interface mode (
0=controller/1=device)
<-BUG1: inconsistent help message and command status (see above)<...>
++srqauto: [C] Automatically
condiuct serial poll when SRQ is asserted
So an inconsistent help message and a typo, did you expect more on dry run
, the moment the boards arrive, I'll seriously stress all the existing functionality and even contribute some code back if thre is some stuff to fix and implement, meanwhile (finally) summary:
- - You need at least an Arduino ATmega328P board, the castrated ATmega168 version will absolutely not fit the code.
- - If your board has the "old bootloader" you will suffer on any soft reset, reflash it with latest one, you either need a dedicated ISP or another Arduino board, but here the most anemic one like 168 fits nicely and can be used later as ISP.
- - Arduino Nano Every is an interesting device and may allow more functionality/better performance to be implemented.
- - Two of the 8 boards (I will keep two) for German members have been already claimed, 6 are still available.
- - The slow Chines boat is moving slowly to here, but don't procrastinate, I have to search for my connectors and buffers or order new ones.
Cheers,
DC1MC