[Updates at the end of this article]
At today’s Bay Area Maker Faire I was hopeful that I’d hear some news on the Arduino Star OTTO… I walked away with not just news but a new Star OTTO Light! (At $54 USD was not bad at all either – though that was a slightly discounted Maker Faire price it’s also cheaper due to the reduced complexity of the Light device itself, as described later in this article.)
First, some unboxing photos of the Star OTTO Light:
Note the metal rectangle on the topside – that’s the ESP8266 board. It’s inscribed with the identities of the six LEDs to the left of it… but be careful as the legends are not well-aligned with the corresponding LEDs.
Now for comparison, the handout datasheets for the Star OTTO and the Star OTTO Light:
The big difference between the Star OTTO and the Light version is the Light lacks the 16MB SDRAM, the graphics controller, the camera interface and the audio output. We see the unpopulated BGA pads for the erstwhile SDRAM on the back of the board, and the unpopulated pads for the A/V interface as well.
However, the other specs remain the same: most importantly, the ST Micro STM32F469BI ARM Cortex-M4 MCU, 2MB flash, 384KB SRAM + 128 KB EEPROM, running at 180 MHz, with plenty of digital and analog I/O, etc.
In addition, both boards feature Espressif’s ESP8266 WiFi device.
Like the Arduino Due (and most modern boards out there) this is a 3.3V device – if you have a 5V device to connect to it, be sure to use appropriate level shifters for it!
Getting it to work is pretty easy – install the latest Arduino IDE (1.8.2 or greater… the Arduino.cc one seems to be just as good as the Arduino.org one for this). Then, per the FAQ, add the board package for “Arduino STM32F4 Boards”
There’s lots more info on the Getting Started page for the Star OTTO. I’ll be delving into that more as the week progresses. though for some reason I can’t get mine to flash over serial. I suspect it’s a driver issue on my end, so I’ll also be configuring for local flash and testing that in the coming days.
Update: I’ve been unable to codeload via serial or Wifi (though I do have WiFi configured correctly). I’d love to know if others are having better luck with that! (It’s working now – see below.)
Also, I’ve reported a security issue with regard to the WiFi mode not persisting across reboots. Once you’ve configured WiFi, be sure to switch the device back to “STA” mode each time you reboot it, until this problem is resolved. Given the design it appears to be necessary (if not ideal) to have the insecure AP mode during initial setup, but beyond that even the Getting Started guide recommends STA-only operation. The fact that setup is insecure and means transmitting WiFi credentials in the clear is a larger problem – a secure WiFi and/or serial-only setup mode would be greatly preferred.
Update 2: This still refuses to work in Windows, but to ensure it’s not a bad board I went through the pain that is installing this on Ubuntu 16.04 (it far more complicated than it should be). After a lot of work I managed to flash an example sketch to the board. Please check out my notes on this process if you’re trying to do this via Ubuntu!
As for why I’m having no luck in Windows, either I have some other driver interfering (because over time I’ve used more than a few STM32-type boards) or it’s a fault in the serial programmer as it interacts with Windows… (Fixed)
Update 3: I can upload via Windows now! I had to manually change the driver for the STM device: I have a signed driver for “STM Device in DFU Mode” that was the default. Selecting the “STM32 BOOTLOADER” driver for this configured the correct driver for the Star OTTO. This might affect my Particle Photon builds and any MicroPython firmware builds, but at least it worked…
Also, an OTA codeload caveat: you need to be in DFU mode. Hold Boot and Reset, then release Reset, and finally release Boot. The L13 LED (yellow) should be on and solid when in DFU / Bootloader mode. If your WiFi is configured correctly you should be able to codeload – remember to switch out of STA mode after resetting!
(Note that I’m (now-successfully) using the Arduino.cc IDE for Linux and Windows. For some weird reason Java isn’t included in the Arduino.org IDE for Linux so it’s that much more work to maintain. and I’m not seeing any advantage to that over the Arduino.cc one.) Edit: The Arduino.org IDE is able to handle serial over IP while the Arduino.cc one cannot… that’s a difference! Both IDEs seem able to do network serial too.
For others who may have encountered this, a before/during shot wherein you can see the wrong driver is loaded and the choice of alternate (installed) drivers:
And the view afterward:
Update 4: Serial problems: Though clearly I can upload and run a sketch, Serial I/O from within the sketch doesn’t appear to be working. Investigating… Use `SerialUSB`, not `Serial`, for normal terminal comms!
Update 5: Helpful hint: use target-specific #defines to handle custom code variants, e.g.:
#if defined(ARDUINO_STM32_STAR_OTTO) #define Serial SerialUSB #else .... #endif
(Oddly, `ARDUINO_ARCH_STM32` doesn’t appear to be defined for the Star OTTO boards.)
Update 6: The 128KB EEPROM on my board appears to be an ST Micro M24M01-R (a TSSOP-8 device marked 4M1RK), and substitutes for the functionally equivalent Atmel AT24CM01-XHM device shown in the schematic. This EEPROM appears at the 7-bit I2C addresses 0x50/0x51 on I2C interface 2 (via Wire1). As a starting point the Arduino AT24C1024 I2C EEPROM Library may be of use (with modifications to use Wire1 versus Wire).
Update 7: My other major goal was learning how to modify the ESP8266 firmware and to safely recover it in case of problems. I’ve successfully done both, and will create a new post with that information later today!
Permalink
Hi
I also bought a star otto at MakerFaire.
And have no luck getting it working on my regular windows 10 laptop that I use for Arduino tinkering.
I followed what you said above, tried it, but I must be missing something.
Would add a bit more detail and screenshots to guide me please?
Permalink
Define “no luck”… did you get the latest Arduino IDE and the “Arduino STM32F4 Boards” package installed?
Edit: I can see how it might have been confusing. If you installed the “Arduino STM32F4 Boards” package from the board manager, try removing and re-installing it.
Permalink
Thanks, eventually BOOTLOADER steps worked. I don’t know why it took so many tries, but my code loaded and runs.
Good tip on SerialUSB.
Q2: Have you changed which AP the board uses?
Home AP setup initially & easily, but I haven’t been able to change board to use Office-AP.
Permalink
I’d be very wary of using this on an office network until there’s a way to do config totally offline. I’m looking into that now that I know how to update the ESP8266 device on there…
https://www.falatic.com/index.php/204/arduino-star-otto-light-updating-the-onboard-esp8266s-firmware
That said, when you say you can’t change it, you mean you can see the other network in the setup page but cannot connect to it? Could be it uses a different authentication protocol. Office networks can be tricky (and perhaps for the best given the security concerns I have.)
Permalink
I have control over office LAN, so not those issues.
Something weirder. Pages from the OTTO-AP-and-web-server dont fully load. It varies. Sometimes no page loads (but no 404), other times some text loads, but not the full page and colored background.
Web server worked fine 1st night at MakerFaire, so I’ve seen the web UI.
I will try again away from office.
My OTTO board is running my app and I don’t feel pressure to figure out work arounds for OTTO.
Hopefully Arduino folks will smooth out the rough edges before major US release.
Your bootloader tip helped.
Permalink
Is there anyone that is willing to sell their Arduino Otto Star. I am desperately looking for one. Please let me know if you are willing to sell yours.
I tried to run the bootloader on the Arch Max board to make it act like the Arduino Otto Star and I had to luck. It would be great if I can get my hands on a board and figure out the differences.
Please let me know
Permalink
I’m curious – which Arch Max board are you trying to run that on, and why? If it’s the Arch Max V1.1 (which appears to be the current one) I’d expect it’d work with the Arduino IDE already via STMduino (https://wiki.stm32duino.com/index.php?title=Installation)… I’m not sure the actual Star Otto will help at all as it’s not even the same processor (that had the STM32F469 vs what should be the ‘F407 on your board).