MH-Tiny ATtiny88 and Digispark

This product is beginning to appear more commonly now:

https://www.aliexpress.com/item/2251832766795035.html

It's like a Nano, but uses the ATtiny88 processor. And what puzzles me is that the 88 datasheet shows no USB function, but the board has no USB-to-UART chip. From what I can gather, programming requires a special Digispark USB driver on your computer, and the ATtiny88 has to have a corresponding Digispark bootloader. Does that sound right? Does anyone have information, or a link, as to how that all works? Also, is there a schematic for this MH product anywhere?

By the way, I kinda doubt this is a Digispark product, and I kinda doubt the processor is a genuine Atmel product. But that doesn't mean it won't work just fine.

The Digispark bootloader implements a minimal USB interface in software and using GPIO pins on the microcontroller. There is no hardware USB. I presume that's what this product is doing as well.

https://github.com/micronucleus/micronucleus
https://www.obdev.at/products/vusb/index.html

Don't know about a "special USB driver" but Windoze, unlike Linux, is somewhat fussy about installing generic USB serial devices, which is what this is.

There is code for all ATmega - and presumably most ATtiny - devices to implement the most basic low-speed USB. This is used in the USBASP programmer with a few additional components to adapt the USB signal voltages.

My understanding is that the programmer is needed only to flash the bootloader. After that, you can flash sketches to the device directly through USB. I have a vague memory of Digispark, and possibly Adafruit, using such a system for their little ATtiny85 modules.

I think MrMark's V-USB link shows the kind of system they must be using.

Any number of videos on how to do....this is just one....

https://www.youtube.com/watch?v=2hB3rxf6FO8

Problem with the clip on my mac is the project seems not be maintained anymore, so i can't compile on arduino ide due to mac not supporting 32 bit gcc's
Currently I've successfully used this on my mac GitHub - ArminJo/DigistumpArduino: Improved version of Digistump avr core for Arduino
as an alternative but haven't figured out how to output println to serial communication since arduino ide doesn't detect the com port, anyone knows how to allow the com port be detectable by arduino? or any other mechanism to output the println to my console so i can debug my attiny88 using the usb cable i used to program it?

Thanks
Iska

1 Like

Failing to add attiny88 board to IDE1.8.19 and new version 2.0.2 -
Error message -
Downloading packages
arduino:avr-gcc@4.8.1-arduino5
Failed to install platform: mhetlive:avr.
Error: 2 UNKNOWN: Get "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip": read tcp 192.168.1.20:56735->104.18.12.241:80: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Any suggestions please?

Here is the procedure that worked for me to consistently connect the ATtiny88 clone board via USB to a Windows machine running Arduino 1.8.19.

There is no hardware USB interface on this board. The bootloader which is already programmed in the Flash memory connects through a slow protocol to a USB emulator software on the PC running the Arduino software.
The software I used is Arduino 1.8.19 with "MH-ET LIVE" board profile, and then installed the Micronucleus USB driver/emulator.

First download and install the Arduino 1.8.19 software package.
File/Preferences/Additional Boards Manager URLs, enter:
https://raw.githubusercontent.com/MHEtLive/arduino-boards-index/master/package_mhetlive_index.json
You still need to actually install the MH-ET device and select it as a target board.

The Arduino software installs but the USB driver is not installed correctly.
It will show as an unidentified device under Device Manager when plugged into a USB port.

To manually install the USB driver emulator, locate directory (just an example, as it showed up on my machine): ..\Arduino15\packages\mhetlive\micronucleus\2.0a4
and execute "install.exe".
The directory may not show up under the Windows File Explorer but it will show it in a search.
You can then open a CMD (DOS) window, cd to that directory and execute the "install.exe".

