I started writing a stupid little OS for Atmel microchips. It's very early on but I got task switching to work so it runs two tasks that just print out a number. It's a fun exercise though, I plan to flesh it out eventually and add in a scheduler and maybe some kind of basic command line shell. It was pretty fun to put in the plumbing for libc stuff, like how stdin/stdout are directed to use your serial driver.
|
|
# ? Jun 21, 2017 18:23 |
|
|
# ? May 10, 2024 14:09 |
|
Le0 posted:I've been thinking about this for a little while cause well robots are fun. However I never ever did anything like that, would you have any resource, books or websites to recommend? That depends on your level of skill with electronics and your learning pace. Make Electronics 2nd Ed is great. Make: Action then has some robotics fundamentals projects using Arduino and raspberry pi. There are a couple of drone books if that tickles your fancy. Note: I got these in a humble bundle, and haven't used other references. They were pretty good, my wife learned from them as easily as I did, but I see that they cost real money. Many things are available online for free, but I don't know of any very high-quality sources that are easy to read and coherent.
|
# ? Jun 22, 2017 04:19 |
So, because I complimented the KSDK, I had to find a problem: it doesn't support the K20 72 MHz variant. To be honest, I have no loving clue why it isn't supported. It appears to be a subset of the 100 MHz variant. I've been able to make a "port" just by deleting.
|
|
# ? Jun 22, 2017 06:43 |
|
Not even sure where to ask this so thought I'd try here. We sell imported high-end commercial coffee machines from Italy, usually based on Arduino/Atmel styled hardware. The new thing they're providing is GSM modems so they'll auto-fire alerts, down times, and allow for programming OTA. What I'm not sure of, is their device is most likely specced to Europe GSM (GSM-900, EGSM/EGSM-900 and GSM-1800). Would I be able to provision a North American GSM (GSM-850/GSM-1900) network to work on that hardwar?
|
# ? Jun 22, 2017 20:14 |
|
I have no personal experience in this area but I'd bet there's a chance it's using an extended Hayes Modem command set over UART. This would make adapting it to different modem hardware pretty easy. There may also be a chance that the manufacturer of the modem makes different models for different countries that can be dropped-in. Get your hands on the hardware or at least get specs for the exact module or chips they're using. Also lol@internet connected espresso machines
|
# ? Jun 22, 2017 20:37 |
|
Yeah I only have a photo of the unit from the manual they sent me, but it looks like this guy: http://www.smsco.it/tomcat/en/modem/siemens_tc35i.jsp With a custom end on the RS232 cable that plugs into the mainboard directly.
|
# ? Jun 22, 2017 21:36 |
|
Good news, the website says that model has been discontinued and replaced with a quad-band one. I'm pretty sure that means it'll work in the US. Also, it does use a Hayes (AT) command set according to the datasheet so I think that means you have a lot of options available.
|
# ? Jun 22, 2017 21:59 |
|
Welp, got my fingers crossed, but these guys are hardly state of the art with their other stuff (to program their boards I have to use the incredibly outdated ATAVRISP MKII and an old version of AVR Studio). I think you're right on the command set though, it's all (password)(verb)=(x),(y),(z) etc.
|
# ? Jun 22, 2017 22:50 |
|
Le0 posted:I've been working in embedded software for nearly 10 years in the same company but the big problem I have is that we work on a single type of CPU (Sparc for Space basically), I'd like to learn some of the stuff the cool kids use nowadays. Also because I'd like to change company in the not too distant future. LEON3/4(FT)? ARM Cortex-M4F man -- there are even radiation-tolerant variants being built. Cannot hurt to be familiar with the basic MCU core (Cortex-M0 through M4) that is in loving everything these days.
|
# ? Jun 23, 2017 03:00 |
|
movax posted:LEON3/4(FT)? I've spent a lot of time playing with the TI Stellaris Launchpad boards. They're cheap and fun. Would recommend. EDIT: And apparently discontinued forever ago Another edit: Local hackspace uses the new Connected Launchpad a lot. Those also look good. http://www.ti.com/lsds/ti/tools-software/launchpads/launchpads.page TTerrible fucked around with this message at 03:09 on Jun 23, 2017 |
# ? Jun 23, 2017 03:06 |
|
movax posted:LEON3/4(FT)? Yeah I've been working on LEON processor but we mostly have worked on LEON2 until one year ago where I've been working on our first LEON3 (GR712RC) board. Are you working with LEON CPU also? I'd love to give ARM a try, I'll give it a look.
|
# ? Jun 23, 2017 15:37 |
|
meatpotato posted:Good news, the website says that model has been discontinued and replaced with a quad-band one. I'm pretty sure that means it'll work in the US. Yeah looks like my worrying was premature, they got me the model: http://www.gemalto.com/m2m/solutions/modules-terminals/terminals/bgs2t Quad-band and AT command set like you'd theorized so looks like we're good. The only downside is they're shipping with a euro 220V plug.
|
# ? Jun 23, 2017 21:59 |
So, is anyone here good with infs? I had to implement CDC + Keyboard, and in trying to get it working, I had a coworker tell me "oh, I had to do that for xyz. It took me like a week to get it working on Linux, and two to get it working on Windows because of the infs". I'm in the same boat now. I was having a heck of a time with enumeration, and so I switched over to testing on my Linux laptop, which of course enumerated immediately without issue. Now I'm back on the Windows side with the device in a known working state, and I can't for the life of me figure out how to get Windows to accept my INF as a match for the virtual com port on interface 0.
|
|
# ? Jun 23, 2017 22:04 |
|
Mr. Powers posted:So, is anyone here good with infs? I had to implement CDC + Keyboard, and in trying to get it working, I had a coworker tell me "oh, I had to do that for xyz. It took me like a week to get it working on Linux, and two to get it working on Windows because of the infs". I'm in the same boat now. I was having a heck of a time with enumeration, and so I switched over to testing on my Linux laptop, which of course enumerated immediately without issue. Now I'm back on the Windows side with the device in a known working state, and I can't for the life of me figure out how to get Windows to accept my INF as a match for the virtual com port on interface 0. Are you using Interface Association Descriptors in the device to logically group the CDC control and data endpoints together? If so, your INF file should use _n suffixes for the product IDs to select which interface it should bind to. Its for a different architecture, but look at https://github.com/abcminiuser/lufa/tree/master/Demos/Device/ClassDriver/VirtualSerialMouse - in particular, Descriptors.c and the INF file.
|
# ? Jun 24, 2017 00:24 |
Thanks for that reference. I am using an IAD. I had tried using the _M00 on the end of the device strong, but maybe I still have something wrong. I'll check mine against this one on Monday.
|
|
# ? Jun 24, 2017 03:34 |
|
TTerrible posted:I've spent a lot of time playing with the TI Stellaris Launchpad boards. They're cheap and fun. Would recommend. They renamed the line from stellaris to tiva a few years ago. I think this one is fully compatible with the original.
|
# ? Jun 24, 2017 07:26 |
|
Le0 posted:Yeah I've been working on LEON processor but we mostly have worked on LEON2 until one year ago where I've been working on our first LEON3 (GR712RC) board. Are you working with LEON CPU also? LEON3 and 4FT, IP core and GR740, yep. The other thing to check out could be RISC-V; as an open ISA, it could see some future development work in the fault tolerant area...
|
# ? Jun 25, 2017 05:17 |
|
movax posted:LEON3 and 4FT, IP core and GR740, yep. Oh nice, at what company if I may? Are you flying multi core applications? We did a little research on dual core applications in Space and honestly we didn't find much interest at ESA. But we are a small company so that may be why.
|
# ? Jun 27, 2017 14:24 |
EpicCodeMonkey posted:Are you using Interface Association Descriptors in the device to logically group the CDC control and data endpoints together? If so, your INF file should use _n suffixes for the product IDs to select which interface it should bind to. Thanks for this. I was able to adapt it to work for my device. The problem I have now is that there is an inordinate amount of traffic on the bus when I look with an analyzer. No hubs in the way, but the analyzer is seeing IN packets every 8ms (my HID interrupt IN frequency) from the wrong address and random endpoints. I am guessing it's a USB controller config issue, but it wasn't happening before. The real reason this is an issue is that I can't actually open the CDC side in a terminal on Windows and the analyzer buffer is filling with the INs.
|
|
# ? Jun 29, 2017 18:48 |
|
The agony of building physical products: We had an ongoing issue with our bluetooth stack (an NRF52 that we communicate with in "serialization" mode, for those of you who've worked with it before). After a week of looking we narrowed it down to a specific device errata that has a workaround in the current software version for the device - but we're on software two major versions and multiple years out of date, and we want to ship this thing now, we can't spend a bunch of time updating this. No problem, we say, at least we'll add a bootloader to the NRF52 chip so we can do field upgrades (no, we did not have this capability before. This startup had some turnover recently.).Great! I did it and gave it to my boss and he said "oh make sure this can handle the case where the NRF52 chip doesn't have a bootloader on it because we've been running production for the past week and there's a couple thousand units already welded together."
|
# ? Jun 30, 2017 13:07 |
|
Can I ask which errata? Good luck finding some buffer overflow vulnerability so you can inject your boot loader
|
# ? Jul 4, 2017 00:19 |
Bad example code is bad. The composite CDC + HID device that I was working on previously had some issues. On Linux (before I got the INF sorted), I always had some issues trying to open the tty in minicom, but after a few tries it eventually worked. Once it was enumerating and installing a driver properly in Windows, I tried opening the COM in TeraTerm and... nothing. I had to break out the USB analyzer again and found that the host was spamming one byte of data at EP 0 OUT, to which the device would NAK repeatedly. This was filling up the trace buffer ridiculously fast. Well, digging down into the trace, I finally located the start of the 1 byte spam, and it was after a SET_REPORT setup packet (HID, not Chapter 9). It turns out that the NXP example HID keyboard code has a report descriptor that includes an LED output (most real keyboards have this). The catch was that the example code didn't have an interrupt OUT EP for the HID, so it uses the SET_REPORT setup packet on EP 0 OUT. This wouldn't be a problem, except that the example code was not setup to handle these requests at all, and just returned an error to the USB stack if a SET_REPORT request came in, which caused the stack to not setup to receive data, which caused it to NAK any data sent to it, which caused Windows (not as much of an issue on Linux) to keep attempting to cram that one byte of LED bits into the endpoint that just doesn't want it. Once I removed the output section from the HID report descriptor (after learning how HID report descriptors are constructred), the COM port worked fine. There is still a lot of traffic with the host polling 3 IN endpoints, but I don't know how much I can actually do about that, and the functions I need work, so I'm leaving that as-is.
|
|
# ? Jul 4, 2017 02:44 |
|
meatpotato posted:Can I ask which errata? #109 from this guy: http://infocenter.nordicsemi.com/pdf/nRF52832_Rev_1_Errata_v1.3.pdf Basically, the first byte of any DMA-driven SPI transaction might be corrupt depending on some timing issues related to waking up from sleep. This is pretty bad in general but in particular when in serialization mode where the only thing the code on the NRF52 does is translate SPI traffic into soft device calls.
|
# ? Jul 4, 2017 18:34 |
|
I did it, I made a cmake build system for our poo poo that 1) still works in our garbage eclipse variant 2) works cross platform 3) doesn't require said eclipse variant. hardware for a build server is on the way and it'll be a bit easier to build in tests now! And I don't have to use eclipse anymore! And me and my coworker are taking the time to go through and fix the ~250 build warnings! Things can get better!
|
# ? Jul 18, 2017 01:23 |
I want to disassemble a ROM for an auxillary keypad I bought, because I'm not really satisfied with the features the manufacturer provides. The product, the MCU it uses (LPC1343, armv7), and a firmware image is included in the Configurator App package from their downloads page As far as I can tell the firmware image shouldn't be scrambled in any way, since the way their configurator app works is by updating some static tables in the firmware and uploading the modified image. I've tested myself, changing some scan codes in appropriate locations, and the scan codes used are the regular USB keyboard ones. The functionality I'm especially interested in adding is some sort of software-control of the LEDs in the device, instead of just random/static patterns, or simple flashes based on button presses. I want to be able to send a command from the host to turn on/off a LED depending on software status instead. However, I haven't had much luck disassembling the firmware. Honestly I haven't tried with IDA yet (which is probably the best bet) because it's stupidly expensive and I'm not sure if their trial version does funny things when you install it. onlinedisassembler.com doesn't seem to support armv7, Darm is deprecated, and its continuation in Capstone seems to produce garbage when I feed the firmware image in. So my question is, does anyone have suggestions/pointers on how to proceed here? Am I reading the MCU spec sheet right that it does just map the 32 KB image into 0h-8000h and begin execution at 0h on reset? Am I right to be angry that their configurator app from 2016 is written in Visual Basic 6?
|
|
# ? Jul 20, 2017 22:31 |
If it's USB HID, there is a mechanism built in for outputs (for a keyboard, typically caps/num/scroll lock), but you'd have to modify the descriptors and find their HID class code to add handling OUT messages (on either a HID out EP or on the control endpoint). I have nothing useful to add other than that.
|
|
# ? Jul 21, 2017 03:21 |
|
nielsm posted:Am I right to be angry that their configurator app from 2016 is written in Visual Basic 6? I think "resigned" is more how I feel when I see something like that. quote:Am I reading the MCU spec sheet right that it does just map the 32 KB image into 0h-8000h and begin execution at 0h on reset? Yup, that's what the spec sheet says. It also says the active interrupt vectors are stored at 0000h to 0400h but your firmware may very well remap them somewhere else (or not use interrupts). As far as disassembly goes, Thumb-2 is not that complicated an instruction set Grab a Thumb-2 opcode manual and a programming reference for that chip that shows where the system registers are mapped then go to town!
|
# ? Jul 23, 2017 19:41 |
|
Anti-tamper features seemed interesting when I was messing around with the RTC in an STM32. Is the basic idea that the device is given some token during manufacturing which persists throughout the product's life with a battery backup and that the tamper detection system can help brick or disable functionality on the device if someone attempts to open the case, screw with the microcontroller, etc.? Why are there features like timestamping the tamper event and not erasing the sensitive information? Just because it comes for free when it lives in the RTC block? Can these systems be useful without a battery backup? Vendors mention payment terminals as an application, but do the terminals have a hand in anything other than relaying information between the credit card's chip and the payment processor's network? Where's the trust issue where you'd want to make sure someone didn't modify the terminal? Just in basic stuff like reporting the correct total on the display for the user to review prior to authorizing the transaction? Just curious about a different area of the industry than what I work with.
|
# ? Jul 24, 2017 06:48 |
|
Bumping this to say I'm in an intro to microcontrollers class. A class that I should be able to test out of if I could but I can't. And we're using Freescale chips.
|
# ? Sep 26, 2017 20:49 |
|
Good ole HCS12 They must have donated a poo poo ton of money to all of the schools in North America
|
# ? Sep 26, 2017 23:05 |
|
Quallcom now buddy. Formally NXP formally Freescale. Edit* Formally Motorola
|
# ? Sep 26, 2017 23:13 |
|
ratbert90 posted:Quallcom now buddy. Formally NXP formally Freescale. Formerly
|
# ? Sep 26, 2017 23:37 |
|
I love it when you can take a guess at how someone talks based on their misspellings
|
# ? Sep 26, 2017 23:42 |
|
I'm using a kinetis at work. It's fine. Processorexpert is so drastically not fine that with the primary bringup done we've killed it and started just editing its hal manually. Plus side: it's dead. Minus side: doing any far reaching changes like adding more clock configs would require editing its heinous auto generated code. Guess I didn't need those 5 mA anyway
|
# ? Sep 27, 2017 00:00 |
|
ante posted:Formerly Yeah! FlapYoJacks fucked around with this message at 03:17 on Sep 27, 2017 |
# ? Sep 27, 2017 00:08 |
iospace posted:Bumping this to say I'm in an intro to microcontrollers class. A class that I should be able to test out of if I could but I can't. And we're using Freescale chips. gently caress Code Warrior and Processor Expert. Are they still using that? Why every intro to microcontrollers/embedded class doesn't use Atmel is beyond me. They are cheap, have great documentation and everyone in the hobby world uses them so you can find a ton of support online. Here is my hot take of the day. gently caress every other micro, always use an Atmel.
|
|
# ? Sep 28, 2017 23:58 |
|
Yes, code warrior. Jokes on them, I edit in vim and only compile in that.
|
# ? Sep 29, 2017 00:27 |
|
Popete posted:gently caress Code Warrior and Processor Expert. Are they still using that? ST is the rising star, gently caress Atmel
|
# ? Sep 29, 2017 00:36 |
|
They still make CodeWarrior? Christ, I used that to program 68K Macs.
|
# ? Sep 29, 2017 00:42 |
|
|
# ? May 10, 2024 14:09 |
|
It's free to use, but it doesn't change that it's poo poo.
|
# ? Sep 29, 2017 00:59 |