Speeduino is now on Github Sponsors (Rather than Patreon): https://github.com/sponsors/noisymime
Any general discussion around the firmware, what is does, how it does it etc.
By punisher454
So I followed Tjeerd's directions and got a black board running last night. Tunerstudio connects and I can see some activity on the TPS channel when I touch the pins, so it looks to be running. A big thanks to those who have made it possible to get to this point.
I plan to build a modular motherboard with plug in modules, mostly thru-hole components, and I etch my own boards here at home. I intend to make every I/O pin from the black board accessible, even if many never get used. So now it looks like I need to research the pin assignments of the black board, learn how to configure custom boards in tunerstudio and start designing out a board layout that fits my needs.
I watch this thread regularly and will post occasional updates, probably in a separate thread. I just wanted to let you know there is at least one more black board that is working.

By pazi88
I even have my engine running on STM32, in 6-cyl fully sequential mode:

It runs perfectly but everything isn't yet working 100% I have some problems getting all 16 analog inputs to work and also the SPI flash refuses to work on my HW. But slowly getting there.
By Ajee
Hello all

Some info about the STM32F407VE Black board:
1. Original onboard 3.3V voltage regulator (AMS1117-3.3) on that board is working in the unstable region of frequency compensation. Datasheet states minimum required output capacitor for the regulator 22uF solid tantalum, but there is 10uF ceramic paralleled with 0.1uF ceramic. This means capacitance is below spec. and also ESR is below spec. (Assuming similarity with NCP1117 (https://www.onsemi.com/pub/Collateral/NCP1117-D.PDF) (There is chart of acceptable capacitance and ESR values and combinations).
So I would not use the onboard regulator, because it is only a lottery when it will hit oscillation and cause some unexpected and hard to troubleshoot behaviour.

Good news is that there is workaround to that: Use off the board 3.3V supply (can be implemented using correctly compensated AMS1117-3.3), and feed that directly to the 3.3V rail!
So that is to keep in mind when designing something with this board, or when making Speeduino shield for this board.

Same actually applies for all the 3.3V boards out there. For the output capacitor for the regulator I would use regular good quality high temperature Aluminium electrolytic capacitor at least 100uF.

By pc1010
Hi! After trying NO2C Speediuno board I replaced Arduino with STM32 board from Aliexpress with additional Op-Amps like the Teensy adapter.
The car starts, maps read-write is working (patches from Tjeerd branch), analog/digital I/O is fine but there is one thing - I've got occasional desync which can be seen as a single misfire, the only difference in code is that I changed the pin mapping for 411CE board, I tried swapping the pins if there would be a conflict between them but nothing helped. Funny thing is that when I try to launch tooth logger the desync issue goes away mostly. Looks like some interrupt conflict but I couldn't pinpoint that :( Could that be related to using hardware USB as Serial? Log attached
(508.93 KiB) Downloaded 73 times
By Ajee
Hello! Tried compiling for the black_F407.
Had to remove "-DUSBD_VID=0x0483" from the build flags (platformio.ini) to get it to build. I guess it is again because of the updates to the STM32 libraries. Now I got it to build. Using PlatformIO.
By Ajee
Just want to make a little notes here about my experience with black_STM32F407VE board, how to get it working:
Basically Tjeerd-s instructions from earlier(page12) in this thread. But I used PlatformIO.

1.install:Visual studio code+PlatformIO
2.clone speeduino to local disk from: https://github.com/noisymime/speeduino/ and open with Visual studio code.
2.1 Install or update ST STM32 platvorm to ver 7.0.0 in PlatvormIO
2.2(at the moment remove "-DUSBD_VID=0x0483" from platvormio.ini to get it to build.)

3.remove R21 from the board (hardware)
4.Place jumper BT0-3V3 (hardware)
5.connect board to the computer with USB cable

6.in PlatformIO go "Project tasks ->env:black_F407VE->upload" (then it builds and uploads)

7.move jumper to the BT0-GND
8.reset board (with reset button)
9.Wait and observe if COM(eg. COM20) port appears on the computer
10.Launch TunerStudio - and connect.

By Tjeerd
I have not been on the forum for a while and I see a lot of posts! I did not know so many people are busy with this STM32 stuff! Great!

Also good news! A new internal flash EEPROM emulation version is available! Build the noisy master branch in default (no modifying any board.txt files) to use the internal flash. So any board with STM32F407 should work now. It uses part of the flash that officially does not exist (everything beyond 512kb) it worked great on any board I tried so far.

I try to summarize the status and manual for building STM32 in the OP. I will add links to boards based on the STM32 that are being tested/known to work with the STM32.

I have a 4 cylinder engine running on my STM32 board. Version 0.5 of this board is on it’s way and can hopefully be tested very soon.

@joey120373 hope your problems are solved. I did not hear any problems from other people yet. Please comment again if you still have problems.

@Ajee Thanks for pointing out the possible STM32F407VE Black board voltage regulator issues. I haven’t run into issues as of yet. I added a variable Zener/current sink (TL431) on my latest design that will be set to 3.35V to sink the current injection into the 3.3V powerline by the BAT54S diodes. Hopefully that also stabilizes the voltage regulator if anything goes wrong.

@Ajee the reason for the protected mosfets is the energy in the coil of the injectors (or any other inductive load). If you want your injectors to close quickly but not destroy your mosfet by over voltage atleast a voltage clamping mechanism must be implemented. A dirt cheap mosfet and a 42 Volt zener as clamp would also work nicely.

@Ajee I am working on a PWM Peak&Hold driver for low z injectors (like LPG injectors or very big flow injectors). The test board is coming soon and we will see if this works as expected/simulated.

@pc1010 I have not seen any problems with single misfire problems using it on the bench or with my engine. Do you know how often it happens? Does the sync loss counter go up one if it happens? I do notice the ext interrupt for the STM32 is extremely sensitive. Even wen I use a pull down resistor of 1k to ground touching the pins (with pull down) triggers the interrupt. So I have no solution for you on this.

@Ajee Will try and see if that works now without. With earlier versions USB would not work at all without it in PIO. If it works now, it can be removed.
By Dave3891
I am starting a design of a 8 injector / 8 ignition STM32F4 board and I just wanted to confirm that you can pretty much use any pin you want for the injector / ignition outputs? (Other than the ones with uart/spi/i2c etc)

I was looking at the code and it doesn't appear to use the timer channel output pins, but just sets any pin that is defined to high or low, is this correct?

Also what is the status of using the internal flash memory for simulated eeprom storage? I think it looks like it is working, but I wanted to make sure before I omit a external eeprom from the design.
By Ajee
Hello @Dave3891

You should be fine when you take the Tjeerd's board pinouts as a starting point. As for the output the timers connection is not critical.

But when you are doing new pinout, using the timer capture capable pins for the TRIGGER INPUT would be what to look for. We have been discussing the possibility of using hardware timer capture for trigger timing, but have not made any progress on it yet. If you search out form the datasheet what pins are timer capture capable you would be already ahead when this is implemented finally.

Internal flash simulated EEPROM storage is working fine (thanks to Tjeerd), so there is no need for external EEPROM.

User avatar
By Trinom
Hi guys,
I went step-by-step from the first post. After couple attempts I managed to switch drivers for Bootloader in DFU mode to the right one and connect to the board. I haven't touched the program in Arduino IDE and just wrote it to the IC. In the end, everything went smoothly.
I opened Tuner Studio and created new project. It found Speeduino board, everything was fine. However there is a catch in the very end - if I click on Settings button, select I/O summary, it throws on me several errors and once it shows the table, most of the inputs are INVALID.
I was able to define the fuel pump port, but that is all I can do (the pin numbering doesn't correspond to this board either, it commes from Arduino Mega). I also have "Black STM32...." board set in Engine Constants table.
This leads me to the last question - is there any list of general I/O pins for this board or do I need to define every single one manually (where?)?
Thank you.
  • 1
  • 12
  • 13
  • 14
  • 15
  • 16
  • 18
Second injector bank

there's a section on staged injection in the wik[…]

don't VR conditioners achieve the same? (genuine q[…]

Injector dead time tester

That makes poor accuracy. You should check this[…]

EMI while cranking

Well in a last ditch effort and using scrap parts […]

Still can't find what you're looking for?