DLO-138 OScope

willfly1
Sun Feb 26, 2017 5:38 pm
DSO-138 Oscope firmware

DLO-138 is alternate firmware for DSO-138 and adds second analog channel, two logic channels, more sample depth and serial port data output.

Code: https://github.com/ardyesp/DLO-138

pic3.png
pic3.png (153.54 KiB) Viewed 8814 times

ahull
Mon Feb 27, 2017 8:55 am
Nice :D

I see stm32duino.com gets a mention on the github main page, and Stevestrong’s fast TFT lib also gets a mention here…
https://github.com/ardyesp/DLO-138/tree … src/TFTLib


ThunderOwl
Mon Feb 27, 2017 10:20 am
This is sure interesting take on things! :) That being said, I wonder, does anyone moves things to F4xx already? Because russian-speaking osci-making community are doing that, they are taking the lead! :D
F407, for example. There are chinese boards with that (I have one). Yes, those are not almost-free as BluePills, but, I understand that hardware is much much more capable and non-restricting

stevestrong
Mon Feb 27, 2017 10:31 am
The question is what brings the F407 more than F103 can offer.
If the display update rate is “acceptable” for the user, I see not reason why to go for F407 (although I am aware of all advantages that it would bring).

Btw, @willfly1, congrats, simple and therefore cool look! I like very much the design!


ThunderOwl
Mon Feb 27, 2017 10:52 am
My “not-so-educated guess” would be usage of better internal ADCs, working in tandem (can be done on beefy versions of F303 too, four ADCs. Example: UCE-DSO-210 by uCore). Probably amount of RAM. Moving display away from SPI.

rexnanet
Mon Feb 27, 2017 11:43 am
The F4 versions have much faster clock speeds so FFT and display issues will be a lesser problem.
Also have a loooot more RAM = bigger sample buffer.
And It enables the use of an external faster ADC, maybe on the 50MSPS range…

I’m assembling some PCB adapter boards with a F429 and F746 to do some experiments…

It would be great to replace the manual gain switches (and gain pins) with menus and MCP6S92’s :)
Might have a go on this :)

P.S. BTW is there a video with this setup/code? :) how many FPS?


stevestrong
Mon Feb 27, 2017 1:14 pm
Dual 1Msps ADc readings is no problem for F103, the question is whether there is need for more. If yes, then it is F407 a clear choice.
Otherwise the TFT update, I can tell you, is very fast with the current lib (8 bit parallel, not SPI). Check it out here.
As I told, if there is no speciality requested (like FFT or higher sps), I am convinced that F103 is still a good choice.

But this does not mean that I will not test it with my F407 board :)


ThunderOwl
Mon Feb 27, 2017 1:34 pm
As far as I know, thing that “I don’t need higher bandwidth, cause I look at low frequency signals” is common misconception, for digital oscilloscopes. More samples per second means more real information taken about signal (and not, say, constructing signal from 4 points). So, if we want to see some bad spikes in not so high frequency main signal – we need as much points digitized as possible. More professionals than me – please correct if I said not completely correct.
P.S.: every DSO’s dream is to became like analog one :) (but with all that superb servicing features that digitals has)

rexnanet
Mon Feb 27, 2017 1:52 pm
stevestrong wrote:Dual 1Msps ADc readings is no problem for F103, the question is whether there is need for more. If yes, then it is F407 a clear choice.
Otherwise the TFT update, I can tell you, is very fast with the current lib (8 bit parallel, not SPI). Check it out here.
As I told, if there is no speciality requested (like FFT or higher sps), I am convinced that F103 is still a good choice.

But this does not mean that I will not test it with my F407 board :)


willfly1
Mon Feb 27, 2017 2:37 pm
rexnanet wrote:
P.S. BTW is there a video with this setup/code? :) how many FPS?

rexnanet
Mon Feb 27, 2017 2:45 pm
willfly1 wrote:rexnanet wrote:
P.S. BTW is there a video with this setup/code? :) how many FPS?

ThunderOwl
Mon Feb 27, 2017 5:07 pm
Question to willfly1: what about adopting Your software do DSO-150? I understand, it is much like DSO-138, but with digital switches (74HC4051)?
Here:
http://www.jyetech.com/Products/LcdScope/e150.php (I love that “band-witch” part in first line… :D )
http://www.jyetech.com/Products/LcdScop … _Shell.pdf

willfly1
Mon Feb 27, 2017 7:25 pm
ThunderOwl wrote:Question to willfly1: what about adopting Your software do DSO-150? I understand, it is much like DSO-138, but with digital switches (74HC4051)?
Here:
http://www.jyetech.com/Products/LcdScope/e150.php (I love that “band-witch” part in first line… :D )
http://www.jyetech.com/Products/LcdScop … _Shell.pdf

ThunderOwl
Tue Feb 28, 2017 9:23 am
willfly1, could you tell please, what exactly display did you use? Controller, and size? Thank You.

willfly1
Tue Feb 28, 2017 3:09 pm
ThunderOwl wrote:willfly1, could you tell please, what exactly display did you use? Controller, and size? Thank You.

mausi_mick
Tue Feb 28, 2017 6:40 pm
the DLO-138 OScope with SPI Display (ILI9341 2.8″)
at Youtube:

https://youtu.be/qCSDx5EP6Vw


mausi_mick
Wed Mar 01, 2017 2:26 am
Hi willfly1,

I have tested your program a little bit with the SPI display:

good design, nearly all functions you need and also quick on the SPI display! Super !

Only the rotary encoder is – I think – better integrated in the 10$ O-Scope:

You can select there the “Function” ( timeBase, Offset,…) with the encoder, then switch with button of the encoder to “Parameters” and change the parameters with the same encoder (z.B 20,50,100µs for e.g. timeBase).

It’s quicker with the encoder and you can go to the other functions on the left or right site by turning cw or ccw, you can go in Your SW with the button only ccw.
For instance, if you have select “AUTO”, you have to switch about 10 time to come to the timebase-field.


mausi_mick
Wed Mar 01, 2017 7:18 am
I have modified the code a little bit and integrate Touch-functionality (URTOUCH-Lib) and test it with frequency input for DDS AD9851:

the first picture shows the Touch Panel for set frequency, the second the selected frequency from AD9851:

DLO138-Set-Frequency-AD9851.JPG
DLO138-Set-Frequency-AD9851.JPG (39.58 KiB) Viewed 1381 times

rexnanet
Wed Mar 01, 2017 10:35 am
mausi_mick wrote:I have modified the code a little bit and integrate Touch-functionality (URTOUCH-Lib) and test it with frequency input for DDS AD9851:

the first picture shows the Touch Panel for set frequency, the second the selected frequency from AD9851:

DLO138-Set-Frequency-AD9851.JPG

DLO138-Show-Frequency_AD9851.JPG

I have aligned the Pin-Mapping for maple mini for my 10$ O-Scope and the DLO-138.
So I can test both variants.
The input area on the display for the frequency is only provisionally for the test.


ThunderOwl
Wed Mar 01, 2017 10:39 am
Question please, is ADC sampling (its coding, theoretical numbers achieved) different in “STM-O-Scope” and this new “DLO-138-Scope”?

rexnanet
Wed Mar 01, 2017 10:48 am
From what I saw on DSO-138 firmware, the sampling code is hidden in a pre-compiled lib so I don’t know how they sample the signals.
But on DLO-138 I still haven’t checked that, is it the same block as on DSO-138?

ThunderOwl
Wed Mar 01, 2017 10:53 am
I am asking, because, from what I read around, DSO-138 is barely usable up to 100kHz (I don’t have DSO-138).
Would be very informative to post some screenshots of square wave at different frequencies of new version(s).

rexnanet
Wed Mar 01, 2017 10:57 am
But the sampling rate should be 1MSPS, I think.