If installed correctly, device manager will not show the unidentified device, but it will also NOT be listed as a USB device.
That's normal. The USB emulator only works temporarily to download code, but then disconnects so you can re-use the pins.
To activate the upload protocol, you need to compile and upload as you would do with a regular Arduino board, but then once the cmpilation is done you also need to RESET the ATtiny88 board TWICE.
This will run the bootloader which will connect with the USB emulator and load the code into the Flash memory.
Once you see the success message, the code is in the AVR Flash memory and you can (but you don't have to!) disconnect from the Windows computer. You still need to supply power to the board through the USB port or the pins.

1 Like

Hi All, this little board is tricky , installing as suggested by manufacture works well , no need for other programmer ,,, remove the board from any external circuits before programming
my computer USB pots have different levels of power , and will not power external connected stuff,,you need to plug in the USB cable when asked ,,then USB port not recognized ,, its a bit of a hassle but its inexpensive ,, i do prefer the arduino of which i have several , the tiny 88 has no serial ,,programing blind and use stop watch
hope this helps

Hello,
Thanks, many interesting leads in your post.

Alas, without success for me...
although installation was trouble-free
(except with "MHEtLiveArduino/releases/download/1.0.0/2.0a4.rar" but "Digistump LLC (usbser)" finally installed by DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip)

So all four drivers are ok. However the board is not recognized (IDE arduino 1.8.19)

worryingly, the chipset is boiling hot... impossible to keep a finger on it (powered from 5V USB), is that usual ?

What once worked, pcb business cards with surface-mount AVR and a USB plug corner. Some specs tightened and easy became get a cable or chip.

This is V-USB from when WinXP was still used.

I think that USB hardware has changed since then, but where 1.1 works this should too.

question please... what's v1.1?

USB 1.1 did you see the V-USB site?

USB 1.1 (from before J.C.) quite simply! thank...
V -USB yes I saw, but when I read "ATMEL AVR" I stopped dead in my tracks. Error?

No error at all. The Arduino Uno and most of the first wave boards use ATMEL (bought by Microchip Inc) ATmega DIP form chips as opposed to the tiny surface mount forms of the same or better -but- DIP (dual inline pins, fit breadboards) chips are Hobby Friendly!

Uno R3 socket holds the chip. You can replace it with one that has been bootloaded and you can use the Uno as a chip programmer to load a bootloader onto bare AVR's you can get cheap. The Uno R3 comes with an ATmega328P already bootloaded in the socket but instead of the 328, a 168 or 88 or 48 which are pin-compatible but each step down has half or the RAM, EEPROM, and flash as the last with some drop in price that matters if you make 10,000+ into products. The ATmega48 has only 256 bytes of RAM, only 4K flash yet that's enough for loads of projects!

The old Arduino site Hacking page was big on developing projects on Arduino Development Boards like the Uno R3 and then sticking the chip from the Uno into the end product.

This article and my hardware was all I needed to know how little an AVR needs to run.

Before the chip ID, etc, I had to hack a file to get my cheap 328P-PU chips past the bootload process I had. Only 328P-PA chips were recognized so Nick fixed that. That article is full-tour of ways to run a DIP AVR.
For dessert he shows the Mighty 1284 as an example. It has 40 pins with 4 full open 8 bit ports of IO pins. You can do parallel transfers with a 1284! It has 2 serial ports, it has 16K RAM, 4K EEPROM and 128K flash (for program and set data)... and only one CPU core. In 2019 Mouser charged $5.50 each where in 2015 they were $7.

one_chip_arduino_f_lcd

1 Like

With ATtiny there are many pages, some 10+ years old so what they use as programmers may be different than the most used now. Those articles tend to have useful facts and views.

MIT on programming ATtiny chips for projects.

yes, sure! I regularly burn a "new bootloader" on my very last "Ali" Nano from... the previous one and so on.
But in this case it's indeed an "ATTINY88 MH" SOC that's stuck... But, true, noted "NANO V3.0 ATmega328 compatible"...

Well, why not try a flash! Tomorrow I'll start with Nick's article and then give it a try. But first, thank you very much for all your advice!

1 Like

I bought a board from Budvar10 that has a surface mount 1284P running stable OC at 24MHz. Don't need it, just took a liking.

mission failed! However, "Arduino as ISP" has patiently tried to talk to this alien chip...

The promised compatibility probably refers to the only pinout...
I bought it because with the sole purpose of controlling a sensor, it seemed like a good opportunity to try it out.

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff
avrdude: stk500_recv(): programmer is not responding
..........

epilogue
... using the ATTinyCore library, I was finally able to flash the chipset.
Yeah but then, still no detection of the card.

Almost certainly, here's the reason (read in a forum)
"Binned one straight from China after spending maybe an hour messing with it. Got one from Sparkfun, had it up and running in 10 minutes"