Total drawback: US $17,31 shipping to Austria so nothing for me.
It has USB hardware a bit like the Maple mini, but on pin PE11
It seems to have a Mini usb connector on the schematic, but strangley it has 9 connections, which seems far more than normal, but most are GND
I’m sure it could be made to work, but $20 just for shipping is too rich for me on a single board.
It comes with a PL2303 USB/Serial adapter that doesn’t work under Windows 8, but is ok using Linux.
I connected a CP2102 adapter and tried to flash the generic PC13 bootloader using the ST demonstrator tool. It did not find the board until I set the baud rate to 115200. With an led on PC13, it flashed a few times on reboot but did not enumerate. I didn’t expect it to work as the USB port is closer to that of the maple mini. I’ll try to recompile the bootloader with the right pins and see if I can get one working.
Uploading programs using the serial port works ok. I checked serial port 1 communications, four user leds, three switches, and the RTC. All were detected correctly.
I modified config.h to add my board:#elif defined TARGET_FICUS
#define HAS_MAPLE_HARDWARE 1
#define LED_BANK GPIOB
#define LED_PIN 12
#define LED_ON_STATE 0
/* On the Ficus, use KEY1 as BUT on PC11 */
#define BUTTON_BANK GPIOC
#define BUTTON_PIN 11
#define BUTTON_PRESSED_STATE 0
/* USB Disc Pin Setup. USB DISC is PE11 */
#define USB_DISC_BANK GPIOE
#define USB_DISC 11
I modified config.h to add my board:#elif defined TARGET_FICUS
#define HAS_MAPLE_HARDWARE 1
#define LED_BANK GPIOB
#define LED_PIN 12
#define LED_ON_STATE 0
/* On the Ficus, use KEY1 as BUT on PC11 */
#define BUTTON_BANK GPIOC
#define BUTTON_PIN 11
#define BUTTON_PRESSED_STATE 0
/* USB Disc Pin Setup. USB DISC is PE11 */
#define USB_DISC_BANK GPIOE
#define USB_DISC 11
You can also define that it doest have a button, but off the top of my head, I can’t recall how you configure it that way, but I’m pretty sure if you look though the config file that one of the boards does not have a button
I commented out the line “HAS_MAPLE_HARDWARE” as well as the three defines for the button.
Recompiled and still no joy. Just a steadily blinking LED.
I then removed the USB_EN jumper that was connected to PE11 and ran a temporary jumper to ground pin 1 of J51 which permanently puts the 1.5K resistor in the circuit.
After that, it enumerated as a DFU device and I was able to upload a test sketch. /dev/ttyACM0 was there and printing diagnostic messages.
I can use it like this, but I would like to figure out how to use the transistor to switch the resistor in and out of the circuit.
With HAS_MAPLE_HARDWARE and the J51 jumper back in place, it doesn’t work. I can see PE11 briefly changing when I press the reset button. I’m suspecting a timing issue. I tried changing the delay in usb.c where it sets the disconnect bit low, but I didn’t find a value that worked.
The Maple Mini uses two transistors to switch the resistor in the circuit, but the logic seems to be the same. A logic 1 disables the resistor and a logic 0 enables it.
I can use it like this, but I would like to figure out how to use the transistor to switch the resistor in and out of the circuit.
With HAS_MAPLE_HARDWARE and the J51 jumper back in place, it doesn’t work. I can see PE11 briefly changing when I press the reset button. I’m suspecting a timing issue. I tried changing the delay in usb.c where it sets the disconnect bit low, but I didn’t find a value that worked.
The Maple Mini uses two transistors to switch the resistor in the circuit, but the logic seems to be the same. A logic 1 disables the resistor and a logic 0 enables it.
#ifdef HAS_MAPLE_HARDWARE
/* Setup USB DISC pin as output open drain */
SET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC),(GET_REG(GPIO_CR(USB_DISC_BANK,USB_DISC)) & crMask(USB_DISC)) | CR_OUTPUT_OD << CR_SHITF(LED_PIN));
![[Pending Enhancement] RTC values resetting](https://sparklogic.ru/wp-content/uploads/2019/11/nucleo-l476rg-zestaw-startowy-z-mikrokontrolerem-z-rodziny-stm32-stm32l476-90x90.jpg)