The limitation as I recall is on the analog frontend. I don’t thing the input approach is the best for this…


mausi_mick
Wed Mar 01, 2017 11:02 am
excuse me,

is that ok (in dlo-138 : display) line 174:

// ————————
void clearNDrawSignals() {
// ————————
static boolean wavesOld[4] = {false,}; <<< ???????
static int16_t yCursorsOld[4];


mausi_mick
Wed Mar 01, 2017 11:07 am
and here my code (DLO-138, ILI9341 SPI, AD9851 with Touch)

DLO-138-02.7z
(14.75 KiB) Downloaded 200 times

rexnanet
Wed Mar 01, 2017 11:46 am
mausi_mick wrote:excuse me,

is that ok (in dlo-138 : display) line 174:

// ————————
void clearNDrawSignals() {
// ————————
static boolean wavesOld[4] = {false,}; <<< ???????
static int16_t yCursorsOld[4];


ThunderOwl
Wed Mar 01, 2017 1:36 pm
Thanks a lot, mausi_mick !

willfly1
Wed Mar 01, 2017 4:16 pm
mausi_mick wrote:excuse me,

is that ok (in dlo-138 : display) line 174:

// ————————
void clearNDrawSignals() {
// ————————
static boolean wavesOld[4] = {false,}; <<< ???????
static int16_t yCursorsOld[4];


willfly1
Wed Mar 01, 2017 4:37 pm
rexnanet wrote:From what I saw on DSO-138 firmware, the sampling code is hidden in a pre-compiled lib so I don’t know how they sample the signals.
But on DLO-138 I still haven’t checked that, is it the same block as on DSO-138?

ThunderOwl
Wed Mar 01, 2017 5:55 pm
willfly1 wrote:
On another question about bandwidth, IMO these low sampling ADC’s are good for viewing audio level signals, which is what most hobbyist’s need. Anything above hundred Khz is probably in digital – logic analyzer domain.

mausi_mick
Thu Mar 02, 2017 6:04 pm
I have changed the Code for the SPI Display:
Now You can change betweeen functions/labels and the steps/parameters with the rotary encoder. The button of the encoder is only for changing between functions and steps.

But I haveto reduce the storage from 2048 to 1024 steps (because of AD9581/Touch?), I think the trigger is not perfect, perhaps I have to change the levels.
And by long timeBases ( >= 10mS) is a problem with the encoder / switches. On “10$ O-scope” I can do the parameter-changes inside the interrupt-routine inclusive update the small areas on the display.

on Youtube:

https://www.youtube.com/watch?v=aNsIR4r6Sw8


BennehBoy
Thu Mar 02, 2017 7:13 pm
I quite fancy building one of these, I can think of a lot of uses I’d get out of it.

mausi_mick
Fri Mar 03, 2017 7:19 am
also with the label/function-selection is not very intuitive, therefore I tested touchscreen for the fields timebase, trigger, waves, wimndows etc.
Only with the cursors on the left and right side I have problems.

I Changed the on the top of the display the wave-field (A1,A2,D1,D2) more to the right and moved the window-field for the storage of the waves to the left.
Also I split the wave field in four separate fields. Now I can activate / deactivate each channel separate. And I changed the colour of the trigger-edge to orange for falling ( It was difficult to differentiate between them at least for my eyes …)

Now I need the button of the encoder only to start/activate the touch-function.

DLO138-SPI_Change_Labels_Touch.JPG
DLO138-SPI_Change_Labels_Touch.JPG (56.58 KiB) Viewed 897 times

mausi_mick
Fri Mar 03, 2017 8:47 am
now I have solved :D the problem with the cursor activating by touch:

on the left are the hidden touch-sensorfields for cursor 1…4 for the input signals,

x < 70
y > 60 and y <100: L_vPos1
y > 100 and < 130: L_vPos2
y> 130 and < 160: L_vPos3
y> 160 and < 190: L_vPos4

on the right is the field for the triggerlevel.

X> 280 and < 319
Y>100 and < 200: L_triggerLevel

and the source:

DLO-138-04.7z
(15.49 KiB) Downloaded 132 times

rexnanet
Fri Mar 03, 2017 9:12 am
Great work! :)

As for the trigger: Do you have the external circuit assembled? Or did you change the trigger method?
Because the original schematic has an external op-amp that receives a PWM to set the value and compares it with the input signal and sends the output to a pin that is used to start?/set? the trigger.

There are a bit of artifacts indeed… but might get solved :)

I might get a chance to try it out this weekend cause it seems that it will be rainy all weekend long…


mausi_mick
Fri Mar 03, 2017 9:40 am
now on youtube:

https://youtu.be/M8DlqzZ3ROI


mausi_mick
Fri Mar 03, 2017 11:12 am
Thanks Rexnanet,

yes there is VGEN (on PA10 in my SW)for maple-mini, but it’s open.
and TRIGGER_IN ( PA11 maple_mini).

I have to study the HW / schematic !!


rexnanet
Fri Mar 03, 2017 2:28 pm
You’re welcome :)

PB8 is TL_PWM, generates the voltage level for the comparator.
PA8 it TRIGGER, receives the logic signal from the comparator.

The chip is labeled U2D. And the other input of the comparator is ADCIN PA0.

Hope it makes it easier for you :)


mausi_mick
Fri Mar 03, 2017 4:33 pm
there are some pins connected to hardware:

DSO MAPLE
AN_CH1 PA0 PB0
AN_CH2 PA4 PA0 ( problem with spi1 CS=PA4 ???)
TRIGGER_IN PA8 PA11
TRIGGER_LEVEL PA8 PB8
VSENSSEL1 PA2 PA2
VSENSSEL2 PA1 PA1
CPLSEL PA3 PA3
VGEN PB9 PA10
TL_PWM PB8 ????

VGEN I can’t see in the schematic
I haven’t found TL_PWM in the original-software DLO-138 (global.h)


willfly1
Fri Mar 03, 2017 6:03 pm
mausi_mick wrote:there are some pins connected to hardware:

DSO MAPLE
AN_CH1 PA0 PB0
AN_CH2 PA4 PA0 ( problem with spi1 CS=PA4 ???)
TRIGGER_IN PA8 PA11
TRIGGER_LEVEL PA8 PB8
VSENSSEL1 PA2 PA2
VSENSSEL2 PA1 PA1
CPLSEL PA3 PA3
VGEN PB9 PA10
TL_PWM PB8 ????

VGEN I can’t see in the schematic
I haven’t found TL_PWM in the original-software DLO-138 (global.h)


willfly1
Fri Mar 03, 2017 6:06 pm
mausi_mick wrote:now on youtube:
https://youtu.be/M8DlqzZ3ROI

mausi_mick
Fri Mar 03, 2017 6:38 pm
I think I have it from here:

http://www.ebay.de/itm/New-240×320-2-8- … Sw71BXPsdW


MagSem
Sat Mar 04, 2017 7:34 am
Hi, Willfly1.

Good work, thx.

Could you share the MINIMUM code for continuous Serial Output only, without displays, encoders, switchers, EEPROM and so on.
Only RAW array – Time, ADC1, ADC2 for PC-based analyzing.

It`s hard for me cleaning many unused functions and variables from the code.

Regards,
MagSem


mausi_mick
Mon Mar 06, 2017 12:02 pm
I have modified the Labels on the screen for touch-input, because the distance between the areas are to small. Also some areas are to small for touch.
So I moved the “window” for the storage to the right and separate the fields for the channels A1, A2, D1 and D2.
If a channel is active, he has his colour, otherwise he is greyed. On the right of the channels I have moved the frequency input from DDS AD9851.
Also the fields on the bottom for timebase, triggerType and triggerEdge are bigger and more separated.

So is the handling more comfortable.

By the way I have changed some colors , e.g. for the storage blue (like a watertank) :lol: , and for analog-Channel 1 to purple (it looks more like an old scope :lol: ).

DLO138-SPI_modified_Touch_Labels.JPG
DLO138-SPI_modified_Touch_Labels.JPG (52.52 KiB) Viewed 911 times

rexnanet
Mon Mar 06, 2017 1:44 pm
Nice work!

But I think that maybe you could move the channel labels to the side instead of the “slider”. Sliding up and down is not that intuitive.
But it’s cleaner look.

I didn’t have the chance to try it out this weekend…
I’ll try to change the pinout meanwhile to try to speed up the testing part…


mausi_mick
Mon Mar 06, 2017 3:58 pm
rexnanet,

but I think the sliders must be on the side for moving up and down with the encoder, but activate by touch.

As next I have to make the preamp’s for testing the offset-config.

My last code for touch is here:

DLO-138-05.7z
(16.47 KiB) Downloaded 101 times

mausi_mick
Mon Mar 06, 2017 4:04 pm
in global.h you can see the pin assignment for maple mini, STM32F103C8… and the used periphery.

mausi_mick
Mon Mar 06, 2017 5:05 pm
DLO-138-05.7z
(16.47 KiB) Downloaded 114 times

rexnanet
Mon Mar 06, 2017 5:09 pm
mausi_mick wrote:in global.h you can see the pin assignment for maple mini, STM32F103C8… and the used periphery.

mausi_mick
Mon Mar 06, 2017 5:32 pm
I want to try it at first with discrete Dual-Opamps, and perhaps with an ICL7660 or MAX??? to generate the -5V, so I can spare VGEN-Pin .
But perhaps also with the MCP6S91/ 92. I have to test it separate with the SPI, if I can change the clock-divider temporarily for the OP (max 10Mhz) and the SPI-display(max 20 MHz?).

rexnanet
Mon Mar 06, 2017 5:52 pm
Ok.
How many pins do you have free? MCP6S only needs CLK,MOSI,CS(1 for each MCP…) 4 total for 2 MCP’s.
But you can use “shiftOut” and save SPI troubles :)

Otherwise, I think you can do this:
_SPI->beginTransaction(SPISettings(9000000, MSBFIRST, SPI_MODE0)); //before MCP access 9Mhz to be safe

_SPI->beginTransaction(SPISettings(36000000, MSBFIRST, SPI_MODE0)); //after MCP access 36Mhz for the display. (if _SPI = SPI1)


mausi_mick
Mon Mar 06, 2017 6:04 pm
a new video at Youtube:

https://youtu.be/VkH50oe3FvA


mausi_mick
Tue Mar 07, 2017 2:36 am
rexnanet,

thanks for your example for changing frequency.
I hope that I need only one pin for each MCP, only for CS(n),
I take the same SCK (PA5), MOSI(PA7) Pins like the SPI-TFT (spi1).

There is a nice project:

http://www.rotwang.co.uk/projects/energy_monitor.html

with two spi-devices (ADC-MCP3002 and PGA MCP6S91) with Arduino-Code.

But I think at first I try this:

https://jasmedia2011.wordpress.com/2011 … illoscope/


mausi_mick
Tue Mar 07, 2017 8:11 am
test of the PGA MCP6S91 on SPI-TFT successful , although the Input( ADC)-Voltage is not exactly multiplied.
Perhaps was the voltage-divider on the input (51k / 1k) not low resistance enough or the Voltage Vcc not stable or …?

But with Vin (of the Maple Mini on USB) its nearly exact.

https://youtu.be/ttBVXR3ykcE


mausi_mick
Wed Mar 08, 2017 3:35 am
I had problems with the MCP6S91 lib, because it was not really HW-SPI.

Therefore I modified it to MCP6S92.h / cpp
I made on the left corner of the display for testing a small touch-area for activating the PGA MCP6S91.

A video from the first test is here ( only for switching between 16 and 32, because I have problems with the offset):

https://youtu.be/fHq3KtxJ0Yk

the modified lib is here:

MCP6S92.h
(608 Bytes) Downloaded 190 times

rexnanet
Thu Mar 09, 2017 9:37 am
mausi_mick wrote:I had problems with the MCP6S91 lib, because it was not really HW-SPI.

Therefore I modified it to MCP6S92.h / cpp
I made on the left corner of the display for testing a small touch-area for activating the PGA MCP6S91.

A video from the first test is here ( only for switching between 16 and 32, because I have problems with the offset):

https://youtu.be/fHq3KtxJ0Yk

the modified lib is here:

MCP6S92.h

MCP6S92.cpp


mausi_mick
Fri Mar 10, 2017 5:41 am
Hi rexnanet,

I have now no problems with the MCP6S91, the gain switching with SPI is ok. I have only to make something with the trigger and offset (like DSO138).

But I said in the Blog touch is more intuitive for changing labels, but to activate TOUCH with a real button is a little bit antique.

Therefore I tried it with SPI , but no success.

Back to URTOUCH I activated the touch with an ISR on TOUCH_IRQ-Pin and don’t need the loop:

while (touch.available() …

Now I can use the touch-function without pressing the button (the button on the encoder is now free ) :lol: :D

That’s quick and real intuitive ! :D


mausi_mick
Fri Mar 10, 2017 6:08 am
ThunderOwl,

I think with the DSO150 you can make only a 1 channel o-scope, because you need 4 pins for gain selection.

I think it’s better with the MCP6S91/92 (1 Pin) or a combination from DSO150 ( only inputstage with HC4053 (1Pin))
and MCP6S91/92.

The input of the DSO150 is a little bit better and easier to realize as the of the DSO138 and you can build in an overvoltage-protection with 2 diodes or two antiparallel white/blue leds (not tested, but very small leakage currents, but perhaps problems with capacity).


mausi_mick
Fri Mar 10, 2017 9:03 am
the video with isr activated touch on Youtube:

https://youtu.be/Kkf7qgRC96E

it’s not ever easy to hit the small touch-fields with thick finger’s ! :lol:


rexnanet
Fri Mar 10, 2017 10:05 am
Good work mausi_mick!!!

Yep, the small areas are a bit difficult do get using fingers…that is why I started to use the encoder. But it’s not perfect too…
Maybe a 15″ touchscreen could help us :lol:

Touch IRQ is a great feature as it doesn’t affect the refresh rate :)

The HC input stage approach can lead to a better bandwidth by using better op-amps. But that could be used for the F303 option :)


mausi_mick
Sat Aug 26, 2017 1:59 am
I test now a new version with “BluePill” and instead of the touch-input a second rotary encoder.

I have mounted a parallel resistance from about 1.8 kOhm between 3.3V and PA12, so I can program the Pill via USB with Arduino IDE 1.8.4. The memory is set to 128k (in the STMFlashloader). I have also shorted the 100 kOhm resitance on Boot1, so I can use PB2 (perhaps for a 8-bit display).
I take the encoders from madias (multi-encoder with timer1).
I use this pins:
A0 Analog Input 1
B0 Analog Input 2
B10 TFT_DC
A7 TFT_MOSI
(A6 TFT_MISO)
A5 TFT_SCK
A4 TFT_CS
3.3V TFT_RST
B3 Encoder_0
B4 Encoder_0
B12 Encoder_1
B13 Encoder_1
B6 TEST_WAVE

The program runs stable, the encoders (EC11, KY-040) have no problems with bouncing.

Now I have to build the input amplifiers (with MC6S22 ?)

Good information (inl. schematic) for preamps is on this page :

damusician.com/dpscope/overview.html

mausi_mick


mausi_mick
Sat Aug 26, 2017 2:00 am
Excuse me, the correct URL is:

http://www.pdamusician.com/dpscope/overview.html


rexnanet
Mon Aug 28, 2017 3:45 pm
Nice! I’ve tried to setup an input amplifier using 2x MCP6S92 to get up to 1024 gain settings but I got some DC offset on the first stage that got amplified on the second stage and showed up on the output. I was inputting a 0 to 3.3V square wave then divided by 10 (or more… don’t remember…) with 2 resistors, that might create a small offset…maybe…
I haven’t debugged it yet… I don’t have an oscilloscope to check that out so it might be working ok but that’s what I saw on the screen.

I have also looked to the input stage of the nano DSO203. Seems good and might be upgraded with better opamps to get more BW:
https://goo.gl/images/58mzQy

P.S. Does anyone have a version of the DSO150 code? That one might be interesting also… I’m tempted to buy one of these…
P.S.2 Can you share the code?


mausi_mick
Wed Aug 30, 2017 2:32 am
I want to make the Offset with a DAC , I tested it with MCP4812/22 (SPI-Interface), but had no success.
I think the difficulties come with the TFT-Lib. Therefore I tried it with an I2C DAC (MCP4725) with success, but In need
Pins PB6 PB7, so I had to eliminate the TEST_WAVE on PB& :cry: :cry: :cry:

I think I take the MCP6S22 for amplifying (similar DP-Scope V1.3)

I modified the menu for service with the second encoder, on bottom left I start with the timeBase, than Vgain1, Vgain2 (from MCPS622), Offset1, Offset2 (from 2 MCP4725, in work, not finished), trigType and trigEdge …

The handling with the encoders from madias is normaly quick exapt for sampling (with timeBase >2ms).


mausi_mick
Sun Sep 03, 2017 11:08 am
Rexanet,

I think , the preamp in DSO203 is very complex , is much work.
Perhaps It’s easier to take a LTC6912-1 (2 channel ,gain: 0,1,2,5,10,20,100) or an LTC6912-2 with gain 01,2,4,8,16,32,64),
and you need only a input stage(for dividing and protection with clamp-diodes) and a voltage spltter to 2×3.3V or 2x5V.
The LTC has also 3 wire SPI.


rexnanet
Mon Sep 04, 2017 8:16 am
[mausi_mick – Sun Sep 03, 2017 11:08 am] –
Rexanet,

I think , the preamp in DSO203 is very complex , is much work.
Perhaps It’s easier to take a LTC6912-1 (2 channel ,gain: 0,1,2,5,10,20,100) or an LTC6912-2 with gain 01,2,4,8,16,32,64),
and you need only a input stage(for dividing and protection with clamp-diodes) and a voltage spltter to 2×3.3V or 2x5V.
The LTC has also 3 wire SPI.

Yes, I know it’s a bit more complex but if more bandwidth is needed it’s the way to go :)
That LTC6912 seems a good choice, the main problem is the price/availability. The MCP6S92 I can ask for some samples to make some experiments, the LTC I don’t know if they send samples… and it’s $4+ on digikey…

Do you have a video with the 2 knobs setup?


mausi_mick
Fri Sep 08, 2017 1:38 am
Rexanet,

now I have big problems – I think with the Adafruit_ILI9341_STM – lib. The SPI graphic functioned, but I can’t activate other SPI
devices like MCP6S91/92 or MCP4822 (DAC). I reduced the speed to 9MHz and back to 36MHz, but with no success.
I tested it with “blue-Pill” and Maple-Mini – the same. –

I tested MCP6S91/92 on UNO with success.
(I think I prefer the S91 , because it’s’ a XOR function,they have only one output .
On the Ref-Input of the S91 I can change the offset …)

It’s for me more difficult to get the CP1017N opto-switches in the schematic from the DSO203 as the preamp LTC6912,
I can get it for 4.37 € by www.voelkner.de , I think it’s a good price for 2 channels.
But the small layout could be a problem for me.

But I don’t know if I have their the same problems with the SPI, ???


zmemw16
Fri Sep 08, 2017 3:04 am
first thought can you get the 91 alone working on stm32 spi1 ?
next if that involved playing with the clock, mode & polarity settings or not, anyway move it to spi2
check it still works
restore the display to spi1
stephen

mausi_mick
Fri Sep 08, 2017 8:28 am
It has worked in April, but now MCP6S91 worked alone, but not with the TFT-lib.
I have the same problem with the MCP4812/22 (SPI-DAC) and changed therefore to a I2C version (MCP4725?).
I tried different frequencies ( 9MHz, 10 MHz, 20MHz and 36MHz) for the MCPs and 36 MHz for the ILI9341.

But i don’t know what I have changed in the programs meanwhile. Perhaps its a problem with the Arduino IDE (going from 1.6.3 to 1.84) or the newest STM32 – lib ?


rexnanet
Fri Sep 08, 2017 8:45 am
[mausi_mick – Fri Sep 08, 2017 1:38 am] –
Rexanet,

now I have big problems – I think with the Adafruit_ILI9341_STM – lib. The SPI graphic functioned, but I can’t activate other SPI
devices like MCP6S91/92 or MCP4822 (DAC). I reduced the speed to 9MHz and back to 36MHz, but with no success.
I tested it with “blue-Pill” and Maple-Mini – the same. –

I tested MCP6S91/92 on UNO with success.
(I think I prefer the S91 , because it’s’ a XOR function,they have only one output .
On the Ref-Input of the S91 I can change the offset …)

It’s for me more difficult to get the CP1017N opto-switches in the schematic from the DSO203 as the preamp LTC6912,
I can get it for 4.37 € by www.voelkner.de , I think it’s a good price for 2 channels.
But the small layout could be a problem for me.

But I don’t know if I have their the same problems with the SPI, ???

Hi mausi_mick,

CP1017N I´m going to get from aliexpress, 3.21€ for 10 pieces : https://www.aliexpress.com/item/Free-Sh … 38858.html
It’s not fast but it seems to be a good price…

That point on offset with the S91 is a good point.
I was thinking on S92 to allow to have 2 channels @ 1MSPS or 1 channel @ 2MSPS.

I think that your problems might be related to an Adafruit_ILI9341_STM lib update (without any certainty). I have faced some problems on other platforms (ESP32 and ESP8266) when upgrading this lib…
I have one Arduino IDE for each platform to avoid upgrading problems…
It might be related to CS activation and de-activation.
If you send me the code I can have a look.


ThunderOwl
Fri Sep 08, 2017 9:11 am
hi, Mausi_Mick !
Maybe try this library:
https://github.com/Bodmer/TFT_ILI9341
I recently experimented with some CPU load indication projects, it was used there. Existing Adafruit library should probably be deleted/moved then.

rexnanet
Fri Sep 08, 2017 9:47 am
As a final resource, I can provide the libs I use that are from the early tests and “worked”.

mausi_mick
Fri Sep 08, 2017 11:21 am
here the last code:

DLO-138-MaMi_01.7z
(21.54 KiB) Downloaded 139 times

rexnanet
Fri Sep 08, 2017 5:42 pm
Ok, I’ll take a look during this weekend. Today is a “no go” :)

mausi_mick
Sat Sep 09, 2017 4:40 am
I think , you have time, I make holidays … :lol:

tales von milet
Sun Sep 24, 2017 10:25 am
moin,

ich habe beim compilieren des sketch immer die fehler meldung: “Warning: register range not in ascending order”

I have always compiled the sketch the error: “Warning: register range not in ascending order”

W10, Arduino 1.8.4


stevestrong
Sun Sep 24, 2017 4:09 pm
Please post here the complete error message from the Arduino IDE window (which file, which line,…).
Which core are u using?

[german]:
Bitte die komplette Fehlermeldung hier posten, einschliesslich Dateiname, Zeilennummer, usw.
Welcher Core wird verwendet?

tales von milet
Sun Sep 24, 2017 4:42 pm
Code: https://github.com/ardyesp/DLO-138

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s: Assembler messages:

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:495: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:495: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:495: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:495: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:497: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:497: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:497: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:497: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:546: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:546: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:546: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:548: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:548: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:548: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:595: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:595: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:595: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:595: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:595: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:597: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:597: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:597: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:597: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccBTRPkR.s:597: Warning: register range not in ascending order

Archiving built core (caching) in:
C:\Users\Meiner\AppData\Local\Temp\arduino_cache_157334\core\core_Arduin
o_STM32-master_STM32F1_genericSTM32F103C_device_variant_STM32F103C8,uplo
ad_method_serialMethod,cpu_speed_speed_72mhz,opt_osstd_788985e64bb343182
e2e5afb824970d0.a
Der Sketch verwendet 37900 Bytes (57%) des Programmspeicherplatzes. Das Maximum sind 65536 Bytes.
Globale Variablen verwenden 17408 Bytes (85%) des dynamischen Speichers, 3072 Bytes für lokale Variablen verbleiben.
Das Maximum sind 20480 Bytes.
Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme auftreten.


stevestrong
Mon Sep 25, 2017 8:48 am
Please turn on verbose mode in Arduino IDE:
File->Preferences->Show verbose output during:. Tick boxes for compilation and upload
and post here the complete message window content.

tales von milet
Mon Sep 25, 2017 9:54 am
moin,

the administered binaries run.
the latest stock firmware is also running.

C:\Arduino1.8.3\arduino-builder -dump-prefs -logger=machine -hardware C:\Arduino1.8.3\hardware -hardware C:\Users\Meiner\AppData\Local\Arduino15\packages -tools C:\Arduino1.8.3\tools-builder -tools C:\Arduino1.8.3\hardware\tools\avr -tools C:\Users\Meiner\AppData\Local\Arduino15\packages -built-in-libraries C:\Arduino1.8.3\libraries -libraries C:\Users\Meiner\Documents\Arduino\libraries -fqbn=Arduino_STM32-master:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=serialMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10804 -build-path C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073 -warnings=none -build-cache C:\Users\Meiner\AppData\Local\Temp\arduino_cache_166353 -prefs=build.warn_data_percentage=75 -verbose C:\3D_Drucker\DSO138\DLO-138_neu\DLO-138\DLO-138.ino
C:\Arduino1.8.3\arduino-builder -compile -logger=machine -hardware C:\Arduino1.8.3\hardware -hardware C:\Users\Meiner\AppData\Local\Arduino15\packages -tools C:\Arduino1.8.3\tools-builder -tools C:\Arduino1.8.3\hardware\tools\avr -tools C:\Users\Meiner\AppData\Local\Arduino15\packages -built-in-libraries C:\Arduino1.8.3\libraries -libraries C:\Users\Meiner\Documents\Arduino\libraries -fqbn=Arduino_STM32-master:STM32F1:genericSTM32F103C:device_variant=STM32F103C8,upload_method=serialMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10804 -build-path C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073 -warnings=none -build-cache C:\Users\Meiner\AppData\Local\Temp\arduino_cache_166353 -prefs=build.warn_data_percentage=75 -verbose C:\3D_Drucker\DSO138\DLO-138_neu\DLO-138\DLO-138.ino
Using board 'genericSTM32F103C' from platform in folder: C:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1
Using core 'maple' from platform in folder: C:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1
Detecting libraries used...
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "nul"
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "nul"
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "-IC:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "nul"
Using cached library dependencies for file: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\Adafruit_TFTLCD_8bit_STM32.cpp
Using cached library dependencies for file: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8347g.cpp
Using cached library dependencies for file: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8357x.cpp
Using cached library dependencies for file: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili932x.cpp
Using cached library dependencies for file: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili9341.cpp
Using cached library dependencies for file: C:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM\EEPROM.cpp
Using cached library dependencies for file: C:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM\flash_stm32.c
Using cached library dependencies for file: C:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp
Using cached library dependencies for file: C:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master\glcdfont.c
Generating function prototypes...
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "-IC:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Arduino1.8.3\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\preproc\ctags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "-IC:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp.o"
C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s: Assembler messages:

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:479: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:479: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:479: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:479: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:481: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:481: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:481: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:481: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:530: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:530: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:530: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:532: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:532: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:532: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:579: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:579: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:579: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:579: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:579: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:581: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:581: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:581: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:581: Warning: register range not in ascending order

C:\Users\Meiner\AppData\Local\Temp\ccddTvDp.s:581: Warning: register range not in ascending order

Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\Adafruit_TFTLCD_8bit_STM32.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8347g.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8357x.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili932x.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili9341.cpp.o
Compiling libraries...
Compiling library "EEPROM"
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\EEPROM\flash_stm32.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\EEPROM\EEPROM.cpp.o
Compiling library "Adafruit-GFX-Library-master"
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\Adafruit-GFX-Library-master\glcdfont.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp.o
Compiling core...
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\start.S.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\start_c.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\syscalls.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\board.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\boards.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\boards_setup.cpp.o
Using precompiled core
Linking everything together...
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -Os -Wl,--gc-sections -mcpu=cortex-m3 "-TC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c/ld/jtag_c8.ld" "-Wl,-Map,C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073/DLO-138.ino.map" "-LC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c/ld" -o "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073/DLO-138.ino.elf" "-LC:\Users\Meiner\AppData\Local\Temp\arduino_build_317073" -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\Adafruit_TFTLCD_8bit_STM32.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8347g.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\hx8357x.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili932x.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\src\TFTLib\ili9341.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\EEPROM\flash_stm32.c.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\EEPROM\EEPROM.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\Adafruit-GFX-Library-master\glcdfont.c.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\start.S.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\start_c.c.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\syscalls.c.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\board.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\boards.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\core\wirish\boards_setup.cpp.o" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073/..\arduino_cache_166353\core\core_Arduino_STM32-master_STM32F1_genericSTM32F103C_device_variant_STM32F103C8,upload_method_serialMethod,cpu_speed_speed_72mhz,opt_osstd_788985e64bb343182e2e5afb824970d0.a" -Wl,--end-group
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-objcopy" -O binary "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073/DLO-138.ino.elf" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073/DLO-138.ino.bin"
Bibliothek EEPROM im Ordner: C:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM (legacy) wird verwendet
Bibliothek Adafruit-GFX-Library-master in Version 1.2.2 im Ordner: C:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master wird verwendet
Der Sketch verwendet 37680 Bytes (57%) des Programmspeicherplatzes. Das Maximum sind 65536 Bytes.
Globale Variablen verwenden 17360 Bytes (84%) des dynamischen Speichers, 3120 Bytes für lokale Variablen verbleiben. Das Maximum sind 20480 Bytes.
Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme auftreten.


stevestrong
Mon Sep 25, 2017 11:33 am
Can you please post here the file “ccBTRPkR.s” which generates the warning.

I see that you are using a newer compiler version, the default supported version would be arm-none-eabi-gcc\4.8.3-2014q1.


ChrisMicro
Mon Sep 25, 2017 11:48 am
I think it is not possible because the Arduino IDE is generating this file from the assembler written in the c-file and it is deleting this file immediately right after throwing the error.

tales von milet
Mon Sep 25, 2017 12:09 pm
Sorry, this file will be deleted immediately.
I have tested different versions of the gcc. all report the same error.
4.8 2013q4
4.8.3-2014q1
4.9_2015q3
5 2016q3
6 2017-q2-update

stevestrong
Mon Sep 25, 2017 2:06 pm
You could
-copy the line which compiles the sketch file:
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "-IC:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp.o"

tales von milet
Mon Sep 25, 2017 3:43 pm
[img][https://www.dropbox.com/s/e2kjepcc65p8f … 6.png?dl=0]hmmm … the entered line is too long

Or run Arduino with the option: –preserve-temp-files —-> CMD Arduino.exe –preserve-temp-files Ok?


tales von milet
Wed Sep 27, 2017 9:31 pm
[stevestrong – Mon Sep 25, 2017 2:06 pm] –
You could
-copy the line which compiles the sketch file:
"C:\Users\Meiner\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\5 2016q3/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_generic_stm32f103c -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOB -DERROR_LED_PIN=1 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10804 -DARDUINO_GENERIC_STM32F103C -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ -DMCU_STM32F103C8 -mthumb -march=armv7-m -D__STM32F1__ "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/stm32f1/include" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/stm32f1" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\system/libmaple/usb/usb_lib" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\cores\maple" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\variants\generic_stm32f103c" "-IC:\Arduino1.8.3\hardware\Arduino_STM32-master\STM32F1\libraries\EEPROM" "-IC:\Users\Meiner\Documents\Arduino\libraries\Adafruit-GFX-Library-master" "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp" -o "C:\Users\Meiner\AppData\Local\Temp\arduino_build_317073\sketch\DLO-138.ino.cpp.o"

stevestrong
Thu Sep 28, 2017 6:11 am
Please have a look here: https://github.com/arduino/Arduino/blob … npage.adoc

tales von milet
Thu Sep 28, 2017 3:35 pm
where should i enter that?
I tried it with a windows linkage but then starts arduino no longer.

stevestrong
Thu Sep 28, 2017 4:42 pm
According to the site I linked, the mentioned option is a command line option
--preserve-temp-files

Keep temporary files (preprocessed sketch, object files…​) after termination. If omitted, temporary files are deleted.

This option is only valid together with --verify or --upload.


tales von milet
Thu Sep 28, 2017 6:08 pm
I have changed the preferences.txt file but the ***. s files are still deleted.

stevestrong
Thu Sep 28, 2017 8:00 pm
Well, then I give up.
Actually, I don’t use this software.
Someone using it should be able to help you further.
OTOH, it is just a warning, it should work anyway.

tales von milet
Fri Sep 29, 2017 10:09 am
Thanks for your time and help.
The software does not run unfortunately. So I’m looking for a solution.
I hope someone who can use this software helps me.

mausi_mick
Sat Sep 30, 2017 4:41 am
hallo,

I had no problem with the code from 8.Setember (MA_MI…) in this thread. I haven’t change the assembler code, I only changed the
display (to ILI9341-SPI and some things in the menu ).

I tested with IDE 1.6.3, 1.8.3 and 1.8.4 with maple Mini and Blue-Pill (Bootloader with 17k). The compile is ok,the osci is running, I have now only problems with changing the preamp-values(SPI).


tales von milet
Mon Oct 02, 2017 9:49 pm
Thanks for the answer. but I would like to use the original lcd.
I would like to use the scope actually as a display for a network test.
because I need only one adc but 4 digital inputs.

rexnanet
Sat Oct 07, 2017 6:05 pm
I’m not receiving e-mail notifications… Didn’t notice that stuff was going on here :) Also a week of vacations meanwhile :)

I’ve been able to get the basic wiring from your setup (@mausimick) (LCD and one encoder) and seems that it’s working “OK”.
There are some glitches on D1 and D2, the selection boxes are not cleared.
I had to install also the MCP4725 and URTouch libraries.

The problem you had before was also the op-amp gain setting?

I’m going to try and connect the rest of the wires to get the op-amps running and test them.
Might be related to the SPI Chip-Selects or the speed changes.


tales von milet
Sun Oct 08, 2017 4:52 pm
After a long search I found the cause.
in Setup (), the line:
afio_cfg_debug_ports (AFIO_DEBUG_SW_ONLY);
purely.
now I can install my own modifications.

mausi_mick
Tue Oct 31, 2017 3:42 pm
hi rexnanet,

I am back from Greece, it was wonderful !

I have tested now the old pgm-version, but had problems to with the PGA’s and the DAC.

Therefore I have changed the program and use SPI1 for the tft and SPI2 for PGA’s and DAC.

Now it works, I had some problems with the PGA’s (…S91) with the offset by changing gain …


mausi_mick
Tue Oct 31, 2017 3:55 pm
and a picture from the wire-chaos ….

DLO138-SPI1_Display_SPI2_DAC_and_PGAs_2_RotEnc.JPG
DLO138-SPI1_Display_SPI2_DAC_and_PGAs_2_RotEnc.JPG (52.88 KiB) Viewed 843 times

mausi_mick
Tue Oct 31, 2017 4:31 pm
a small video with changing timebase and gain with PGA1 (MCP6S91) is

here :https://www.youtube.com/watch?v=FzUSRCx … e=youtu.be


rexnanet
Wed Nov 01, 2017 5:49 pm
Great work! :)

Yes, that is probably the best approach. It was what I did with my setup.

What is the amplitude of the input signal in the video? it seems to have a bit of noise…

Are the amplitude measures working? They show values on the mV range… Is that the amplitude of the signal? If so that might be why the signal seems a bit “noisy”.

Yes, I also had the offset problem and with 2 amp stages it becomes even more noticeable…
I haven’t been able to assemble your setup just yet, it’s halfway :) but now I have disassembled mine so no setup working yet.

I bought a few DSO150 to give them a test. They seem ok but only one channel… The encoder interface is simple and works ok.


mausi_mick
Thu Nov 02, 2017 3:14 am
Hi rexnanet,

I have modified the program, now the offset by changing gain is ok. The noise – I think – is from the preamp without compensation. I need some picoFarad …

[url]https://youtu.be/vbiXGKW42pU/url]

mausi_mick
Sat Nov 04, 2017 5:13 pm
I have the preamps modified, here a picture:

DLO138_ILI9341_SPI_Preamps_with_TL072_and_MCP6S91.JPG
DLO138_ILI9341_SPI_Preamps_with_TL072_and_MCP6S91.JPG (44.07 KiB) Viewed 1276 times

mausi_mick
Tue Nov 07, 2017 7:02 pm
now the second preamp is nearly ready, I changed the TL072 in the first stage with the MCP6022 (R.R) because supply-voltage is only 5V.
The noise is from not perfect shielding . ?

DLO138_ILI9341_SPI_DualPreamp_MCP6022_MCP6S91.JPG
DLO138_ILI9341_SPI_DualPreamp_MCP6022_MCP6S91.JPG (45.75 KiB) Viewed 1238 times

mausi_mick
Sat Nov 11, 2017 2:16 am
Now I have made a new pcb for the maple-mini in the same size with the 2.8″ display includes 5V supply and the MCP4822 DAC.

It is nearly ok, butI have eliminate the DAC beacause I have to change it from 3.3V to 5V like the other devices (PGA’s) on SPI-2.

And I have to make something with the trigger …

A new video: https://youtu.be/3KJTmGfGuTA


rexnanet
Sat Nov 11, 2017 8:35 am
Nice work!
3.3V to 5V: why are you mentioning SPI? 3.3V SPI should work with 5V slave if you ignore MISO line.
MCP6022 doesn’t have a great BW but should be enough.
Is your trigger done in SW? If so it should be easy.

mausi_mick
Sat Nov 11, 2017 11:08 am
hi rexnanet,
the problem is solved,
It was a “design” error on the pcb-layout, I connected CS to CLK, MOSI to CS and CLK to MOSI of the MCP4822.
Now all is ok and the offset for both channels works. And the encoders work smooth and soft.

Thanks !


mausi_mick
Wed Nov 15, 2017 2:50 pm
Now I have finished the most of the HW and fixed it on the front-panel.

The supply m( USB or 7,5V-12V DC) is on the left side. BTN4 and Reset-Button are on the right above the two encoders.

DLO138_ILI9341_SPI_backside.JPG
DLO138_ILI9341_SPI_backside.JPG (61.74 KiB) Viewed 1155 times

mausi_mick
Mon Nov 20, 2017 4:17 pm
Now I have tested an quadencoder on an Namiki motor, the phase difference is 90° :lol:

https://www.youtube.com/watch?v=GXj4ve7 … e=youtu.be


rexnanet
Wed Dec 13, 2017 3:21 pm
[mausi_mick – Mon Nov 20, 2017 4:17 pm] –
Now I have tested an quadencoder on an Namiki motor, the phase difference is 90° :lol:

https://www.youtube.com/watch?v=GXj4ve7 … e=youtu.be

Nive work :)

I’ve got some DSO150 to try them out. It works great but only one channel is not very nice :)
I’m thinking about making a similar approach but using the F303 and getting to 10MSPS/channel.
I’m going to try changing the F103 for the F303 on a bluepill to test it (like ThunderOwl did :) ).
Maybe it could be possible to use this code with that chip…


dev
Thu Feb 08, 2018 3:05 pm
Hi mausi_mick,
Could you please share the updated schematic for dso?
I want to give a try on this.

mausi_mick
Thu Mar 08, 2018 2:45 am
Hi,

here the code,
I used Arduino IDE 1.8.4

DLO-138-MaMi_05.7z
(25.16 KiB) Downloaded 208 times

sslobodyan
Thu Mar 08, 2018 6:49 pm
mausi_mick, can you show your schematic and pcb?

mausi_mick
Fri Mar 09, 2018 3:47 am
eagle files or so are not existing,

The pcb is hand – made with a small carpet knife.


dev
Sun Mar 25, 2018 4:02 am
Could you please share the rough schematic. I saw there were changes discuss in thread. So not much sure about schematic to follow.

mausi_mick
Wed Mar 28, 2018 12:51 pm
Hi, long time …

I realized the two pre-amplifiers with 2 MCP6S91 PGA’s similar like this schematic:

https://jasmedia2011.files.wordpress.co … 472321.png

The used pins of the maple-mini you can see in “global.h” of the last zip-file DLO-138-MaMi_05.

I used 2 spi,
the first for the display ILI9341,
the second spi for the PGA’s / MCP6S91 and the DAC’s MCP4822 .

Not solved is the triggering.


Col68
Sun Apr 08, 2018 11:37 am
Hello Willfly1,

thank you for this beautiful sharing, a perfect device, even if i can not do it because it is too complex for an amateur like me, maybe in the future … great respect for you and thank you again for sharing, cordially


dave j
Thu Apr 12, 2018 7:19 pm
[mausi_mick – Wed Mar 28, 2018 12:51 pm] –
Not solved is the triggering.

A really cheap way of doing triggering is to use the ADC’s analog watchdog.

For a rising trigger set the low threshold (LTR) to zero and the high threshold (HTR) to the value you want to trigger on (for a falling trigger, set HTR to 4095 and LTR to the trigger value). You can check the AWD flag in the ADC status register (which your code already loads when checking if a conversion is complete) to see if a trigger has occurred. You can even get it to generate an interrupt if you decide to change to capturing samples using DMA in the future.

Keep in mind you’ll have to scale the trigger level you program the AWD registers with to match your OPAMP gain.

It might be worth worth considering moving to a DMA in any case. It actually makes things easier and you’ll be able to avoid the need to write assembler code. Let me know if you want to know how I go about it for my F3 based oscilloscope project.


rexnanet
Mon Apr 16, 2018 5:32 pm
Hi dave j,

Are you using this code on a F303?
Do you have arduino ide working on the F303?
I was trying to get a base code working with STM32 HAL but it’s still in it’s early days. I have managed to get ILI9341 working but still haven’t digged into the ADC stuff. On arduino would be a lot easier…


dave j
Tue Apr 17, 2018 12:31 pm
[rexnanet – Mon Apr 16, 2018 5:32 pm] –
Hi dave j,

Are you using this code on a F303?

No, I’m developing something from scratch.
Do you have arduino ide working on the F303?
No. I’m using Qt Creator as a development environment and targetting the STM32 LL libraries (rather than the HAL ones which reportedly are a bit buggy). Qt Creator is a better C/C++ IDE than Eclipse and you can get it to deploy code to the device and remotely debug too.
I was trying to get a base code working with STM32 HAL but it’s still in it’s early days. I have managed to get ILI9341 working but still haven’t digged into the ADC stuff.
STM32Cube has some good example code that helped me figure out how to do things. Some MCUs have more/better examples than others – don’t just look at those for the MCU you’re targeting.
On arduino would be a lot easier…
Sadly, I think with libraries it’s a case of simple enough for beginners to understand or flexible enough to do complex things. At least with arduino you can ignore its libraries and use others/code direct to the hardware.

Let me know if you want me to describe the approach I’m taking to capturing and triggering.


arpruss
Wed May 16, 2018 5:28 pm
[rexnanet – Mon Apr 16, 2018 5:32 pm] –
Are you using this code on a F303?
Do you have arduino ide working on the F303?
I was trying to get a base code working with STM32 HAL but it’s still in it’s early days. I have managed to get ILI9341 working but still haven’t digged into the ADC stuff. On arduino would be a lot easier…

I want to make an F303-based oscilloscope, too. I am thinking: two channels, 10M samples/sec (by DMA and interleaving). So far I have an F303 board (by replacing the F103 on a “blue” pill with an F303) and a working stm32generic Arduino core fork.

I am wondering if I should start from scratch or with the DLO-138 source code.

Another possibility would be to buy a DSO-138, transplant an F303 to it (hopefully without breaking anything), and then work on the software.

Any thoughts?


rexnanet
Thu May 17, 2018 1:28 pm
My plans are the same :)

I’m thinking on using the DLO-138 as a starting point and if it’s not viable then try to use STM32-HAL or something. But using DLO-138 would give a nice head start and having a “working” arduino core makes it even more simple :)

I’ve also swapped the F103 for an F303 on a blue pill. Swapping it on a DSO-138 or even on a DSO-150, as I’ve thought, it’s no good because of the single analog channel.
I’m thinking about making myself a pcb to get everything together.


ahull
Thu May 17, 2018 2:19 pm
The code for the pig-o-scope might be an alternative, as it is Arduino code, but only if you cant get the DLO-138 code to run on the F303.
The pig-o-scope code is not particularly feature rich but might make a good basic platform to start from.

dave j
Fri May 18, 2018 1:37 pm
[rexnanet – Thu May 17, 2018 1:28 pm] –
My plans are the same :)

I’m thinking on using the DLO-138 as a starting point and if it’s not viable then try to use STM32-HAL or something. But using DLO-138 would give a nice head start and having a “working” arduino core makes it even more simple :)

I guess it comes down to how different do you want your scope’s UI to be from that provided by DLO-138.

I’ve also swapped the F103 for an F303 on a blue pill. Swapping it on a DSO-138 or even on a DSO-150, as I’ve thought, it’s no good because of the single analog channel.
I’m thinking about making myself a pcb to get everything together.

How many of the other F303 peripherals, e.g. built in OPAMPs and comparators, do you envisage using? That could drastically affect which pins you can use for things like screens, buttons, etc.

I found STM32CubeMX is a good way of trying different combinations of peripheral and pin assignments with it warning you of incompatible combinations.


arpruss
Fri May 18, 2018 6:25 pm
I’m thinking of using my phone for a screen, at least for initial testing, which will save some pins. An advantage is that the phone can also power the board. I’m currently writing an Android app that functions as a vector display for an Arduino sketch, via USB serial.

RogerClark
Fri May 18, 2018 11:58 pm
[arpruss – Fri May 18, 2018 6:25 pm] –
I’m thinking of using my phone for a screen, at least for initial testing, which will save some pins. An advantage is that the phone can also power the board. I’m currently writing an Android app that functions as a vector display for an Arduino sketch, via USB serial.

Interesting..

Did you write the App?

I found that Android didn’t recognise the VID PID of leadlabs CDCACM , last time I tried it . ( but that was years ago, so things may have changed)


arpruss
Sat May 19, 2018 3:32 am
[RogerClark – Fri May 18, 2018 11:58 pm] –
Interesting..

Did you write the App?

It’s in progress here: https://github.com/arpruss/vectordisplay (see the VectorDisplay example; the library I’m using for serial comm isn’t mine).

It seems to work fine with the product and vendor id that STM32GENERIC uses by default. I haven’t tried it with the LeafLabs one.


I found that Android didn’t recognise the VID PID of leadlabs CDCACM , last time I tried it . ( but that was years ago, so things may have changed)

I found that some Android serial libraries didn’t recognize the device, but the one I ended up using recognizes it just fine.


RogerClark
Sat May 19, 2018 7:21 am
OK

arpruss
Sun May 20, 2018 3:52 am
The Android usb library I’m using works fine with the LeafLabs USB implementation on the F103C. You can download the apk from here (app_release.apk): http://github.com/arpruss/vectordisplay

The tentative Arduino side is here: http://github.com/arpruss/vectordisplayarduino , but I expect the API will change.


RogerClark
Sun May 20, 2018 10:26 am
Thanks

rtek
Fri Jul 20, 2018 3:35 am
Hi everyone,

I’m trying to use a mcufriend display (which works fine on Arduino Mega2560 and returns the ID code 0x154),

But even without the display, when I look at the state of the pin with an LED and an oscilloscope, I noticed that the PB3 bit is floating.

The strange thing is that the original firmware of the DSO150 does not leave the PB3 pin floating, the LED can light (and blink) and the oscilloscope shows pulses.

What could be happening?

I have 2 bluepill, and both show the PB3 pin floating.

Code: https://github.com/ardyesp/DLO-138


rtek
Fri Jul 20, 2018 5:11 pm
PB3 is working now!

I had to disable the JTAG of this PB3 pin:

I added the instruction below at the beginning of the subroutine “setup”

afio_cfg_debug_ports(AFIO_DEBUG_NONE);


rtek
Fri Jul 20, 2018 9:08 pm
Good news!

With the help of Sr. David (from https://github.com/prenticedavid) I was able to modify the Adafruit_TFTLCD_8bit_STM32 library for MCUFRIEND_kbv.

The code has been stored here (because this site – stm32duino – does not allow the file size):
https://github.com/ardyesp/DLO-138/issues/10

P.S.: The mcufriend library supports many display models, it may be cool to use this library instead of others, since the support is exceptional!

10. It currently supports UNO shields with "mcufriend.com" pcbs with controllers:
HX8347-A 240x320 ID=0x8347 #define SUPPORT_8347A *** Untested ***
HX8347-D 240x320 ID=0x4747 #define SUPPORT_8347D
HX8347-G 240x320 ID=0x7575 #define SUPPORT_8347D
HX8347-I 240x320 ID=0x9595 #define SUPPORT_8347D
HX8352-A 240x400 ID=0x5252 #define SUPPORT_8352A
HX8352-B 240x400 ID=0x0065 #define SUPPORT_8352B
HX8357-B 320x480 ID=0x8357 (shares init with 8357-D)
HX8357-C 320x480 ID=0x9090 (ID has changed from 0x8357)
HX8357-D 320x480 ID=0x0099 #define SUPPORT_8357D_GAMMA
HX8367-A 240x320 ID=0x6767 #define SUPPORT_8347D
ILI9225 176x220 ID=0x9225 #define SUPPORT_9225
ILI9226 176x220 ID=0x9226 #define SUPPORT_9225
ILI9302 240x320 ID=0x9302
ILI9320 240x320 ID=0x9320
ILI9325 240x320 ID=0x9325
ILI9326 240x400 ID=0x9326 #define SUPPORT_9326_5420
ILI9327 240x400 ID=0x9327
ILI9328 240x320 ID=0x9328
ILI9329 240x320 ID=0x9329
ILI9331 240x320 ID=0x9331
ILI9335 240x320 ID=0x9335
ILI9338 240x320 ID=0x9338
ILI9340 240x320 ID=0x9340
ILI9341 240x320 ID=0x9341
ILI9342 320x240 ID=0x9342 #define SUPPORT_9342
ILI9481 320x480 ID=0x9481
ILI9486 320x480 ID=0x9486
ILI9487 320x480 ID=0x9487
ILI9488 320x480 ID=0x9488 (weird 555 display :#define SUPPORT_9488_555)
LGDP4532 240x320 ID=0x4532 #define SUPPORT_4532
LGDP4535 240x320 ID=0x4535 #define SUPPORT_4535
NT35310 320x480 ID=0x5310 (hardware must be set for 8-bit parallel)
R61505 240x320 ID=0x1505 works like an ILI9320
R61505V 240x320 ID=0xB505
R61505W 240x320 ID=0xC505
R61509V 240x400 ID=0xB509 #define SUPPORT_B509_7793
R61520 240x320 ID=0x1520 (no Vertical Scroll)
R61526A 240x320 ID=0x1526 (no Vertical Scroll) configure NVM with sketch
R61580 240x320 ID=0x1580 #define SUPPORT_1580 *** Untested ***
R61581 320x480 ID=0x1581
RM68090 240x320 ID=0x6809
RM68140 320x480 ID=0x6814 #define SUPPORT_68140
S6D0139 240x320 ID=0x0139 #define SUPPORT_0139 (no Band Scroll)
S6D0154 240x320 ID=0x0154 #define SUPPORT_0154
SPFD5408 240x320 ID=0x5408
SPFD5420 240x400 ID=0x5420 #define SUPPORT_9326_5420
SSD1963 800x480 ID=0x1963
SSD1289 240x320 ID=0x1289 #define SUPPORT_1289
ST7781 240x320 ID=0x7783 #define SUPPORT_7781 (no Vertical Scroll)
ST7789V 240x320 ID=0x7789
ST7793 240x400 ID=0x7793 #define SUPPORT_B509_7793
ST7796 320x480 ID=0x7796
UC8230 240x320 ID=0x8230 #define SUPPORT_8230
UNKNOWN 320x480 ID=0x1511 (scroll directions not correct)
UNKNOWN 240x320 ID=0x1602
UNKNOWN 240x320 ID=0xAC11
UNKNOWN 240x320 ID=0x2053 weird controller from BangGood (was ID=0x0000)
UNKNOWN 240x320 ID=0x8031 (no Vertical Scroll)


Fuintur
Wed Dec 19, 2018 1:46 am
Hello,

I’ve been trying to assemble this oscilloscope. I’m particularly interested in the second channel addition, so I’m going through the whole hardware modification. I had an old DSO138 I burned laying around, so I reused the usable components and designed a pcb focusing on making it easy to make at home. I tried to get all the hardware in one pcb where I can kind of plug the DSO138 on top as kind of a shield (with some modifications I haven’t made yet). The pin locations and basically every connection there is between the usual DSO and the new DLO maps from my shield into the DSO, leaving the taller components or those that need to stay accesible (switches, encoder…) out of the DSO outline. I’m not sure all these single pin connections are going to be possible to make in a “shield” kind of setting, but I’m trying. It’s still untested so use at your own risk.

I would have branched/forked/pulled this into the ardyesp github, but I have no idea how to use github and I haven’t had the time to learn, but here you have the eagle files: https://github.com/Damrod/DLO-board

There’s anyhow something I’m struggling to understand from the schematics, so I don’t think I can properly render it in my pcb: the “D CH1” “D CH2″… do they map into some connection os is it just informational? Is it like the encoder label that maps the way I mapped it or…? I attached an image to indicate this question.


Leave a Reply

Your email address will not be published. Required fields are marked *